Beleuchtung
Einer der wichtigsten Bereiche der 3D-Computergrafik ist die Beleuchtung. Mit der Beleuchtung werden Licht, Schatten, Reflektionen und Lichtbrechungen geformt und kontrolliert. Eine Szene die unterschiedlich beleuchtet wird kann Gefühle wie Glück, Trauer und Angst erzeugen und geben unserer Grafik Persönlichkeit. Unsere Beleuchtung füllt eine Szene also mit Emotionen, die direkt an den Betrachter übermittelt wird. Um eine möglichst realitätsnahe Beleuchtung zu erschaffen, müssen wichtige Faktoren wie Position, Intensität, Farbe und Größe des Lichts berücksichtig werden. Damit wir diese Faktoren bearbeiten können, müssen wir zuerst verschiedene Arten von direkten Lichtquellen (Lokale Beleuchtung) erstellen, die jede ihre eigenen Eigenschaften und Umsetzungsarten besitzen.
Umgebungslicht (Ambient Light): Das Umgebungslicht sorgt für ein allgemeines Grundlicht, da es in alle Richtungen gleich intensives Licht strahlt. Alle Objekte in der Szene besitzen eine flache, eintönige Farbschattierung, die weder Glanzlicht noch Lichtabfall erzeugen. Somit spielt es keine Rolle, wohin die Lichtquelle positioniert wird. Das Umgebungslicht wird nicht alleine verwendet, da Objekte sonst vollkommen flach wirken würden. In Kombination mit anderen Lichtquellen kann die Grundhelligkeit einer Szene gesteuert werden.
Punktlicht (Point/Omni Light): Eine Punktlichtquelle simuliert Licht, das von einem einzelnen Punkt in einem dreidimensionalen Raum entsteht und in alle Richtungen strahlt. Am besten kann man sich dies vorstellen, indem man eine Glühbirne irgendwo in einem dunklen Raum platziert. Die Position des Punktlichtes ist wichtig, jedoch die Richtung in der das Licht strahlt, spielt keine Rolle.
Spotlicht (Spotlight): Spotlichter stellen die wohl komplexeste Art von Lichtquelle dar und ähneln den Spotlichtern aus der realen Welt. Sie strahlen von einem einzelnen Punkt im Raum, in eine bestimme Richtung ein kegelförmiges Licht aus. Als bestes Beispiel hierfür stellt man sich eine Taschenlampe vor, die Licht ausstrahlt. Spotlichter können auch mit einem Objekt verbunden werden, so dass das Licht immer an die Richtung des Objekts gerichtet ist.
Richtungslicht (Directional Light): Anders wie Punktlichter, dessen Position in einem Raum eine wichtige Rolle spielt, stellen Richtungslichter besonders weitgelegene Lichtquellen (wie z.B. Sonne oder Mond) dar. Sie beleuchten alle Objekte vom gleichen Blickwinkel, unabhängig davon wo das Objekt platziert ist.
Flächenlichtquelle (Area Light): Eine Flächenlichtquelle strahlt von einer begrenzten Fläche, die entweder eine Rechteckige oder Kreisförmige Form hat, Licht aus. Die Intensität ist abhängig von der Form und Größe die genutzt wird. Je größer die Flächenquelle, desto mehr Licht strahlt sie ab. Ist die Fläche klein, so wird dementsprechend weniger Licht ausgestrahlt. Als Beispiel hierfür kann eine rechteckig geformte Flächenquelle genommen werden, die eine Leuchtstofflampe simulieren soll.
Objekte werden aber auch durch indirektes Licht beleuchtet, das durch diffuses Licht (gestreute Beleuchtung) oder direkte Reflexion entsteht. Hier sind dann Spiegelungen, Mehrfachreflexionen und Lichtbrechungen von Bedeutung, da sie die Lichtstrahlen weiter ausbreiten. Damit wird eine realistische Szene erzeugt. Diese Art von indirekter Beleuchtung wird als Globale Beleuchtung (Global Illumination) bezeichnet. Für die Globale Beleuchtung gibt es zwei Verfahren:
Raytracing (Strahlenverfolgung): Raytracing ist für die natürliche Reflektion, Lichtbrechung und Schattierung von Licht auf dreidimensionalen Oberflächen verantwortlich. Die Vorgehensweise läuft, anders wie in der Realität, umgekehrt ab. In der Realität, entsteht Licht von einer Lichtquelle, wird in einem Raum reflektiert und erreicht schließlich die Kamera. Beim Raytracing entspringen die Lichtstrahlen direkt aus der Kamera und strahlen von dort aus in eine Szene hinein. Wenn der Lichtstrahl von der Kamera ein Objekt trifft, wird überprüft ob dieses Objekt reflektierend oder lichtbrechend ist und ob es Schatten empfängt. Nachteil dieser Methode ist das es sehr Rechenintensiv ist und diffuse Mehrfachreflexionen der Global Illumination nichtberücksichtigt.Radiosity (Radiosität): Um das Problem der Mehrfachreflexion beim Raytracing zu beheben, gibt es das Radiosity-Verfahren. Alles Licht das auf eine Fläche gestrahlt wird und die nicht absorbiert wird, wird von ihr wieder zurückgeworfen. Auch kann eine Fläche selbstleuchtend sein. Hier wird also die Intensität aller Oberflächen einer Umgebung berechnet, indem die Szene in mehrere Teilbereiche aufgeteilt wird und anschließend wie das abgestrahlte Licht der Objekte eines Teilbereichs, die Objekte eines anderen Bereichs beeinflusst. Nachteil hier ist, wie beim Raytracing auch, dass das Radiosity-Verfahren sehr rechenintensiv ist und die Renderzeiten dementsprechend auch lang sind.