Eigene Cubemaps erstellen: Unterschied zwischen den Versionen
Cetz (Diskussion | Beiträge) |
K (→Cubemap mit Gimp erstellen: Hinweis auf DxTex.exe) |
||
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
Im [[Konzepte: Reflexion|Konzept-Artikel zu Reflexionen]] werden einige Hintergrundinformationen dazu geliefert. | Im [[Konzepte: Reflexion|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 | + | 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 <code>Resourcen\Parallels\Cubmaps</code> vorliegen. | Für den Home-Nostruktor muss die Cubemap als DDS-Datei im Ordner <code>Resourcen\Parallels\Cubmaps</code> vorliegen. | ||
Zeile 20: | Zeile 20: | ||
Man findet aber auch im Internet gute Quellen für solche Cubemaps, z.B. unter http://www.humus.name/index.php?page=Textures. | 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 | + | Für den Rest dieses Artikels wird angenommen, dass 6 gleich große, quadratische Bilder vorliegen. |
== Cubemap mit Gimp erstellen == | == Cubemap mit Gimp erstellen == | ||
Generell kann man Cubemaps mit verschiedenen Programmen erstellen. | Generell kann man Cubemaps mit verschiedenen Programmen erstellen. | ||
− | + | Bekannt ist vor allem die Erstellung mit Gimp. Mit dem Home-Nostruktor wird ein DirectX Texture Tool mitgeliefert, zu finden im Ordner Home-Nostruktor13/DxTex.exe, mit welchem ebenfalls Cubemaps erstellt werden können. Voraussetzung ist aber immer, dass man die entsprechenden Texturvorlagen bereits hat. | |
Daneben soll es zumindest für Adobe Photoshop ein geeignetes Plugin geben. | Daneben soll es zumindest für Adobe Photoshop ein geeignetes Plugin geben. | ||
=== Benötigte Software === | === Benötigte Software === | ||
+ | Zunächst benötigt man Gimp (= Gnu Image Manipulation Program). Siehe [[Bildbearbeitung#GIMP]]. | ||
+ | |||
+ | 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 Ebenen-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> → <code>Exportieren als ...</code>. | ||
+ | |||
+ | Man navigiert zum Zielordner <code>Resourcen\Parallels\CUBEMAPS</code> und wählt einen Dateinamen mit der Endung <code>.dds</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 == | ||
Zeile 36: | Zeile 117: | ||
Die Cubemap wird in den [[Projekteigenschaften]] festgelegt. | Die Cubemap wird in den [[Projekteigenschaften]] festgelegt. | ||
− | Im Abschnitt " | + | Im Abschnitt "Cube-Map:" klickt man auf die Schaltfläche "..." und wählt die eigene Cubemap aus:<br> |
[[Datei:Projekteigenschaften_Cubemap.gif]] | [[Datei:Projekteigenschaften_Cubemap.gif]] | ||
Zeile 45: | Zeile 126: | ||
Auf einer stark spiegelnden Kugel kann das Ergebnis beispielsweise so aussehen:<br> | Auf einer stark spiegelnden Kugel kann das Ergebnis beispielsweise so aussehen:<br> | ||
− | [[Datei:Cubemap auf Kugel.jpg]] | + | [[Datei:Cubemap auf Kugel.jpg|left]] |
+ | Solch eine Kugel ist sicher kein guter Anwendungsfall für eine Cubemap: | ||
+ | Wenn man diese Kugel auf eine Anlage stellt, wird man sofort sehen, dass sie nicht die aktuelle Umgebung widerspiegelt. Außer man baut gerade genau diesen Platz nach. | ||
+ | |||
+ | Solange aber die Spiegelung so schwach ist, dass sie eigentlich nicht unmittelbar auffällt, sondern nur bei Bewegung etwas über die spiegelnde Fläche huscht, und wenn dieses Etwas seinem Charakter nach ungefähr zur Umgebung passt, kann eine Cubemap zu einem realistischeren Eindruck beitragen. | ||
+ | <br clear=all> | ||
== Siehe auch == | == Siehe auch == | ||
* [[Konzepte: Textur]] | * [[Konzepte: Textur]] | ||
* [[Konzepte: Reflexion]] | * [[Konzepte: Reflexion]] | ||
+ | * [[Bildbearbeitung]] | ||
* [[Projekteigenschaften]] | * [[Projekteigenschaften]] | ||
* [[Modelleinstellungen|Einstellungen der Instanzen]] | * [[Modelleinstellungen|Einstellungen der Instanzen]] |
Aktuelle Version vom 13. Juli 2017, 18:27 Uhr
Inhaltsverzeichnis
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 wird angenommen, dass 6 gleich große, quadratische Bilder vorliegen.
Cubemap mit Gimp erstellen
Generell kann man Cubemaps mit verschiedenen Programmen erstellen. Bekannt ist vor allem die Erstellung mit Gimp. Mit dem Home-Nostruktor wird ein DirectX Texture Tool mitgeliefert, zu finden im Ordner Home-Nostruktor13/DxTex.exe, mit welchem ebenfalls Cubemaps erstellt werden können. Voraussetzung ist aber immer, dass man die entsprechenden Texturvorlagen bereits hat.
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). Siehe Bildbearbeitung#GIMP.
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:
Im Ebenen-Fenster von Gimp sehen die Ebenen-Namen beispielsweise so aus (hier benannt nach Alternative 2):
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 Datei
→ Exportieren als ...
.
Man navigiert zum Zielordner Resourcen\Parallels\CUBEMAPS
und wählt einen Dateinamen mit der Endung .dds
.
Gimp erkennt an der Dateiendung, dass eine DDS-Datei erzeugt werden soll, und öffnet folgenden Dialog:
Wichtig sind hier folgende Einstellungen:
- Für
Save:
mussAs cube map
ausgewählt werden.
Falls diese Einstellung nicht verfügbar (ausgegraut) ist, ist mindestens eine der Voraussetzungen nicht erfüllt. - Für
Compression:
ist eine Kompression zu verwenden, die EEP versteht, z.B.None
oderBC3 / DXT5
. - Bei
Mipmaps:
mussNo 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 "Cube-Map:" klickt man auf die Schaltfläche "..." und wählt die eigene Cubemap aus:
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:
Solch eine Kugel ist sicher kein guter Anwendungsfall für eine Cubemap: Wenn man diese Kugel auf eine Anlage stellt, wird man sofort sehen, dass sie nicht die aktuelle Umgebung widerspiegelt. Außer man baut gerade genau diesen Platz nach.
Solange aber die Spiegelung so schwach ist, dass sie eigentlich nicht unmittelbar auffällt, sondern nur bei Bewegung etwas über die spiegelnde Fläche huscht, und wenn dieses Etwas seinem Charakter nach ungefähr zur Umgebung passt, kann eine Cubemap zu einem realistischeren Eindruck beitragen.