Spatial Partitioning for Distributed Path-Tracing Workloads
Total Page:16
File Type:pdf, Size:1020Kb
University of Calgary PRISM: University of Calgary's Digital Repository Graduate Studies The Vault: Electronic Theses and Dissertations 2018-09-21 Spatial Partitioning for Distributed Path-Tracing Workloads Hornbeck, Haysn Hornbeck, H. (2018). Spatial Partitioning for Distributed Path-Tracing Workloads (Unpublished master's thesis). University of Calgary, Calgary, AB. doi:10.11575/PRISM/33077 http://hdl.handle.net/1880/108724 master thesis University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission. Downloaded from PRISM: https://prism.ucalgary.ca UNIVERSITY OF CALGARY Spatial Partitioning for Distributed Path-Tracing Workloads by Haysn Hornbeck A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE GRADUATE PROGRAM IN COMPUTER SCIENCE CALGARY, ALBERTA SEPTEMBER, 2018 c Haysn Hornbeck 2018 Abstract The literature on path tracing has rarely explored distributing workload using distinct spatial parti- tions. This thesis corrects that by describing seven algorithms which use Voronoi cells to partition scene data. They were tested by simulating their performance with real-world data, and fitting the results to a model of how such partitions should behave. Analysis shows that image-centric partitioning outperforms other algorithms, with a few exceptions, and restricting Voronoi centroid movement leads to more efficient algorithms. The restricted algorithms also demonstrate excellent scaling properties. Potential refinements are discussed, such as voxelization and locality, but the tested algorithms are worth further exploration. The details of an implementation are outlined, as well. ii Acknowledgements U. R. Alim, for extensive advice on testing and this thesis. Keynan Pratt, for introducing me to the Vivaldi algorithm. While I was working on spatial partitioning of path tracing before that moment, I lacked an algorithm for load balancing and was unsure of how to draw the bounds between nodes in the system. He didn’t intend to solve either problem while presenting Vivaldi, but I quickly realized its potential. It was later out-performed by other algorithms that I developed on my own, but his action still saved me substantial time and effort. Mea Wang, for allowing me to outline an implementation of this system as homework in one of her courses. iii Table of Contents Abstract ........................................... ii Acknowledgements .................................... iii Table of Contents . iv List of Tables . vi List of Figures . vii List of Symbols . x 1 Introduction . 1 1.1 Motivation . 5 1.2 Methodology Overview . 7 1.3 Summary of Contributions . 8 1.4 Thesis Organization . 9 2 Related Work . 10 2.1 Projection and Rasterization . 10 2.2 Ray Tracing and Radiosity . 12 2.3 Path Tracing . 14 2.4 Backwards Ray Tracing and Photon Mapping . 16 2.5 Acceleration Structures . 17 2.6 Load Balancing . 19 3 Spatial Partitioning . 22 3.1 System Overview . 22 3.1.1 The Vivaldi Algorithm . 26 3.2 Voronoi Cell Partitions . 30 3.2.1 Voronoi Diagrams . 30 3.2.2 Adjusting Partitions . 32 3.3 Challenges to Spatial Partitioning . 38 3.3.1 Unstable Partitions . 38 3.3.2 Network Bandwidth . 39 3.3.3 Unbiased Pixel Sampling . 40 3.3.4 Algorithm Tuning . 41 3.3.5 Alternatives to Vivaldi . 41 3.3.6 Initial Node Placement . 42 3.3.7 Node Movement Restrictions . 44 3.3.8 Damping . 47 3.3.9 Bundling Ray Data . 47 4 Simulation and Results . 48 4.1 Simulation Methodology . 48 4.2 Behavioural Metrics . 49 4.2.1 Statistical Modelling . 51 4.2.2 Ray Collisions . 52 4.2.3 Network Transmissions . 55 4.2.4 Node Movement . 57 4.2.5 Memory Cost . 58 iv 4.3 Key Metrics . 59 4.3.1 Generating the Posterior Distribution . 60 4.4 Results . 62 4.4.1 Collisions . 63 4.4.2 Test Scenes . 68 4.4.3 Network Transmission . 70 4.4.4 Node Position . 71 4.5 Comparisons to Other Techniques . 75 4.5.1 Visual Partitioning . 75 5 Future Work and Conclusion . 78 5.1 Summary . 78 5.2 Local Algorithms . 78 5.3 Additional Algorithms . 79 5.4 Voxelization . 79 5.5 Conclusions . 80 Bibliography . 81 A Additional Figures . 92 B Implementation Overview . 101 B.1 Requirements . 101 B.2 Operating Environment . 102 B.2.1 Master-Client vs. Peer-to-Peer . 103 B.2.2 Network Overview . 104 B.2.3 Nodes . 104 B.3 Scenes and Spaces . 104 B.3.1 Scene Log . 106 B.3.2 Data Management . 107 B.3.3 Security . 108 B.3.4 Backup . 109 B.3.5 Edit and Render Modes . 110 B.3.6 Consensus . 111 B.4 Rendering . 112 B.4.1 Render Pools . 114 B.4.2 Consolidating Renders . 115 C Network Packets . 116 C.1 Status Messages . 117 C.2 Public Keys . 119 C.3 Scene Logs . 120 C.4 Data . 123 C.5 Render Pools . 124 C.6 Rendering . 124 v List of Tables 3.1 Calculating certainties for Figure 3.5. Numbers have been rounded for presentation. 36 3.2 Repositioning Node 1, from Figure 3.5. 36 3.3 Bandwidth accounting for path segments. 39 4.1 Fitness to Model 2, collisions, by algorithm. Based on a subsample, some values are rounded for presentation. 63 4.2 Fitness to Model 3, network transmissions, by algorithm. The camera axis algo- rithm data is from a subsample, and the “free” algorithms are initialized with radial camera axis. Values are rounded for presentation. 72 4.3 The median, 16th and 84th percentiles from Model 5’s posterior, by algorithm. 77 A.1 Statistics for each of the seven scenes used in this paper. 92 A.2 The median, 16th and 84th percentiles from Model 2’s posterior, by algorithm. Based on a random subsample. ..