ebook img

Realtime Ray Tracing on current CPU Architectures PDF

210 Pages·2006·6.11 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Realtime Ray Tracing on current CPU Architectures

Realtime Ray Tracing on current CPU Architectures Carsten Benthin Computer Graphics Group Saarland University 66123 Saarbru¨cken, Germany Dissertation zur Erlangung des Grades V E RSI I T N Doktor der Ingenieurwissenschaften (Dr.-Ing.) A U S der Naturwissenschaftlich-Technischen Fakult¨at I S S I der Universit¨at des Saarlandes ARAV I E N S Betreuender Hochschullehrer / Supervisor: Prof. Dr.-Ing. Philipp Slusallek Universit¨at des Saarlandes, Saarbru¨cken, Germany Gutachter / Reviewers: Prof. Dr.-Ing. Philipp Slusallek Universit¨at des Saarlandes, Saarbru¨cken, Germany Prof. Dr. rer. nat. Hans-Peter Seidel MPI Informatik, Saarbru¨cken, Germany Research Assistant Professor Steven G. Parker University of Utah, Salt Lake City, UT, USA Dekan / Dean: Prof. Dr. rer. nat. J¨org Eschmeier Universit¨at des Saarlandes, Saarbru¨cken, Germany Eingereicht am / Thesis submitted: 30. Januar 2006 / Jan 30st, 2006 Carsten Benthin Lehrstuhl fu¨r Computergraphik, Geb. 36.1/E14 Im Stadtwald, 66123 Saarbru¨cken Germany [email protected] iii Abstract In computer graphics, ray tracing has become a powerful tool for generating realistically looking images. Even though ray tracing offers high flexibility, a logarithmic scalability in scene complexity, and is known to be efficiently parallelizable, its demand for compute power has in the past lead to its limitation to high-quality off-line rendering. This thesis focuses on the question of how realtime ray tracing can be re- alized on current processor architectures. To this end, it provides a detailed analysis of the weaknesses and strengths of current processor architectures, for the purpose of allowing for highly optimized implementation. The com- bination of processor-specific optimizations with algorithms that exploit the coherence of ray tracing, makes it possible to achieve realtime performance on a single CPU. Besides the optimization of the ray tracing algorithm itself, this thesis focuses on the efficient building of spatial index structures. By building these structures from scratch for every frame, interactive ray tracing of fully dynamic scenes becomes possible. Moreover, a parallelization framework for raytracingisdiscussedthatefficientlyexploitsthecomputepowerofacluster of commodity PCs. Finally, a global illumination algorithm is proposed that efficiently combines optimized ray tracing and the parallelization framework. The combination makes it possible to compute complete global illumination at interactive frame rates. iv Kurzfassung InderComputer-GraphikhatsichRay-Tracingl¨angstalswichtigesWerkzeug zurrealistischenBildsyntheseetabliert. Entscheidenddazubeigetragenhaben dessen Flexibilit¨at und logarithmische Skalierung in der Szenengr¨oße, sowie dieeffizienteParallelisierbarkeit. AufgrundderhohenAnforderunganRechen- kapazit¨at war die Verwendung bisher auf den qualitativ hochwertigen, aber nicht interaktiven Bereich der realistischen Bildsynthese beschr¨ankt. Diese Dissertation besch¨aftigt sich mit der Frage, wie die Geschwindigkeit von Ray-Tracing auf heutigen Prozessorarchitekturen derart gesteigert wer- den kann, dass es die Bildsynthese in Echtzeit erm¨oglicht. Dazu pr¨asen- tiert die vorliegende Arbeit eine genaue Analyse der St¨arken und Schw¨achen der heutigen Prozessorarchitekturen, um die ben¨otigten Algorithmen ent- sprechend zu optimieren. Darauf aufbauend werden Algorithmen vorgestellt, die es im besonderen Maße erlauben, Koh¨arenz innerhalb des Ray-Tracing Verfahrenseffizientauszunutzen. DieseKombinationvonkoh¨arenz-ausnutzen- den Algorithmen mit einer prozessoroptimierten Implementierungerm¨oglicht sogar die interaktive Bildsynthese bei Ausnutzung der Rechenkapazit¨at eines einzelnen Prozessors. Daru¨ber hinaus pr¨asentiert die vorliegende Arbeit einen neuen Algorith- mus, der die Zeit fu¨r den Aufbau der fu¨r das Ray-Tracing ben¨otigten r¨aum- lichen Beschleunigungsdatenstrukturen erheblich verku¨rzt. Der beschleu- nigte Aufbau erlaubt sogar das interaktive Ray-Tracing von vollst¨andig dy- namischen Szenen. Daneben wird ein Parallelisierungsystem fu¨r Ray-Tracing vorgestellt, welches die Rechenkapazit¨at eines Netzwerkes von Standardrech- nern effizient kombiniert, um sogar Bildsynthese in Echtzeit zu erreichen. AbschließendwirdeinVerfahrenzurphysikalischkorrektenBeleuchtungssim- ulation beschrieben, welches bereits vorgestellte Techniken wie optimiertes Ray-Tracing und effiziente Parallelisierung verbindet. Diese Kombination erm¨oglicht es letztendlich die physikalisch korrekte Beleuchtung mehrmals pro Sekunde komplett neu zu berechnen. v Zusammenfassung InderComputer-GraphikhatsichRay-Tracingl¨angstalswichtigesWerkzeug zurrealistischenBildsyntheseetabliert. Entscheidenddazubeigetragenhaben die Flexibilit¨at und logarithmische Skalierung in der Szenengr¨oße sowie die effiziente Parallelisierbarkeit des Ray-Tracing Verfahrens an sich. Aufgrund der langen Laufzeit und der hohen Anfordung an Rechenkapazit¨at war die Verwendung von Ray-Tracing bisher auf den qualitativ hochwertigen, aber nicht interaktiven Bereich der realistischen Bildsynthese beschr¨ankt. Diese Dissertation besch¨aftigt sich mit der Frage, wie die Geschwindigkeit von Ray-Tracing derart gesteigert werden kann, dass Ray-Tracing auch fu¨r die interaktive Bildsynthese bzw. die Bildsynthese in Echtzeit geeignet ist. Als ersten Schritt dazu pr¨asentiert die vorliegende Arbeit eine genaue Anal- yse der heutigen Prozessorarchitekturen, die die zugrundeliegende Hardware- Plattform bilden. Dabei werden deren St¨arken und Schw¨achen detailliert aufgezeigt und daraus abgeleitet Implementierungs- und Optimierungsricht- linien vorgestellt. Diese Richtlinien erlauben es, ineffizienten Code bei der Implementierung des Ray-Tracing Verfahrens zu vermeiden. Einer der Hauptschwerpunkte der vorliegenden Disseration liegt auf der Entwicklung von Algorithmen, die es erlauben Koh¨arenz innerhalb des Ray- Tracing Verfahrens effizient auszunutzen. Gerade die Anwendung von Oper- ationen auf koh¨arente Strahlbu¨ndel anstatt auf einzelne Strahlen erm¨oglicht eine erhebliche Steigerung der Geschwindigkeit von Ray-Tracing. Dies wird detailliert an den zwei fundamentalen Algorithmen des Ray-Tracing Ver- fahrens, der Traversierung von Strahlen durch eine r¨aumliche Beschleuni- gungsdatenstruktur und dem Schnittpunkttest zwischen Strahl und geome- trischem Primitive aufgezeigt. Beim Schnittpunkttest wird neben der Unter- stu¨tzung fu¨r Dreiecke ein besonderes Augenmerk auf die effiziente Unter- stu¨tzung von Freiformfl¨achen gelegt. Im Gegensatz zur Beschreibung einer Szene mittels Dreiecken erlaubt die Beschreibung mittels Freiformfl¨achen eine viel kompaktere und genauere Repr¨asentation. Allerdings gestaltet sich der ben¨otigte Schnittpunkttest ungleich aufwendiger. Diese Arbeit stellt dazu verschiedene Algorithmen vor, die je nach Anwendungsgebiet und Ge- nauigkeitsanforderungenunterschiedlicheingesetztwerdenk¨onnen. DieKom- bination koh¨arenz-ausnutzender Algorithmen zur Traversierung und Schnitt- punktberechnung mit einer effizienten und prozessornahen Implementierung erm¨oglicht sogar die interaktive Bildsynthese bei Ausnutzung der Rechen- kapazit¨at eines einzelnen Prozessors. Neben der Optimierung des Ray-Tracing Verfahrens an sich, stellt diese Dissertation ein Algorithmus vor, um die fu¨r Ray-Tracing ben¨otigten r¨aum- lichen Beschleunigungsdatenstrukturen effizient aufzubauen. Dabei wird auf vi dieselben Optimierungsstrategien zuru¨ckgegriffen, die bereits bei der Be- schleunigung des Ray-Tracing Verfahrens zum Tragen kommen. Der op- timierte Aufbaualgorithmus erlaubt sogar das interaktive Ray-Tracing von vollst¨andig dynamischen Szenen, indem die Beschleunigungsdatenstrukturen mehrmals pro Sekunde komplett neu aufgebaut werden. Weiterhin wird ein System zur Parallelisierung des Ray-Tracing Ver- fahrens pr¨asentiert, das die Rechenkapazit¨at eines Netzwerkes von Standard- rechnerneffizientkombiniert. DabeiwirddasSystemmitdemZielentwickelt, die Nachteile einer solchen verteilten Architektur, wie beispielsweise getren- nte Hauptspeicher und langsame Verbindungsbandbreiten, effizient zu kom- pensieren. So gelingt es, die Geschwindigkeit von Ray-Tracing linear mit der Anzahl der verbundenen Rechner zu steigern, wodurch Ray-Tracing sogar in Echtzeit erm¨oglicht wird. Im letzten Teil der Dissertation wird ein Verfahren zur physikalisch kor- rekten Beleuchtungssimulation vorgestellt, welches die bereits vorgestellte Techniken, hoch optimierter Ray-Tracing Kern und Rahmenwerk zur Paral- lelisierung, effektiv verbindet. Die Kombination dieser Techniken mit einem auf Koh¨arenzausnutzung ausgelegtem Algorithmus zur Beleuchtungssimula- tion erm¨oglicht es letztendlich, die physikalisch korrekte Beleuchtung mehr- mals pro Sekunde komplett neu zu berechnen. vii Acknowledgements First of all, I would like to thank Prof. Dr. Philipp Slusallek for supervis- ing this thesis. The open and encouraging atmosphere in his group and in particularhiscontinuoussupportwereinvaluableforthesuccessofmythesis. Second, I have to thank Dr. Ingo Wald, who taught me basically ev- erything I know about ray tracing. He has been an invaluable help in many projects related to this thesis. Without his encouraging support and a count- less number of discussions through the years I would not have been able to complete my PhD thesis. I would also like to thank my reviewers, Hans-Peter Seidel and Steven Parker, for kindly accepting the responsibility of reviewing my thesis. Similarly, I have to thank (in random order) Andreas Dietrich, Heiko Friedrich, Johannes Gu¨nther, J¨org Schmittler, and Georg Demme and his administration group for many fruitful discussions, ideas and help in many projects. Special thanks goes to Michael Scherbaum for reducing my work- loadduringwritingthisthesis. Furthermore,Iwouldliketothankthecurrent and former members and students of the computer graphics group. I would also like to thank James T. Hurley for giving me the opportunity to do an internship at Intel Corp. Many thanks are due to Gordon Stoll and Alexander Reshetov for many helpful discussions, for introducing me to many new ideas, and for simply making the stay a great experience. Special thanks goes to my sister Nicole Benthin, who helped me writing this thesis in ’readable’ English. Finally, and most importantly, I would like to thank my familiy, and in particular my wife Andrea for their great patience, their encouraging support and for bearing so many stressful times. Without their help this thesis would never have been possible. viii Contents 1 Introduction 1 1.1 Outline of this thesis . . . . . . . . . . . . . . . . . . . . . . . 3 2 Introduction to Ray Tracing 5 2.1 The Ray Tracing Algorithm . . . . . . . . . . . . . . . . . . . 5 2.2 Ray Tracing for Rendering . . . . . . . . . . . . . . . . . . . . 7 2.3 Ray Tracing Performance . . . . . . . . . . . . . . . . . . . . . 9 2.4 Coherence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 CPU Architectures 15 3.1 Performance Issues . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Coding Guidelines . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3 Data Level Parallelism by SIMD Instructions . . . . . . . . . . 19 3.4 Tools and Hardware . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4 Tracing Coherent Ray Bundles 31 4.1 kd-Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Ray Bundle Traversal I . . . . . . . . . . . . . . . . . . . . . . 34 4.3 Ray Bundle Traversal II . . . . . . . . . . . . . . . . . . . . . 49 4.4 Experiments and Results . . . . . . . . . . . . . . . . . . . . . 58 4.5 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 69 5 Coherent Ray Tracing for Triangular Surfaces 71 5.1 Triangle Intersection I . . . . . . . . . . . . . . . . . . . . . . 72 5.2 Triangle Intersection II . . . . . . . . . . . . . . . . . . . . . . 76 5.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.4 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 82 x CONTENTS 6 Coherent Ray Tracing for Freeform Surfaces 83 6.1 B´ezier Fundamentals . . . . . . . . . . . . . . . . . . . . . . . 85 6.2 The Ray-Patch Intersection Problem . . . . . . . . . . . . . . 90 6.3 Uniform Refinement . . . . . . . . . . . . . . . . . . . . . . . 91 6.4 Newton Iteration . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.5 Newton Iteration and Krawczyk Operator . . . . . . . . . . . 104 6.6 B´ezier Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.7 Summary of Intersection Algorithms . . . . . . . . . . . . . . 123 6.8 Spatial Index Structures for Patches . . . . . . . . . . . . . . . 125 6.9 Trimming Curves . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.10 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.11 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 6.12 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 138 7 Dynamic Scenes 139 7.1 Rapid Construction of kd-Trees . . . . . . . . . . . . . . . . . 140 7.2 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 148 8 Distributed Coherent Ray Tracing on Clusters 149 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 8.2 Distribution Strategies . . . . . . . . . . . . . . . . . . . . . . 150 8.3 The OpenRT Distribution Framework . . . . . . . . . . . . . . 152 8.4 Communication and Dataflow . . . . . . . . . . . . . . . . . . 157 8.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.6 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 159 9 Applications 163 9.1 Instant Global Illumination . . . . . . . . . . . . . . . . . . . 163 9.2 Exploiting Coherence . . . . . . . . . . . . . . . . . . . . . . . 165 9.3 Streaming Computations . . . . . . . . . . . . . . . . . . . . . 167 9.4 Efficient Anti-Aliasing . . . . . . . . . . . . . . . . . . . . . . 169 9.5 Distributed Rendering . . . . . . . . . . . . . . . . . . . . . . 170 9.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.7 Conclusions and Future Work . . . . . . . . . . . . . . . . . . 173 10 Final Summary, Conclusions, and Future Work 175 A List of Related Papers 179 Bibliography 183

Description:
Akira Fujimoto, Takayuki Tanaka, and Kansei Iwata. ARTS: Accelerated Ray Tracing System. IEEE Computer. Graphics and Applications, 6(4):16–26, 1986. [Futral01]. William T. Futral. Infiniband Architecture: Development and Deployment – A Strategic Guide to Server I/O Solu- tions. Intel Press, 200
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.