DIE RENDERGLEICHUNG Die Rendergleichung, wird in der 3D-Computergrafik verwendet. Es handelt sich um eine Integralgleichung, welche die Energieerhaltung bei der Ausbreitung von Lichtstrahlen beschreibt und somit die mathematische Basis für alle Algorithmen zur globalen Beleuchtung bildet. Geschichte und Einordnung Im Prinzip war alles, was zur Berechnung dreidimensionaler Bilder nötig war, schon lange vor der Rendergleichung vorhanden: Die Maxwellschen Gleichungen (1861 1864), die spezielle Relativitätstheorie (1905) und die Quantenmechanik (1920er) erklären die Interaktion von Licht und Materie so exakt, dass mit ihnen theoretisch die Berechnung beliebig realistischer Bilder möglich wäre. Für die 3D-Computergrafik erwies sich jedoch bereits sehr früh, dass es völlig unpraktikabel ist, mit diesen grundlegenden Modellen zu arbeiten; sie erfordern in den meisten Fällen einen selbst mit heutigen Computern nicht zu bewältigenden Rechenaufwand. Es zeigte sich jedoch auch, dass es nicht nötig war, mit derart exakten Modellen zu arbeiten: Die Quantenmechanik erklärt Effekte im Kleinen, die im menschlichen Alltag nicht wahrnehmbar sind, die Relativitätstheorie erklärt Sachverhalte im Grossen, die hauptsächlich bei astronomischen Grössenordnungen ihre Wirkung entfalten (vgl. etwa Raumzeit) und selbst einige Auswirkungen der Maxwellschen Gleichungen sind für die Praxis der Computergrafik oft bedeutungslos. Die Forscher arbeiteten daher mit der geometrischen Optik, die noch auf das antike Griechenland zurückgeht und das Verhalten des Lichts im Grossen also unter Vernachlässigung seiner Welleneigenschaften beschreibt. So entstanden Ansätze und Techniken, die statt komplexen Wellen einfache Lichtstrahlen durch die Szene verfolgen und in bewältigbarem Zeitaufwand zu passablen Ergebnissen führten, nämlich Raytracing und Radiosity. In diese Entwicklung hinein veröffentlichte Jim Kajiya 1986 die Rendergleichung. Kajiya zeigte, dass alle bis dato verbreiteten Rendertechniken direkt aus der Rendergleichung hergeleitet werden können. Damit gab es erstmals einen gemeinsamen mathematischen Unterbau, auf dem die Techniken verglichen werden konnten. Die Rendergleichung führte in der Folge nicht nur zu einer Systematisierung des Wissensgebietes, sondern inspirierte auch zahlreiche Weiterentwicklungen. Sie gilt heute als dermassen fundamental, dass viele fälschlicherweise annehmen, Raytracing sei aus der Rendergleichung entstanden oder die vorher entstandene Radiosity-Gleichung sei als Umformung aus ihr hervorgegangen. Rendern (Umsetzung oder Übertragung) Zur Geschichte: Im Bereich Design insbesondere im Automobildesign, wird damit die Umsetzung einer oft vorher mit Bleistift oder Kugelschreiber angelegten Skizze in differenzierterer Darstellung bezeichnet. Die Umsetzung wird sowohl mit Markern (Alkohol- oder Wasserbasis) als auch mit Buntstiften oder Kreiden so angelegt (oft auch in Kombination), dass durch Modellierung natürlicher Phänomene wie Textur, Refraktor (Lichtbrechung, Reflexion, Schatten etc. dem Betrachter ein Eindruck der Materialität, der Größe und Form vermittelt wird. Seite 1 von 5
Seit Mitte der 1990er Jahre wird dieser Vorgang vermehrt per Computergrafik mit entsprechender Software durchgeführt. In der Computergrafik bezeichnet rendern die Erzeugung eines Bildes aus Rohdaten (auch Szene genannt). Die Berechnung erfolgt über verschiedene algorithmische Methoden. Eine Szene: ist ein virtuelles räumliches Modell, das Objekte und deren Materialeigenschaften, Lichtquellen, sowie die Position und Blickrichtung eines Betrachters definiert. Renderer: werden Computerprogramme zum Rendern von Bildern genannt. Beim Rendern werden folgende Aufgaben gelöst: die Ermittlung der vom virtuellen Betrachter aus sichtbaren Objekte (Verdeckungsberechnung) die Simulation des Aussehens von Oberflächen, beeinflusst durch deren Materialeigenschaften (Shading) die Berechnung der Lichtverteilung innerhalb der Szene, die sich unter anderem durch die indirekte Beleuchtung zwischen Körpern äussert. Globale Beleuchtung (Global Illumination, abgekürzt GI) bezeichnet in der 3D-Computergrafik allgemein die Simulation der Licht-Wechselwirkungen von Objekten wie direktes und indirektes Licht. Im Speziellen sind damit nur diejenigen Verfahren gemeint, die alle Möglichkeiten der Ausbreitung von Lichtstrahlen in einer 3D-Szene berücksichtigen. Dadurch werden die Gesetze der geometrischen Optik, sowie der Energieerhaltung vollständig erfüllt und ein relativ realistisches Bild erzeugt. Faked Global Illumination Hierbei wird innerhalb der 3D-Software durch kluge Platzierung von diversen Lichtquellen und durch Anwendung von verschiedenartigen Tricks die GI erschwindelt (engl. to fake). In der Realität würden die Lichtpartikel von allen Objekten abgelenkt, reflektiert oder sogar beides. Bei der gefakten GI platziert man die Lichter so, dass sie als Ersatz für abgelenkte und/oder reflektierte Lichtpartikel agieren. Üblich wären beispielsweise ein Licht als Ersatz der primären Lichtquelle (z. B. Sonne) und weitere Lichter, die alle extrem dunklen Bereiche aufhellen, die nicht von der primären Lichtquelle erleuchtet werden. Image-based Lighting Eine andere Möglichkeit, echte globale Beleuchtung zu simulieren, besteht in der Verwendung von High Dynamic Range Images (HDRIs), auch Environment Maps genannt, die die Szene umschließen und diese ausleuchten. Dieses Verfahren wird als Image-based Lighting bezeichnet. VERFAHREN ZUR BERECHNUNG DER GLOBALEN BELEUCHTUNG Geschichte: Vor der Entwicklung von Raytracing bestand das junge Gebiet der 3D-Computergrafik im Wesentlichen aus einer Reihe von Programmiertricks, die versuchten, die Schattierung von beleuchteten Objekten nachzuahmen. Raytracing war der erste Algorithmus auf diesem Gebiet, der einen gewissen physikalischen Sinn ergab. Das erste mit Raytracing berechnete Bild wurde 1963 an der University of Maryland auf einem oszilloskopartigen Bildschirm ausgegeben. Seite 2 von 5
Als Entwickler des Raytracing-Algorithmus gelten oft Arthur Appel, Robert Goldstein und Roger Nagel, die den Algorithmus Ende der 1960er Jahre veröffentlichten. Weitere Forscher, die sich zu dieser Zeit mit Raytracing-Techniken beschäftigten, waren Herb Steinberg, Marty Cohen und Eugene Troubetskoy. Heute verwenden viele Renderer Raytracing meist in Kombination mit weiteren Verfahren. Einfache Formen des Raytracings berechnen nur die direkte Beleuchtung, also das direkt von den Lichtquellen eintreffende Licht. Raytracing wurde seit seiner ersten Verwendung in der Computergrafik jedoch mehrmals wesentlich erweitert. Höher entwickelte Formen berücksichtigen auch das indirekte Licht, das von anderen Objekten reflektiert wird; man spricht dann von einem globalen Beleuchtungsverfahren. 1a) Raycasting als einfaches Raytracing Gelegentlich wird Raycasting auch synonym zu Raytracing verwendet. Raycasting schickt für jedes Pixel des Betrachters (des zu berechnenden Bilds) einen Sehstrahl (Primärstrahlen) durch das Volumen. Der Strahl wird innerhalb des Volumens verfolgt und die Farb- und Opazitätswerte in regelmäßigen Abständen an den Abtast-Punkten auf dem Strahl bestimmt. Es wird ebenfalls die Schattierung an allen Abtastpunkten, für die Farbwerte, berechnet. Der so erhaltene Vektor, für den Sehstrahl, enthält die geordneten Abtast-Werte (Farb-, Opazitätswerte). In einem letzten Schritt, dem Compositing, werden dann die Farb- und Opazitätswerte kombiniert und das aus dem Sehstrahl resultierende Pixel in der Bildebene errechnet. Im Gegensatz zu erweiterten Raytracing-Varianten ist das Abtasten eines Strahls mit dem Aufeinandertreffen von Strahl und Objekt beendet, es findet also lediglich eine Verdeckungsberechnung statt. Die an diesem Schnittpunkt festgestellte Farbe bildet den Bildpunktfarbwert. Spiegelungen, Brechungen und Transmissionen des Objekts werden nicht beachtet. Diese Technik ermöglicht eine sehr schnelle Vorschau auf eine Szene. 1b) Raytracing (dt. Strahlverfolgung, in englischer Schreibweise meist ray tracing) ist ein auf der Aussendung von Strahlen basierender Algorithmus zur Verdeckungsberechnung, also zur Ermittlung der Sichtbarkeit von dreidimensionalen Objekten von einem bestimmten Punkt im Raum aus. Ebenfalls mit Raytracing bezeichnet man mehrere Erweiterungen dieses grundlegenden Verfahrens, die den weiteren Weg von Strahlen nach dem Auftreffen auf Oberflächen berechnen. Erweiterungen, die den Weg von Lichtstrahlen durch die Szene simulieren, dienen, ebenso wie das Radiosity-Verfahren, der Berechnung der Lichtverteilung. 2) Radiosity bzw. Radiosität ist ein Verfahren zur Berechnung der Verteilung von Wärme- oder Lichtstrahlung innerhalb eines virtuellen Modells. In der Bildsynthese ist Radiosity neben auf Raytracing basierenden Algorithmen eines der beiden wichtigen Verfahren zur Berechnung des Lichteinfalls innerhalb einer Szene. Es beruht auf dem Energieerhaltungssatz: Alles Licht, das auf eine Fläche fällt und von dieser nicht absorbiert wird, wird von ihr zurückgeworfen. Ausserdem kann eine Fläche auch selbstleuchtend sein. Das Radiosity-Verfahren basiert auf der Annahme, dass alle Oberflächen ideal diffuse Reflektoren bzw. alle Lichtquellen ideal diffuse Strahler sind. Ideal diffus bedeutet dabei, dass Licht in alle Richtungen gleichmässig reflektiert bzw. abgestrahlt wird. Im Gegensatz zu Raytracing ist Radiosity nicht vom Blickpunkt abhängig; die Beleuchtung der Flächen wird also für die gesamte Szene unabhängig von der Position des Betrachters berechnet. Die blickpunktabhängige Verdeckungsberechnung hat in einem unabhängigen Schritt zu erfolgen. Historisch gesehen war Radiosity interessant, da es die Simulation indirekter diffuser Beleuchtung auf einfache Weise erlaubte, was mit Raytracing lange Zeit nicht möglich war. Andererseits war Raytracing gut für spiegelnde und transparente Objekte geeignet, wozu wiederum Radiosity nicht fähig war. Es wurden daher anfangs Vorschläge zur Kombination von Radiosity mit Raytracing Seite 3 von 5
gemacht, die jedoch aufwendig waren und sich letztendlich nicht im grossen Masse durchsetzen konnten. Mit dem Aufkommen moderner globaler Beleuchtungsverfahren wie Path Tracing und Photon Mapping wurden jedoch die Möglichkeiten von Raytracing beträchtlich erweitert. Weil derartige Algorithmen alle von Radiosity unterstützten Effekte mit weniger Fehlern und auf elegantere Weise simulieren können, ist Radiosity im Bereich der hochwertigen realistischen Bildsynthese weitgehend aus der Mode gekommen. Kommerzielle Verwendung findet Radiosity vor allem beim Echtzeitrendern von Architekturmodellen, bei denen eine zeitaufwendige Vorausberechnung vertretbar ist. Auch derartige Anwendungen sind jedoch mit Raytracing-basierten Verfahren (Particle Tracing) möglich. Weitere Anwendung finden Radiosity-Verfahren in den Bereichen der Klima- bzw. Wärmeforschung, da Wärmeverteilung eher diffus als gerichtet geschieht und Radiosity hier praktikabler als strahlenbasierte Ansätze ist. 3) Final Gathering (auch Final Gather) ist ein Algorithmus der Bildsynthese in der Computergrafik, der auf Raytracing basiert. Dabei wird es sehr oft in Verbindung mit globaler Beleuchtung (global illumination) eingesetzt um optimale Beleuchtungs- und Schatteneffekte zu erzeugen. Besonders für diffuse Schattierungen und realistische Außenszenen wird dieser Algorithmus verwendet. Final Gathering war ursprünglich als performanceschonende Caching-Technik gedacht, die globale Beleuchtung in Geschwindigkeit und Qualität verbessern und ergänzen sollte. Durch die Ermittlung der ungefähren lokalen Strahlungsintensität nach dem Photon Tracing kann in Verbindung mit globaler Beleuchtung eine schnellere Berechnung der Beleuchtung erfolgen, da die globale Beleuchtung nicht so exakt berechnet werden muss. Weiterhin verringert sich der dunkle-ecken-effekt und das niederfrequente Rauschen. Mit Path Tracing gerendertes Bild Wenn die gleiche Szene mit zu wenig Strahlen gerendert wird, entsteht Bildrauschen. 4) Path Tracing ist ein Algorithmus zur Bildsynthese, der die Simulation der globalen Beleuchtung ermöglicht. Path Tracing basiert auf der Erkenntnis, dass die Simulation der globalen Beleuchtung der Lösung der sogenannten Rendergleichung entspricht, die die Strahlungsdichte eines beliebigen, von einem bestimmten Punkt ausgehenden Lichtstrahls angibt. Path Tracing verwendet rigorose mathematische Verfahren, die aus dem Bereich der mathematischen Statistik stammen. Der Algorithmus verwendet eine so genannte Monte-Carlo-Simulation, um die Rendergleichung annähernd zu lösen. Daher wird Path Tracing, ebenso wie weitergehende, darauf aufbauende Algorithmen wie Metropolis Light Transport oder Bidirectional Path Tracing, auch als Monte-Carlo-Raytracing bezeichnet. Beim Path Tracing wird jeder Strahl, der in die Szene geschossen wird, beim Auftreffen auf Oberflächen reflektiert, gebrochen oder absorbiert, wobei jedes Mal (außer im Falle der Absorption) mindestens ein zufälliger Strahl generiert wird, der das Integral der Rendergleichung nähert. Der Anfangsstrahl sucht sich so seinen Weg (path) durch die Szene. Je mehr Anfangsstrahlen man verwendet, desto mehr nähert man sich dem idealen Bild an. Die Fehler der Näherung äußern sich als Varianz, was Bildrauschen entspricht. Techniken wie Importance Sampling tragen zur Verringerung der Varianz bei. Der Unterschied zum diffusen Raytracing liegt darin, dass beim Seite 4 von 5
Path Tracing die vollständige Rendergleichung mittels zufällig generierten Strahlen auf allen auch auf diffusen Oberflächen gelöst und somit die globale Beleuchtung simuliert wird. In der Praxis ist reines Path Tracing meist zu langsam, weshalb es mit Photon Mapping kombiniert werden kann. Die Idee zum Path Tracing wurde 1986 von Jim Kajiya zusammen mit der Rendergleichung als SIGGRAPH-Publikation veröffentlicht, damals unter der Bezeichnung Integral equation technique. 5) Photon Mapping ist ein von Henrik Wann Jensen 1995 veröffentlichter Algorithmus der Bildsynthese, der vornehmlich als Erweiterung von Raytracing-basierten Verfahren genutzt wird. Das Ziel von Photon Mapping ist es, die globale Beleuchtung einer Szene effizient zu ermitteln und somit realistische Bilder bei geringerem Zeitaufwand zu erzeugen. Bei Photon Mapping werden vor dem eigentlichen Rendervorgang so genannte Photonen, die eine bestimmte Leistung (Strahlungsfluss) transportieren, von den Lichtquellen in die Szene geschossen. Geometrisch entspricht dies dem Raytracing von der Lichtquelle ausgehend. Ein Photon wird dabei massgeblich durch seine Position, die Richtung, aus der es eingestrahlt wird, und durch seinen Strahlungsfluss abstrahiert. Trifft ein solches von der Lichtquelle ausgehendes Photon eine Oberfläche, kann es reflektiert, gestreut, gebrochen, absorbiert oder in der Photon Map gespeichert werden, wenn es auf diffus reflektierende Oberflächen trifft. Dabei wird eventuell die Leistung des Photons verändert. Die Photon Map ist eine von der Szenengeometrie unabhängige Datenstruktur. Die so erstellte Photon Map kann auf verschiedene Art genutzt werden. Gebräuchlich ist das Verfahren, bei dem beim an jedem Punkt, an dem ein Strahl während des Raytracings auf eine Oberfläche trifft, die indirekte Beleuchtung durch die Dichte und Leistung der Photonen in der Photon Map in der Nähe des jeweiligen Punktes ermittelt wird. Durch Addition der so ermittelten indirekten Beleuchtung und der durch diffuses Raytracing ermittelten direkten Beleuchtung lässt sich die globale Beleuchtung einer Szene ermitteln. Daneben lässt sich die Photon Map zur Beschleunigung von Path Tracing verwenden. Zur effizienten Simulation von Kaustiken werden diese in einer unabhängigen Caustic Map gespeichert. Der Unterschied zu anderen von der Lichtquelle aus arbeitenden Verfahren wie Light Ray Tracing oder früheren Particle-Tracing- Methoden besteht darin, dass die indirekte Beleuchtung nur einmal in einem Arbeitsgang ermittelt und von der Geometrie unabhängig gespeichert wird. Photon Mapping: wird heute von den meisten grossen Renderern unterstützt. Der verbreitetste Renderer ist Mental Ray, der in vielen grossen 3D-Softwarepaketen standardmässig integriert ist. Auch andere Renderer wie POV-Ray, YafRay, V-Ray und Maxwell Render unterstützen Photon Mapping. Kaustik: Wenn ein paralleles Strahlenbündel auf die gewölbte Grenzfläche eines optischen Mediums fällt, werden die einzelnen Strahlen des Bündels in unterschiedlicher Weise abgelenkt und konzentrieren sich danach verstärkt in einzelnen Bereichen, die dadurch lokal überdurchschnittlich aufgehellt werden. Seite 5 von 5