Modell-Rückseiten in Unity anzeigen
Unity – und eigentlich auch alle anderen Echtzeit-GameEngines – zeichnen normalerweise nur die Vorderseite von 3D-Objekten (Faces), da man davon ausgehen kann, dass für die Mehrheit aller Objekte nur die Außenseiten sichtbar sind. Würde man grundsätzlich immer beidseitig rendern, würde das den doppelten Rechenaufwand bedeuten, weshalb diese Optimierung grundsätzlich durchaus Sinn macht. In einigen Fällen kann es aber durchaus erforderlich sein, die Modelloberflächen doppelseitig (Double Sided) zu zeichnen, zum Beispiel bei den Blättern einer Pflanze.
Eine Lösung für das Problem besteht darin, einen speziellen Shader in Unity zu verwenden, der doppelseitig rendert. Dieser Beitrag beschreibt, welche Schritte nötig sind, um Double Sided Shader aus dem Unity-AssetStore zu laden und im Projekt anzuwenden.
Lösungsweg
Lade das kostenlose Asset-Paket Double Sided Shaders aus dem AssetStore
- Öffne den AssetStore in Unity und suche nach „Double Sided Shaders“.
- Es gibt zwei Versionen, finde die kostenlose Version (oder kaufe die Pro-Version).
Direktlink: https://www.assetstore.unity3d.com/en/#!/content/23087
- Klicke auf Download und dann auf Import, um das Asset zu Deinem Projekt hinzuzufügen.
- Du kannst das AssetStore-Fenster schließen.
Stelle das Material auf den Shader um
- Wähle Dein Material-Asset im Project-Fenster aus.
- Wähle in der Auswahlliste „Shader“ im Inspector den Eintrag Ciconia Studio > Double Sided > Transparent > Diffuse Bump Cutout.
Je nach Anwendungsfall kann auch ein anderer Shader nützlich sein. Wenn Du keine Transparenz brauchst, solltest Du z.B. einen Eintrag aus dem Standard-Menü wählen.
Ergebnis
Das Modell wird nun von beiden Seiten gezeichnet:
Eine Alternative ist die doppelseitige Modellierung, das heißt sowohl die obere als auch die untere Fläche des Blattes muss im Mesh modelliert werden. Wenn die Normalen der Flächen entsprechend nach außen (d.h. für die Oberseite nach oben und die Unterseite nach unten) zeigen, entsteht eine doppelseitige Darstellung. Dieser Weg funktioniert für alle Materialien, ist aber aufwändig in Erstellung und weiterer Verarbeitung (z.B. bei Animation).
Zusammenfassung
Meshes werden normalerweise nur einseitig gezeichnet, um den Rechenaufwand gering zu halten. In Sonderfällen, wie z.B. bei den Blättern einer Pflanze, muss man selbst abwägen, ob das doppelseitige Berechnen grafisch erforderlich ist und die zusätzliche Rechenlast rechtfertigt. Im Beispiel des Farns könnte einseitiges Rendern genügen, wenn er auf dem Boden wächst und man von der Kameraperspektive so gut wie immer nur von oben darauf schaut. Sieht man ihn jedoch seitlich, kann es dagegen erforderlich sein, für eine doppelseitige Darstellung zu sorgen.