1 / 54

Ray Tracing

Ray Tracing. Inhalt. Einführung Entwicklungsgeschichte Was ist Ray Tracing? Betrachtung des Ray Tracing Algorithmus Der Ray Tracing Algorithmus Schnittpunkttests. Inhalt. Erweiterungen Schatten Rekursives Ray Tracing Diffuses Ray Tracing

abdul-haney
Download Presentation

Ray Tracing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ray Tracing

  2. Inhalt Einführung Entwicklungsgeschichte Was ist Ray Tracing? Betrachtung des Ray Tracing Algorithmus Der Ray Tracing Algorithmus Schnittpunkttests

  3. Inhalt Erweiterungen Schatten Rekursives Ray Tracing Diffuses Ray Tracing Path Tracing / Bidirektionales Path Tracing Metropolis Light Transport (MLT) Photon Mapping Beschleunigungstechniken Übersicht Zeitstrahl Zusammenfassung

  4. Entwicklungsgeschichte Erste Veröffentlichung durch Appel, Goldstein und Nagel Ende der 60er Jahre 1. Modell das auf physikalischen Begebenheiten aufbaut (geometrische Optik)

  5. Was ist Ray Tracing? Ein globales Beleuchtungsmodell, dass die Ausbreitung von Lichtstrahlen simuliert Neben Radiosity eines der am häufigsten verwendeten Sämtliche hochwertigen Renderer benutzen heute unter anderem das Ray-Tracing-Modell

  6. Der Ray Tracing Algorhitmus • Das Prinzip von Ray Tracing ist es die Strahlen von der Kamera aus zu den einzelnen Objekten der Szene zurückzuverfolgen. Dazu erstellt man ein virtuelles, gerastertes Rechteck, dass mit den Pixeln auf dem Bildschirm vergleichbar ist.

  7. Der Ray Tracing Algorhitmus • Durch jedes einzelne dieser Quadrate wird nun ein Strahl geschickt und überprüft mit was dieser kollidiert. Anschließend wird noch überprüft welches dieser Objekte das vorderste war und das Pixel dementsprechend eingefärbt.

  8. Der Ray Tracing Algorhitmus • Man unterscheidet hierbei 2 unterschiedliche Typen von Strahlen Primärstrahlendie vom Auge ausgehen, und Sekundärstrahlen, wozu sämtliche Spiegelungs-, Reflexions- und Brechungsstrahlen gehören.

  9. Der Ray Tracing Algorhitmus

  10. Der Ray Tracing Algorhitmus

  11. Der Ray Tracing Algorhitmus • In Pseudocode: Prozedur Bild_Rendern Strahl.Ursprung = Augpunkt; Für jedes (x,y)-Pixel der Rastergrafik Strahl.Richtung = [3D-Koordinaten des Pixels der Bildebene] - - Augpunkt; Farbe des (x,y)-Pixels = Farbe_aus_Richtung(Strahl);

  12. Der Ray Tracing Algorhitmus Funktion Farbe_aus_Richtung(Strahl) Schnittpunkt = Nächster_Schnittpunkt(Strahl) Wenn Schnittpunkt.Gewinner ? (kein) dann Farbe_aus_Richtung = Farbe_am_Schnittpunkt(Strahl, Schnittpunkt)

  13. Der Ray Tracing Algorhitmus Funktion Nächster_Schnittpunkt(Strahl) MaxDistanz = 8 Schnittpunkt.Gewinner = (kein) Für jedes Primitiv der Szene Schnittpunkt = Teste_Primitiv(Primitiv, Strahl) Wenn Schnittpunkt.Distanz < MaxDistanz dann MaxDistanz = Schnittpunkt.Distanz Schnittpunkt.Gewinner = Primitiv Nächster_Schnittpunkt = Schnittpunkt

  14. Schnittpunkttests Elementar für den Ray Tracer Feststellung durch geometrische Berechnungen, ob der Strahl und ein Objekt sich schneiden bzw. berühren.

  15. Schnittpunkttests Bsp. Anhand einer Kugel: Aufstellen der Geradengleichung des Strahls: p + t * d (t >= 0) Kugeloberfläche: x2 + y2 + z2 = r2

  16. Schnittpunkttests Die Gerade kann die Kugel an max. 2 Stellen schneiden. Daraus folgt: oder:

  17. Schnittpunkttests Durch einsetzen in die quadratische Lösungsformel erhält man:

  18. Schnittpunkttests Bei keinem reelen Ergebnis schneidet der Strahl die Kugel nicht. Wenn ein Ergebnis vorliegt ist der Strahl tangential und bei zweien schneidet er die Kugel.

  19. Schnittpunkttests Bsp. Anhand eines Dreiecks: Schneidet der Strahl die auf dem Dreieck liegende Ebene? Berechnung ähnlich durch einsetzen in die Ebenengleichung:

  20. Schnittpunkttests Nenner des Bruchs für s berechnen. Falls dieser gleich null ist, sind Linie und Ebene parallel, und es gibt entweder keinen oder unendlich viele Schnittpunkte. Durch einsetzen eines beliebigen Punktes des Strahls in der Ebenengleichung lässt sich dieser Fall klären.

  21. Schnittpunkttests Liegt der s außerhalb von [0; 1], dann gibt es keinen Schnittpunkt, da der Punkt außerhalb der Linie liegt. Ansonsten s als Faktor in die Geradengleichung einsetzen um den Schnittpunkt zu berechnen.

  22. Schnittpunkttests • Liegt der Schnitpunkt auf dem Dreieck oder nicht? • Hier gibt es mehrere Möglichkeiten: • Wenn man den Schnittpunkt mit allen Dreieckspunkten verbindet, und dann die Winkel dazwischen aufaddiert, liegt der Punkt genau dann auf dem Dreieck wenn die Summe 360° ergibt.

  23. Schnittpunkttests • Man erstellt 3 weitere Ebenen entlang der Dreiecksseiten senkrecht zum Dreieck. Dabei achtet man darauf das die Normalen der Ebenen ins Dreieckinnere zeigen. Setzt man nun den Schnittpunkt in diese Ebenengleichungen ein muss das Ergebnis positiv oder null für alle drei sein damit der Punkt auf dem Dreieck liegt.

  24. Schnittpunkttests

  25. Schatten • 1968 zeigte Appel das es ohne großen Aufwand mit dem Ray Tracing Alghorhythmus möglich ist einfache Schatten zu berechnen. • Der Strahl wird von dem Objekt ausgehend in Richtung der Lichtquellen abgeschossen und es wird getestet ob andere Objekte dazwischen liegen.

  26. Schatten

  27. Rekursives Ray Tracing Um spiegelnde oder transparente Objekte besser darzustellen, muss man einen Reflektionsstrahl berechnen. Bei spiegelnden Oberflächen gilt der Einfallswinkel ist gleich dem Ausfallswinkel. Bei transparenten Oberflächen wird der Strahl gemäß der Brechungsgesetze berechnet.

  28. Rekursives Ray Tracing Der Schnittpunkt der am nächsten ist wird auf das Objekt abgebildet. Bei transparenten Objekten wird der Fresnel Term benutzt um die Farbanteile des reflektierten und des gebrochenen Strahls zu errechnen.

  29. Rekursives Ray Tracing

  30. Rekursives Ray Tracing

  31. Rekursives Ray Tracing

  32. Rekursives Ray Tracing

  33. Diffuses Ray Tracing Veröffentlichung 1984 Auch stochastisches oder distributed Ray Tracing genannt

  34. Diffuses Ray Tracing Erzielte Effekte Weiche Lichtschatten Verschwommene Lichtreflexionen Tiefenunschärfe Bewegungsunschärfe Antialiasing

  35. Diffuses Ray Tracing Die Erweiterung zum normalen Raytracing besteht darin das nicht nur ein Sekundärstrahl, sondern mehrere zufällig generierte ausgesandt werden. Nachteilhaft hierbei ist das entstehende Bildrauschen bei zu wenig ausgesandten Strahlen.

  36. Diffuses Ray Tracing

  37. Path Tracing Veröffentlichung 1986 durch Kajiya Ermöglicht die Darstellung der globalen Beleuchtung, wodurch auch Kaustiken sichtbar werden.

  38. Path Tracing Hierbei handelt es sich um eine Monte-Carlo-Simulation. Die Primärstrahlen werden hierbei an jeder Oberfläche reflektiert. Die Sekundärstrahlen werden zufällig generiert.

  39. Path Tracing Je mehr Primärstrahlen man verwendet um so besser und genauer wird das Bild. Der Unterschied zum diffusen Ray Tracing besteht also darin, dass diffuse Reflexion mitbeachtet wird. Path Tracing ist allerdings sehr rechenintensiv.

  40. Path Tracing

  41. Bidirektionales Path Tracing Funktioniert genauso wie Path Tracing. Mit nur einem Unterschied die Strahlen werden nicht nur vom Augpunkt aus gesendet sondern auch von den Lichtquellen aus und am Ende miteinander kombiniert.

  42. Bidirektionales Path Tracing

  43. Metropolis Light Transport Veröffentlichung 1997 von Eric Veach and Leonidas J. Guibas Monte Carlo Verfahren, das Schwierigkeiten lösen kann wie z.B helles indirektes Licht oder kleine geometrische Löcher

  44. Metropolis Light Transport

  45. Photon Mapping Veröffentlichung 1995 durch Jensen Ermöglicht es die Beleuchtung bereits im vorhinein zu berechnen und diese während des Rendervorgangs relativ schnell zu rekonstruieren.

  46. Photon Mapping Photon Mapping ist kein eigenständiges Verfahren, es wird nur benutzt um andere Algorhythmen zu erweitern. Beispielsweise um Path Tracing zu beschleunigen oder um globale Beleuchtung bei diffusem Raytracing zu ermöglichen. Photon Mapping ist allerdings in der Präzision kaum mehr nachvollziehbar und daher schwer zu kontrollieren.

  47. Photon Mapping

  48. Beschleunigungstechniken Durch Unterteilungen des virtuellen Raums in eine Gitterstruktur kann man den Rechenaufwand zur Kollisionserkennung zwischen dem Strahl und den Objekten verbessern, indem zuerst die einzelnen Quader auf Kollision getestet werden und nur falls diese Eintritt die darin enthaltenen Objekte.

  49. Beschleunigungstechniken

  50. Beschleunigungstechniken Es gibt mehrere Möglichkeiten ein solches Unterteilungsschema zu erstellen z.B Voxelgitter, BSP Bäume oder Quader.

More Related