AW: Brigade-Engine: Echtzeit-Raytracing-Videos mit GTA-Setting und dynamischem Tänzer
Doch in gewisser weiße tun sie das Beim Raytracing. Es wäre sonst ein zu großer rechenaufwand jeden Strahl für jedes einzelne Photon zu berechnen, zumal man da nicht mal die Objekte aussparen kann die nicht im Bild sind. alles muss berechnet werden. Das kostet sehr viel zeit und ist dadurch weit rechenintensiver. Also werden die strahlen von der Kamera aus rückwärts verfolgt. Wenn ich damit Falsch liege bitte ich um Aufklärung und Entschuldigung.
@MysticBinary82
ja das stimmt
aber die Kamera "sendet" keine aus....
Doch, tut sie. Vor allem, wenn man sich auch nur halbwegs in echtzeitfähigen FPS-Gefilden bewegen möchte. Dennoch gibt es sowohl das eine, als auch das andere. Das hier erwähnte "backward ray tracing" ist die geläufigere Methode, da sie deutlich effizienter ist, was Sichtstrahlen anbelangt, die letzten Endes die wichtigsten für die Bildsynthese sind. Dann gibt es eben das "forward ray tracing", das eben Lichtstrahlen ausgehend von der Lichtquelle berechnet. Hierbei kommt man relativ schnell an Beleuchtungsinformationen, da man direkt die Lichtausbreitung berechnet, aber nur ein Bruchteil der Strahlen (im Worst-Case natürlich gar keiner) kommt an der Kamera an - und damit kann die Bilderzeugung je nach Szene sehr lange dauern, nochmals deutlich länger als bei "backward ray tracing". Dann gibt es eben noch bidirektionales Raytracing. Effektiv gesehen wird dabei ein backward-Strahl und ein forward-Strahl in die Szene geschossen und danach nach einer Verbindung zwischen den Strahlen gesucht.
Leider gibt es aber keine "beste Methode", je nach Einsatzzweck und Szene muss man sich für einen Typ mit Vor- und Nachteilen begnügen.
Backward ray tracing ist besonders schnell, wenn man eine einfache Szene ohne viel globaler Beleuchtung vor sich hat, denn wenn viele Strahlen auf den virtuellen Strahlenhintergrund treffen, ist reguläres Pathtracing sehr schnell. Forward Ray Tracing eignet sich für die Erstellung von Lightmaps und BiDir eignet sich besonders für komplexe Lichtszenarien, vor allem Innenraumszenen.
So viel zur Theorie.
Ist schon wirklich beeindruckend.
Aber für mich als Raytracing-Noob: Warum sind RT-Videos eigentlich immer so körnig/verpixelt?
Liegt das an den Dreiecken die bei dieser Technologie verwendet werden?
In der Realität findest du beleuchtungstechnisch ausschließlich flächenartige Beeinflussungen von Gegenständen. Es gibt keine punktförmigen Lichtquellen, alle Lichtquellen haben eine Oberfläche und die Schatten sind immer zu einem gewissen Grad weich; alle angestrahlten Flächen sind für sich wieder große, flächenartige Lichtquellen, wodurch die globale Beleuchtung entsteht und Oberflächen können angerauht sein, wobei sie dann eine unscharfe Reflexion oder Lichtbrechung ermöglichen. Beispiele gibt es zuhauf, schau dich einfach mal um.
Dabei ergibt sich aber ein riesiges Problem in der physikalischen Simulation von Licht: Licht hat einen Teilchencharakter, man spricht in der Physik auch von Photonen. Du hast also einzelne Teilchen, die sich in der Masse flächenartig verhalten... und ein Computer kann daher eben nur einen Lichtstrahl gleichzeitig simulieren. Wie erreicht man dann also dieses flächenartige Verhalten? Ziemlich banal: man mittelt so viele Lichtstrahlen, dass das Ergebnis also wieder ungefähr passt. Je länger man wartet, desto präziser die Annäherung.
Am Anfang ist jedes per Raytracing berechnete Bild "grieselig", da einfach zu wenig Strahlen für die Näherung verwendet wurden. Je länger du wartest, desto mehr Strahlen treffen auf den selben Ort und besitzen durch die Líchtstreuung dann andere Beleuchtungsinformationen, welche dann für diesen Pixel gemittelt werden. Dadurch wird dieser Pixel immer besser angenähert, bis du am Ende eine angemessen gute Annäherung vorliegen hast.
Ich hoffe, du konntest mir einigermaßen folgen.
Naja, so far,
gRU?; cAPS