Unity 3D Tutorial Teil 5

Unity 3D Tutorial – 3D Lighting (Licht erstellen) (5/12)

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Im letzten Artikel hast du, nach dem Whiteboxing, die Gestaltung eines Levels mit 3D Assets kennengelernt. Dafür haben wir verschiedene Prefabs aus dem 3D Gamekit verwendet. Du hast natürlich auch die Möglichkeit eigene 3D Modelle zu erstellen und zu importieren. Für dieses Tutorial ist das aber etwas zu komplex. Daher lag der Fokus vermehrt auf dem Importieren von bereits bestehenden Assets.

In diesem Teil des Unity 3D Tutorials werden wir uns unterschiedliche Lichtquellen in der Unity-Engine ansehen. Hierfür gibt es verschiedene Einstellungen und Beleuchtungsarten, die verwendet werden können. In diesem Tutorial erhältst du übrigens eine ausführliche Übersicht zum Unity Lighting. 

Abhängig von der Beleuchtung verändert sich anschließend auch die entsprechende Szene. Lichtquellen sind bei 3D Echtzeit Anwendungen wichtig, da sie den Realismus erhöhen. Wenn du also eine eigene Anwendung erstellen möchtest, sind Lichtquellen sehr wichtig. Bisher haben wir nur das Directional Light verwendet. Das ändern wir jetzt…

Erstellung 3D Lighting Einstellungen

Bevor wir auf die einzelnen Arten von Lichtquellen eingehen, ist es wichtig, dass du verschiedene Objekte in der Szene platziert hast. Denn diese werden vom Licht angestrahlt und dadurch verändert sich auch die Beleuchtung der Szene. Falls du noch keine Objekte importiert hast, solltest du noch einmal einen Schritt zurückgehen und dein Level entsprechend gestalten.

Beim Hinzufügen von Lichtquellen werden immer 3 Schritte durchgeführt:

  • Erstellung
  • Konfiguration
  • Berechnung

Diese Schritte können sowohl in Echtzeit als auch vorab durchgeführt werden. Bevor wir jetzt verschiedene Lichtquellen hinzufügen, müssen wir die Lichteinstellungen (Lighting Settings) vornehmen. Wähle dazu Window -> Rendering ->Lighting. Danach sollte das Fenster, wie in der unteren Abbildung zu sehen, erscheinen.

3D Lighting Einstellungen

Im ersten Schritt empfehle ich dir neue Lighting Settings zu erstellen. Klicke dazu auf New Lighting Settings. Achte jedoch darauf, dass du zuvor den Ordner wählst, in dem die Einstellungen abgespeichert werden sollen. In meinem Fall ist das der Ordner nobreakpoints. Sobald du auf New Lighting Settings klickst, wird automatisch eine neue Datei erstellt. Im Anschluss hast du die Möglichkeit dieser einen bestimmten Namen zu geben.

Ich wähle zum Beispiel MyMainLightingSettings. Der Name der Datei spielt keine große Rolle. Hier ist es nur wichtig, dass das Ganze übersichtlich bleibt. Sobald du einen Namen vergeben hast, sollte dieser auch in den Lighting Settings unter Lighting Settings Asset erscheinen.

Konfiguration 3D Lighting Einstellungen

Okay, wir haben jetzt eine Datei für das Lighting erstellt. Diese hat übrigens den Dateityp .lighting. Damit können wir nun die Konfiguration vornehmen. Alle Einstellungen, die wir bezüglich der Berechnung und der Details des Lichts treffen, sind in dieser Datei abgespeichert. Die Einstellungen für die einzelnen Lichtquellen sind hier jedoch nicht gespeichert. Diese werden später in den Komponenten der GameObjects festgelegt. Das sehen wir uns aber gleich noch genauer an.

In diesem Tutorial wollen wir uns lediglich auf die Basics begrenzen, da das ganze sonst zu komplex werden würde. Zunächst empfehle ich dir bei Lightmapper die Einstellung auf Progressive GPU zu ändern. Durch diese Einstellung wird nicht die CPU (Hauptprozessor), sondern die GPU (Grafikprozessor) für die Berechnung der Beleuchtung verwendet. Abhängig von deiner Hardware wird letztlich auch das Ergebnis beeinträchtigt. In den meisten Fällen ist die GPU jedoch besser. Das lässt sich aber auch über verschiedene Performance Tools analysieren.

3D Lighting Progressive GPU

Im unteren Teil der Lighting Settings gibt es noch die Checkbox Auto Generate. Ich empfehle dir das zu deaktivieren. Mit dieser Einstellung wird die Beleuchtung automatisch neu berechnet, sobald sich die Szene ändert. Das ist auch der Fall, sobald beispielsweise die Position eines Objektes geändert wird. Daher macht es mehr Sinn zunächst das Level zu erstellen, Sachen zu konfigurieren und ganz am Ende die Lichtberechnung manuell durchzuführen. Dafür gibt es den Button Generate Lighting gleich neben der Checkbox.

Auto Generate Lighting

Der Teil bis hierher war nur die Erstellung und Konfiguration der Lighting Einstellungen. Nun wollen wir verschiedene Lichtquellen in unserer Szene hinzufügen. Diese findest du über das Pluszeichen in der Hierarchie. Dabei gibt es

  • Directional Light
  • Point Light
  • Spot Light
  • Area Light

Directional Light

Im ersten Schritt wollen das Directional Light in der Szene betrachten. Diese Art von Lichtquelle kennst du bereits, denn sie ist in unserer Anwendung bereits vorhanden. Wenn du auf das GameObject Directional Light klickst, findest du zu dieser Lichtquelle im Inspector die nötigen Einstellungen. Über das Plus in der Hierarchie und Light -> Directional Light hast du auch die Möglichkeit diese neu zu erstellen. Wichtig zu wissen ist, dass eine Verschiebung der Position keinen Einfluss auf die Beleuchtung besitzt. Würdest du diese jedoch rotieren, so verändert sich auch das Licht. Abhängig von der Positionierung der Objekte werden die Punkte von der Sonne angestrahlt oder liegen im Schatten.

Directional Light Unity

Hinweis: Mit dem ultimativen Unity Cheat Sheet erhältst du einen detaillierten Überblick über Tipps & Tricks mit dem Umgang von Unity. Sichere dir jetzt das Cheat Sheet, um deine Anwendungen noch einfacher und effektiver erstellen zu können!

In 3D Echtzeit Anwendungen ist normalerweise ein Directional Light vorhanden. Selten sind es mehrere von dieser Beleuchtungsart. Selektierst du die entsprechende Lichtquelle, sind in der Komponente Light die zugehörigen Einstellungen zu sehen. Dabei lässt sich die Farbe, die Intensität oder auch die Auflösung verändern. Auch die Erzeugung der Schattenart (Harte, weiche oder keine Schatten) kann eingestellt werden.

Außerdem besteht die Möglichkeit den Mode anzupassen. Hierfür gibt es Realtime, Mixed und Baked. Der Mode ist wichtig, um festzulegen, wie die Beleuchtung berechnet wird. Soll es in Echtzeit (Realtime), vorab (Baked) oder aus einer Mischung aus beidem (Mixed) berechnet werden? Das hängt stark von der Art der Objekte in der Szene ab. Bei statischen Objekten, die während der Laufzeit die Position nicht verändern, ist eine vorherige Berechnung durchaus möglich. Bei dynamischen Objekten, die ihre Position ändern können, ist das nicht möglich.

Der Baked Mode macht besonders bei schwächeren Endgeräten wie mobilen Endgeräte Sinn, da nicht alles in Echtzeit berechnet werden muss. Ist dieser Mode gewählt, so wird vorab eine Lightmap erstellt, die anschließend in der Anwendung verwendet wird. Das Licht wird jedoch nur für Objekte berechnet, die mit Static gekennzeichnet sind (siehe nachfolgende Abbildung).

Static Objects in Unity für Lichtberechnung

Point Light

Eine weitere Lichtquelle ist das Point Light. Dabei wird Licht von einem einzigen Punkt gleichmäßig in alle Richtungen der Szene ausgesendet. Um das hinzuzufügen, klickst du auf das Plus in der Hierarchie und wählst Light -> Point Light. Dadurch wird ein neues GameObject mit dem Namen Point Light erstellt. Anschließend kannst du die Position beliebig verändern. Um einen Einfluss auf die Umgebung feststellen zu können, versuche es doch einfach im Dropship zu platzieren. Durch Aktivieren/Deaktivieren wirst du einen deutlichen Unterschied erkennen.

Point Light Unity

Am Punkt der Lichtaussendung ist diese Beleuchtung am hellsten. Und sie verliert mit zunehmender Entfernung die Intensität. Diese Entfernung kann auch über die Range angepasst werden. Sie wird in der Szene mit gelben Kreisen eingeblendet. Veränderst du die Range, so wird sie vergrößert oder verkleinert. Dementsprechend ändert sich auch die Beleuchtung auf andere Objekte in der Umgebung. Falls die Range nach dem Selektieren des GameObjects Point Light nicht angezeigt wird, kannst du das in der Scene View -> Built-in Components -> Light aktivieren.

Range der Point Light

Spot Light

Zum Abschluss dieses Teils wollen wir noch ein Spot Light hinzufügen. Dieses wird, genauso wie das Point Light, von einem einzigen Punkt ausgesendet. Allerdings besteht der Unterschied darin, dass das Licht nicht in alle Richtungen gleichmäßig, sondern nur in eine bestimmte Richtung abgestrahlt wird.

Um das zu testen, lässt sich die Statue verwenden, die wir mit dieser Lichtquelle anstrahlen können. Wähle dazu wieder das Plus in der Hierarchie und anschließend Light -> Spot Light. Ein einfacher Weg, um die genaue Positionierung und Blickrichtung festzulegen, ist, die Blickrichtung der View zu verwenden. Richte die Blickrichtung in der Szene auf die Statue und wähle durch einen Rechtsklick auf das Spot Light GameObject Align with View. Dadurch erhält die Beleuchtung die Blickrichtung der Szene.

Spot Light Unity

Auch hierbei lassen sich verschiedene Einstellungen wie die Farbe, der Mode, die Intensität oder die Range vornehmen. Versuche doch gleich einmal verschiedene Lichtquellen in der Szene zu platzieren.

Wenn du die Anwendung mit dem Play-Button startest und dich mit dem Character einer Lichtquelle näherst, wirst du auch den Effekt eines dynamischen Objektes kennenlernen. Die Beleuchtung auf den Character ist dynamisch, da sich ja die Position während der Laufzeit verändert. Im nächsten Abschnitt sehen wir uns interaktive Objekte an. Dazu zählt beispielsweise eine Tür, die sich öffnen lässt oder auch bewegliche Plattformen.

Hinweis: Du möchtest eigene 2D/3D Spiele und Anwendungen erstellen? Dann teste jetzt nobreakpoints Pro. Dort findest du in verschiedenen Online-Kursen und Workshops das nötige Wissen, um deine Ideen in die Wirklichkeit umzusetzen.

Free

Trial

Keine Extra-Kosten.
Jederzeit kündbar.

Bist du bereit atemberaubende Spiele und 3D Anwendungen zu erstellen?

*Nach 1 Monat wird die Mitgliedschaft automatisch auf monatlicher Basis zum Premium-Preis verlängert, bis du kündigst. Angebot kann nur einmal pro Nutzer beansprucht werden.

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Weitere Blogartikel