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.

Problem: Die Blatt-Unterseiten werden nicht dargestellt.

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

  1. Öffne den AssetStore in Unity und suche nach „Double Sided Shaders“.
  2. Es gibt zwei Versionen, finde die kostenlose Version (oder kaufe die Pro-Version).
    Direktlink: https://www.assetstore.unity3d.com/en/#!/content/23087
  3. Klicke auf Download und dann auf Import, um das Asset zu Deinem Projekt hinzuzufügen.
  4. Du kannst das AssetStore-Fenster schließen.

Stelle das Material auf den Shader um

  1. Wähle Dein Material-Asset im Project-Fenster aus.
  2. 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:

Farn-Modell mit doppelseitigem Material

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.

 

Dr. René Bühling

Hi, mein Name ist René und ich möchte Dir dabei helfen, deinen Traum vom eigenen Computerspiel Wirklichkeit werden zu lassen. Mein erstes kommerziell veröffentlichtes Spiel habe ich Mitte der 1990er Jahre als Hobby-Projekt mit einem Basic-Dialekt unter Windows entwickelt. Seither verfolge ich das Thema Spieleentwicklung in Hobby, Studium und Beruf. Ich habe über 20 Jahre Erfahrung in allen Phasen des Entwicklungsprozesses, die ich gerne mit dir teilen möchte.