Eigene Cubemaps erstellen: Unterschied zwischen den Versionen

Aus EEP Wiki
Wechseln zu: Navigation, Suche
Zeile 29: Zeile 29:
  
 
=== Benötigte Software ===
 
=== Benötigte Software ===
 +
Zunächst benötigt man Gimp (= Gnu Image Manipulation Program).
 +
Dieses kann man sich beispielsweise unter https://www.gimp.org/downloads/ herunterladen.
 +
Im Windows-Installer sind die Versionen für 32 bit und für 64 bit erhalten.
 +
Es wird die zum Rechner passende Version installiert.
 +
 +
Außerdem benötigt man noch das DDS-Plugin für Gimp, das man unter https://code.google.com/archive/p/gimp-dds/downloads herunterladen kann.
 +
Allerdings sind hier die 32bit- und die 64bit-Version getrennt.
 +
Zusätzlich muss die Hauptversion von Gimp mit der Hauptversion des Plugins übereinstimmen, beispielsweise Gimp-2.x.x und Gimp-dds-2.y.y.
 +
Bei der Installation ist die dort dokumentierte Vorgehensweise zu beachten.
 +
 
=== Gimp-Projekt anlegen ===
 
=== Gimp-Projekt anlegen ===
 +
 +
Nun startet man Gimp und öffnet eine der 6 Würfelansichten für die Cubemap.
 +
 +
Anschließend öffnet man die übrigen Ansichten als neue Ebenen im bereits geöffneten Bild.
 +
 +
Bevor man ans Exportieren denken kann, muss man noch dafür sorgen, dass Gimp die Ansichten an die richtigen Stellen setzt.
 +
Dazu müssen die Ebenen passend benannt werden. Die Kennzeichnung muss im Namen der Ebene enthalten sein, der Name selbst kann aber länger sein.
 +
Die Reihenfolge der Ebenen ist nicht relevant.
 +
Folgende Varianten stehen zur Auswahl:
 +
 +
{| class="wikitable"
 +
|-
 +
!Kennzeichnung
 +
!Alternative 1
 +
!Alternative 2
 +
!Alternative 3
 +
|-
 +
|right
 +
| +x
 +
|positive x
 +
|pos x
 +
|-
 +
|left
 +
| -x
 +
|negative x
 +
|neg x
 +
|-
 +
|top
 +
| +y
 +
|positive y
 +
|pos y
 +
|-
 +
|bottom
 +
| -y
 +
|negative y
 +
|neg y
 +
|-
 +
|back
 +
| +z
 +
|positive z
 +
|pos z
 +
|-
 +
|front
 +
| -z
 +
|negative z
 +
|neg z
 +
|-
 +
|}
 +
 +
Für die Zuordnung hilft auch diese Darstellung:<br>
 +
[[Datei:Convention_cubemap_eep.jpg]]
 +
 +
Im Ebenen-Fenster von Gimp sehen die Ebene-Namen beispielsweise so aus (hier benannt nach Alternative 2):<br>
 +
[[Datei:Cubemap-Ebenen.png]]
 +
 
=== Cubemap exportieren ===
 
=== Cubemap exportieren ===
 +
 +
Bevor die Cubemap nun exportiert wird, prüft man noch einmal alle Vorgaben:
 +
* Sind alle Ebenen gleich groß?
 +
* Sind alle Ebenen quadratisch?
 +
* Verwenden alle Ebenen dieselbe Farbtiefe und sind sie einheitlich mit oder ohne Alpha-Kanal?
 +
* Sind die Ebenen passend benannt?
 +
 +
Nun wählt man unter <code>Datei</code> &rarr; <code>Exportieren als ...</code>.
 +
 +
Man navigiert zum Zielordner <code>Resourcen\Parallels\Cubmaps</code> und wählt einen Dateinamen mit der Endung <code>.dss</code>.
 +
Gimp erkennt an der Dateiendung, dass eine DDS-Datei erzeugt werden soll, und öffnet folgenden Dialog:<br>
 +
[[Datei:Cubemap Gimp Export.gif]]
 +
 +
Wichtig sind hier folgende Einstellungen:
 +
# Für <code>Save:</code> muss <code>As cube map</code> ausgewählt werden.<br>Falls diese Einstellung nicht verfügbar (ausgegraut) ist, ist mindestens eine der Voraussetzungen nicht erfüllt.
 +
# Für <code>Compression:</code> ist eine Kompression zu verwenden, die EEP versteht, z.B. <code>None</code> oder <code>BC3 / DXT5</code>.
 +
# Bei <code>Mipmaps:</code> muss <code>No mipmaps</code> stehen.
 +
 +
Nach Anklicken der Schaltfläche <code>OK</code> wird die Cubemap im angegebenen Ordner unter dem angegebenen Namen erstellt.
  
 
== Cubemap im Home-Nostruktor verwenden ==
 
== Cubemap im Home-Nostruktor verwenden ==

Version vom 11. Juli 2017, 20:43 Uhr

Was ist eine Cubemap und wozu dient sie?

Eine Cubemap stellt die Umgebung dar, die auf spiegelnden Oberflächen reflektiert wird. Im Konzept-Artikel zu Reflexionen werden einige Hintergrundinformationen dazu geliefert.

Die Cube-Map kann man sich als die Textur eines großen Würfels vorstellen, der die ganze (3D-) Welt umspannt, und der von innen "tapeziert" ist.

Für den Home-Nostruktor muss die Cubemap als DDS-Datei im Ordner Resourcen\Parallels\Cubmaps vorliegen. Dabei wird die DDS-Datei auf spezielle Weise erstellt, um die 6 Ansichten in eine Datei zu packen.

Benötigte Bilder

Man benötigt also 6 Ansichten, die nahtlos aneinander passen, und die den 6 Seiten eines Würfels entsprechen. Um einen Würfel zu bilden, müssen diese 6 Ansichten jeweils quadratisch sein. Die Kantenlänge muss ein Vielfaches von 32 Pixeln sein.

Cubemaps neigen dazu, sehr groß zu werden, ohne dass ein Detailreichtum wirklich benötigt wird. Es ist daher sinnvoll, für die Kantenlänge jeder Ansicht 512 Pixel (entspricht der Default-Cubemap) oder 1024 Pixel (bereits recht großzügig) vorzusehen.

Der erste Schritt zum Erstellen einer eigenen Cubemap ist also das Beschaffen von 6 quadratischen Bildern, die nahtlos aneinander passen und zusammen eine vollständige Rundumsicht darstellen. Derartige Bilder kann man sich selbst aus hinreichend vielen Fotos zusammenbauen. Man findet aber auch im Internet gute Quellen für solche Cubemaps, z.B. unter http://www.humus.name/index.php?page=Textures.

Für den Rest dieses Artikels gehen wir davon aus, dass 6 gleich große, quadratische Bilder vorliegen.

Cubemap mit Gimp erstellen

Generell kann man Cubemaps mit verschiedenen Programmen erstellen. Mir ist jedoch nur der Weg über Gimp bekannt.

Daneben soll es zumindest für Adobe Photoshop ein geeignetes Plugin geben.

Benötigte Software

Zunächst benötigt man Gimp (= Gnu Image Manipulation Program). Dieses kann man sich beispielsweise unter https://www.gimp.org/downloads/ herunterladen. Im Windows-Installer sind die Versionen für 32 bit und für 64 bit erhalten. Es wird die zum Rechner passende Version installiert.

Außerdem benötigt man noch das DDS-Plugin für Gimp, das man unter https://code.google.com/archive/p/gimp-dds/downloads herunterladen kann. Allerdings sind hier die 32bit- und die 64bit-Version getrennt. Zusätzlich muss die Hauptversion von Gimp mit der Hauptversion des Plugins übereinstimmen, beispielsweise Gimp-2.x.x und Gimp-dds-2.y.y. Bei der Installation ist die dort dokumentierte Vorgehensweise zu beachten.

Gimp-Projekt anlegen

Nun startet man Gimp und öffnet eine der 6 Würfelansichten für die Cubemap.

Anschließend öffnet man die übrigen Ansichten als neue Ebenen im bereits geöffneten Bild.

Bevor man ans Exportieren denken kann, muss man noch dafür sorgen, dass Gimp die Ansichten an die richtigen Stellen setzt. Dazu müssen die Ebenen passend benannt werden. Die Kennzeichnung muss im Namen der Ebene enthalten sein, der Name selbst kann aber länger sein. Die Reihenfolge der Ebenen ist nicht relevant. Folgende Varianten stehen zur Auswahl:

Kennzeichnung Alternative 1 Alternative 2 Alternative 3
right +x positive x pos x
left -x negative x neg x
top +y positive y pos y
bottom -y negative y neg y
back +z positive z pos z
front -z negative z neg z

Für die Zuordnung hilft auch diese Darstellung:
Convention cubemap eep.jpg

Im Ebenen-Fenster von Gimp sehen die Ebene-Namen beispielsweise so aus (hier benannt nach Alternative 2):
Cubemap-Ebenen.png

Cubemap exportieren

Bevor die Cubemap nun exportiert wird, prüft man noch einmal alle Vorgaben:

  • Sind alle Ebenen gleich groß?
  • Sind alle Ebenen quadratisch?
  • Verwenden alle Ebenen dieselbe Farbtiefe und sind sie einheitlich mit oder ohne Alpha-Kanal?
  • Sind die Ebenen passend benannt?

Nun wählt man unter DateiExportieren als ....

Man navigiert zum Zielordner Resourcen\Parallels\Cubmaps und wählt einen Dateinamen mit der Endung .dss. Gimp erkennt an der Dateiendung, dass eine DDS-Datei erzeugt werden soll, und öffnet folgenden Dialog:
Cubemap Gimp Export.gif

Wichtig sind hier folgende Einstellungen:

  1. Für Save: muss As cube map ausgewählt werden.
    Falls diese Einstellung nicht verfügbar (ausgegraut) ist, ist mindestens eine der Voraussetzungen nicht erfüllt.
  2. Für Compression: ist eine Kompression zu verwenden, die EEP versteht, z.B. None oder BC3 / DXT5.
  3. Bei Mipmaps: muss No mipmaps stehen.

Nach Anklicken der Schaltfläche OK wird die Cubemap im angegebenen Ordner unter dem angegebenen Namen erstellt.

Cubemap im Home-Nostruktor verwenden

Ein Modell im Home-Nostruktor (also ein Projekt) kann immer nur eine Cubemap haben. Die Cubemap wird in den Projekteigenschaften festgelegt.

Im Abschnitt "Cubemap:" klickt man auf die Schaltfläche "..." und wählt die eigene Cubemap aus:
Projekteigenschaften Cubemap.gif

Damit ist die Cubemap im Projekt registriert.

Wo die Cubemap für Reflexionen verwendet wird, entscheidet man durch die Einstellungen der Instanzen. Im Abschnitt "Einstellungen der KON-Datei" wählt man unter "Reflektion:" einen der verfügbaren Reflexionsgrade.

Auf einer stark spiegelnden Kugel kann das Ergebnis beispielsweise so aussehen:
Cubemap auf Kugel.jpg

Siehe auch