280 likes | 408 Views
Raytracing, the future of realtime computer graphics?. von Miroslav Knejp. Übesicht. Erste Eindrücke Rasterization, die Quadratur des Dreiecks Erster Einsatz in Spielen Das grundlegende Prinzip Vor- und Nachteile Raytracing, die Simulation der Realität Die Entstehungsgeschichte
E N D
Raytracing, the future of realtime computer graphics? von Miroslav Knejp
Übesicht • Erste Eindrücke • Rasterization, die Quadratur des Dreiecks • Erster Einsatz in Spielen • Das grundlegende Prinzip • Vor- und Nachteile • Raytracing, die Simulation der Realität • Die Entstehungsgeschichte • Wie funktioniert es? • Vor- und Nachteile • Hardwareumsetzung • Ein Blick in die Sterne • Hybridverfahren • Der SaarCOR Pionier
Übesicht Erste Eindrücke Rasterization, die Quadratur des Dreiecks Erster Einsatz in Spielen Das grundlegende Prinzip Vor- und Nachteile Raytracing, ein physikalisches Modell Die Entstehungsgeschichte Wie funktioniert es? Vor- und Nachteile Hardwareumsetzung Ein Blick in die Sterne Hybridverfahren Der SaarCOR Pionier
Rasterization • 1996: Quake ist das erste Spiel mit Rasterization und Polygonen • Fast komplett von John Carmack allein geschrieben • Michael Abrash für Optimierungen einbezogen • Erste Anwendung von Lightmaps • Anfangs reiner Software Rasterizer • Später Support für Renditions‘s Vérité 1000 Grafikchip • GLQuake für Windows 95 • Demonstrierte die Fähigkeiten der 3dfx „Voodo“ Chipsätze Inzwischen glauben viele, dies wäre der Auslöser für die Gründung neuer Unternehmen und die revolutionäre Entwicklung der Grafikkarten gewesen.
Scanline Algorithmus • Anfangs nur die Eckpunte bekannt • Berechne die Kantenvektoren und die Umkehrung der Steigung 1/m. Die Kanten gehen von oben nach unten • Wähle Kanten ausgehend vom höchsten Punkt • Zeichne alle Punkte zwischen den x Werten der Kantenanfänge • Veschiebe die Kanten um 1 nach unten und addiere 1/m auf die x Werte • Zeichne alle Punkte zwischen den neuen x Werten • Wiederhole bis keine Kanten mehr da
Vor- & Nachteile • Einfacher Algorithmus mit minimalem Rechenaufwand • Äußerst effektive Hardwareumsetzungen • Keinerlei forgeschrittene Effekte • Schattenwurf (Stencil-Buffer Maske) • Reflexionen (Stencil-Buffer Maske) • Refraktionen (nur mit Shadern) • Runde Flächen nur mit vielen Polygonen möglich • Beluchtungsmodell wird meist auf mehr Bildpunkte angewandt als nötig
Übesicht Erste Eindrücke Rasterization, die Quadratur des Dreiecks Erster Einsatz in Spielen Das grundlegende Prinzip Vor- und Nachteile Raytracing, ein physikalisches Modell Die Entstehungsgeschichte Wie funktioniert es? Vor- und Nachteile Hardwareumsetzung Ein Blick in die Sterne Hybridverfahren Der SaarCOR Pionier
Historisches • 1966 Mathematical Application Group Inc. (MAGI) für Strahlungsdarstellung mit ray casting • 1968 Arthur Apple nimmt in betracht ray casting für Grafikdarstellung zu benutzen • 1972 wird MAGI wird zu Animatinsstudio • Erstellte damals 3-D Animationen für TV, Bildungskanal und TRON • 1979 Turner Whitted erweitert ray casting um weitere, rekursiv erstelte, Strahlen und schafft damit den Durchbruch der Computergrafik und nennt das Verfahren ray tracing
Vorteile • Pixelgenaue Beleuchtung, ziemlich realistische Lichtverhältnise • Beleuchtungsmodell wird nur auf sichtbaren Objektpunkten ausgewertet • Realistische Schatten, Reflexionen und Refraktionen sind eingebaute Effekte und benötigen keine Tricks oder Shader • Shader sind weiterhin einsetzbar • Mit guten Sortieralgorithmen ist die Komplexität der Szene fast irrelevant (k-D Bäume) • Runde Flächen durch Gleichungen oder Interpolation erreichbar • Hypertextures
Nachteile • Schnittpunktberechnungen zwischen Gerade und Dreieck langsam • Geradengleichung: X = O + µ * D • Unterschiedlich je nach Schnittobjekt (Ebenen, Kugeln, Dreiecke, NURBS etc.) • Ohne einen effizienten Sortieralgorithmus der Geometrie kaum machbar, da sonst O(n) für jeden Strahl, mitn = Anzahl Objekte in der Szene! • Führt zu Aliasing • Weiche Schatten sind teuer • Trotz statischer Szene müssen alle Licht- und Schattenberechnungen für jeden Blickpunkt durchgeführt werden • Globales Diffuses Licht wird nicht berücksichtigt
k-D Bäume • k-dimensionale Raumeinteilungsbäume • Jede Aufzweigung unterteilt den Raum entlang einer der Hautpachsen • Die Vergleichsachse wird bei jedem Tiefenschritt cyklisch gewechselt • Jeder Knoten enthält genau ein Element; Speicherverbrauch O(n) • Konstruktion in O(n log n) • Orthogonale Bereichssuche: Finde alle Knoten, deren Position in einem bestimmten Suchbereich liegt O(n1-1/k) • Interaktives Beispiel
Hardwareumsetzung • Zur Zeit keine echten Raytracer Grafikkarten vorhanden • Rekursionen lassen sich schwierig mit hoher Effizienz umsetzen • Rasterizer: Jedes Dreieck wird einzeln berechnet und dann verworfen • Raytracer: Gesamte Gemoetrie muss während des Vorgangs gespeichert werden • Maximale Parallelität, da Strahlen voneinander unabhängig
Übesicht Erste Eindrücke Rasterization, die Quadratur des Dreiecks Erster Einsatz in Spielen Das grundlegende Prinzip Vor- und Nachteile Raytracing, ein physikalisches Modell Die Entstehungsgeschichte Wie funktioniert es? Vor- und Nachteile Hardwareumsetzung Ein Blick in die Sterne Hybridverfahren Der SaarCOR Pionier
Hybridverfahren • Ersetze die Schnittpunktberechnung durch Rasterizer • Anstatt der Farbe wird Position des Schnittpunkts und ein Zeiger auf das Dreieck gespeichert • Damit wird die erste Stufe deutlich beschleunigt • Ist nur für mittel gefüllte Szenen brauchbar wegen der Rasterizer Nachteile • Schattenberechnung, Transparenz und Spiegelung müssen wieder vom Raytracer Algorithmus übernommen werden • Hoher Geschwindigkeitsschub bei wenig Spiegelungen und Lichtbrechungen
Der SaarCOR • Echtzeit Raytracing Chip der Universität Saarbrücken • Wurde am Lehrstuhl für Computergrafik unter Prof. Phillip Slusallek entwickelt • SIGGRAPH 2005 wurde er erstmals im Cell-Processor von IBM demonstriert • Der erste und einzige Raytracing Chip • OpenRT: Eine Software Grafik API, die stark an die von OpenGL angelehnt ist und die Grundlage für den Chip war • Kann riesige Datenmengen in Echtzeit darstellen • Automobilindustrie setzt das Echtzeit-Raytraicing Verfahren bereits in der Planungsphase ein, um Fehler vor der Produktion zu finden • RPU: Programmable Ray Processing Unit • www.saarcor.de
SaarCOR Technisches • Realisiert auf einem FPGA Chip • FPGA = Field Programmable Gate Array, besteht aus sehr vielen programmierbaren Elementen (= Gates), deutlich langsamer als festverdrahtete Logik • 90 MHz Grundtakt • 6 x 4 MB SD-RAM • 2 RAM Riegel für Framebuffer, 1 Riegel für Shader und 3 Riegel für k-D Baum und Dreiecke • 300 MB/s Speicherbandbreite von Raytracer und Shader genutzt • 135 MB/s zum Zeichnen einer 1024x768 Szene auf dem Bildschirm • PCI Anschluss • Festverdrahtete Logik könnte noch schnellere Taktungen und mehr Speicher/Bandbreite erreichen
SaarCOR Performance OpenRT: 2,66 GHz Pentium 4 | 512 x 384 Auflösung SaarCOR/RPU: 66 MHz | Texturen, Shading & Filter
nVidia 8800 GTX • 3D Mark03 • 25 494 022 Triangles • 84,69 fps • Deutlich höhere Transistorzahlen als complette Quad-Core CPUs • GPU-Takt: 575 MHz • Speichertakt: 1800 MHz • 128 Shader Einheiten (1,35 GHz) • 768 MB GDDR3 RAM • 30 GB/s Anbindung (könnte über 100 Raytracing Einheiten versorgen) • Der bis heute schnellste veröffentlichte Raytracer auf GPUs schaffte 300k bis 4M Strahlen pro Sekunde ohne Geometry Shader (ATI Radeon 9700PRO) • Der FPGA Prototyp schafft 3M bis 12M Strahlen pro Sekunde mit deutlich geringeren Energie- und Bandbreitenanforderung • Fazit: Ein festverdrahteter SaarCOR, der um eine oder zwei Größenordnungen erweitert wird, würde bereits die Fähigkeiten normaler Grafikkarten übertreffen.
Echt oder künstlich? Danke für die Aufmerksamkeit Q & A