[TUT] Foliage Bäume einfügen

  • Hallo liebe LS Freunde,
    heute zeige ich ein neues Tutorial von mir und zwar vom richtigen Einbau der Foliage Bäume.


    Foliage Bäume in die Map einfügen

    In diesem Tutorial versuche ich euch zu erklären, wie man neue Foliages [in diesem Falle Bäume] in die Map integriert. Neben dem Einfügen erkläre ich euch
    auch ein Paar Dinge, damit Ihr auch versteht, wieso was gemacht werden muss.

    Was sind Foliage Bäume?

    • Foliage Bäume sind keine 3D Objekte.
    • Da diese Bäume nicht zum Importieren in die Map sind, ist auch keine Datei (i3d) vorhanden.
    • Mann kann sie - wie auch Map-Früchte - ganz einfach im Foliage Paint Modus in der Map zum dekorieren nutzen


    Inhalt des Tutorials

    1. Benötigte Software
    1.1 Welche Dateien werden benötigt

    2. Texturen LS13 tauglich machen

    3. Kopieren der Dateien

    4. Einträge in die .i3d

    5. Nachtrag

  • 1. Benötigte Software


    Selbstverständlich kann auch der GE 5.0.1 verwendet werden. Um diesen downloaden zu können muss man sich auf der Giants GDN Seite registrieren.
    Vorsicht: Die Freischalt Mail landet danach zu 90% im Spamordner!

    Anstatt von Notepad++ kann natürlich auch jeder andere Texteditor verwendet werden - Jedoch ist dieses Textprogramm wärmstens zu empfehlen, da es am übersichtlichsten ist und man damit schnell und sauber arbeiten kann!

    Auch beim Komprimierungsprogramm "WinRar" kann als Beispiel "7zip" verwendet werden.

    Paint.net würde ich euch sehr Empfehlen - damit sind Texturen sehr schnell in das Format .dds [Direct Draw Surface] umgewandelt.


    Warum das Format "dds" ?


    Der Hauptvorteil von DDS ist der geringere Speicherverbrauch auf der Grafikkarte (nachfolgend VRAM genannt). Im Vergleich zu PNG und JPG braucht eine DDS Textur bei gleicher Auflösung nur 1/8 VRAM. Da Speicher ja bekanntlich endlich und begrenzt ist, sollte es einem nicht schwer fallen sich vor zu stellen, wie gut diese Einsparung ist. Vor allem, weil die Qualität der Texturen gleich bleibt.
    Weiterer Vorteil ist das deutlich schnellere Laden der DDS-Texturen. PNG und JPG-Texturen sind stark komprimierte Formate. Diese müssen erst dekomprimiert werden, bevor die Grafikkarte etwas damit anfangen kann. DDS-Texturen brauchen nicht dekomprimiert werden, dadurch werden diese ca 8-10 mal schneller geladen. Vor allem bei Maps macht sich das in LS deutlich bemerkbar.
    Durch den deutlich geringeren Speicherverbrauch wird außerdem der bekannte Bad Allocation Absturz weitestgehend verhindert. Den gibt es, wie bekannt sein dürfte, wenn der vom Spiel benutzbare Speicher (2GB normalerweise, nach Anwendung des CFF-Explorers 3GB bei 32bit Betriebssystemen bzw. 4GB bei 64bit Betriebssystemen) voll ist. Bei einem geringeren Speicherverbrauch der Texturen dauert es logischerweise deutlich länger, bevor der Speicher voll ist und das Spiel abstürzt.

    (Quelle: bassaddict /forum.giants-software.com)

    Einmal editiert, zuletzt von Claas_Evolution (22. Dezember 2013 um 13:22)

  • 2. Texturen LS13 tauglich machen

    Da diese Foliages aus dem Landwirtschaftssimulator 2011 stammen, und dieser noch ein Hühnerauge zudrückte was Formate angeht, müssen wir diese in das Format "dds" Umwandeln und deren Größe anpassen.

    Das richtige Abspeichern

    Wir öffnen also den heruntergeladenen und frisch entpackten Ordner "baeume Flexensteiner" und öffnen die erste, sich im Hauptordner befindende, PNG Texturdatei "treesLaub1_density" mit Paint.net

    Und speichern diese, ohne jegliche Änderung an der Textur selbst, wieder als .dds ab.

    Dazu drücken wir den Shortcut "Strg+Umschalt+S" [Speichern Unter] welcher uns im Programm danach eine neues Fenster öffnet.
    In diesem neuem Fenster gehen wir Unten auf "Dateityp" und suchen uns das Format: "dds".
    Ist dieses gewählt, bestätigen wir mit "Speichern".
    Ein neues Fenster wird geöffnet in dem wir gefragt werden, welches Alpha (DXT1, DXT3, DXT5 - näheres dazu am Ende des Posts) wir verwenden wollen. Wir verwenden hier "DXT5" und bestätigen mit "Ok".

    Zur kurzen Veranschaulichung:


    Diesen Vorgang bitte auch mit den restlichen Dateien im Hauptordner machen:

    • treesLaub2_density
    • treesNadel1_density
    • treesNadel2_density


    Was sind DXT1, DXT3, DXT5 speicher Methoden?


    DXT1: Diese Komprimierung verwendet man, wenn die Textur keine Transparenten Pixel hat. Da JPG keine Transparenz kennt kann man zum konvertieren solcher Texturen immer DXT1 verwenden. Diese Komprimierung verwendet am wenigsten Speicher. Deswegen sollte man diese verwenden, wo es nur möglich ist.
    DXT3: Diese Komprimierung verwendet man bei binärer Transparenz. Das heißt, wenn die Pixel einer Textur entweder voll transparent sind, oder nicht transparent. Zum speichern des Alpha-Kanals (Alpha bezeichnet die Transparenz in einem Bild) wird extra Speicher gebraucht. Deswegen belegt eine mit DXT3 gespeicherte Textur doppelt soviel Speicher wie eine DXT1 Textur.
    DXT5: Diese wird bei Texturen mit mehrstufiger Transparenz verwendet. Dies ist oftmals bei Fenster- und Partikel-Texturen der Fall. DXT5 braucht genauso viel Speicher wie DXT3.

    (Quelle: bassaddict /forum.giants-software.com)


    Die richtige Größe

    Da ich diese Foliages natürlich schon einmal verbaut habe, weiß ich dass man nur die im Hauptordner befindliche Textur "treesLaub1_density.png" verändern muss, da beim Rest die Größe richtig gewählt wurde.
    Die im Unterordner "foliage" befindlichen Texturen müssen alle angepasst werden, da im Landwirtschaftssimulator 2013 nur noch Formate in der Länge von 4, 8, 16, 32, 64, 128, 256, 512, 1024 und 2048 erlaubt sind (mehr dazu weiter unten im Post).

    Wir öffnen also wieder die Erste Datei - "treesLaub1_density.png", im Ordner baeume Flexenstein, mit Paint.net und drücken den Shortcut "Strg+R" - Größe ändern.
    Es öffnet sich ein Neues Fenster.

    Wir sehen dort sofort: Die Größe 4096x4094, passt nicht! Würden wir diese Größe jetzt beibehalten nähme das keinen Einfluss auf das Spiel, jedoch tauchen Warnings in der Log auf und das wollen wir nicht!

    Also ändern wir diese in 2048x2048 ab (immer die Größe auswählen die am nächsten den Zahlenreihen entspricht, die ich oben angegeben habe - 4,8,16...) , Speichern diese und Schließen die Textur wieder.

    Das gleiche Prozedere muss mit Folgenden Texturen der Foliages gemacht werden:

    • foliage_treesNadel1_diffuse.png
    • foliage_treesNadel2_diffuse.png

    Diese befinden sich im Ordner baeumeFlexensteiner/foliages!


    Warum genau diese Auflösung?


    Die Auflösung der Texturen ist sehr wichtig. Erlaubt sind hier nur Kantenlängen von 2^n (ausgesprochen 2 hoch n). Das sind alle Werte von 2^2 bis 2^11. In Zahlen ausgedrückt sind das folgende: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048. Dabei braucht eine Textur nicht unbedingt quadratisch sein, sondern kann auch rechteckig sein. Es ist also nicht nur z.B. 256*256 erlaubt, sondern auch 256*64, oder 256*1024, oder 2048*512, nur um einige Beispiele zu nennen. Hintergrund ist die Teilbarkeit durch 2. Außerdem haben einige AMD/ATI Grafikkarten Probleme mit Texturen, die nicht diese Auflösungen entsprechen.
    Des Weiteren sollte man auch darauf achten, dass Texturen nicht unnötig groß sind. Einfarbige Texturen brauchen nur 4*4 groß zu sein. Mag zwar selbstverständlich klingen, ist es scheinbar nicht. Ich habe nämlich schon öfters einfarbige PNG-Texturen mit einer Auflösung von 2048*2048 gesehen. Das sind dann 16MB überflüssiger VRAM-Verbrauch. Generell gilt: je mehr Details eine Textur hat, umso größer darf sie sein. Wenn die ganze Textur von einem Fahrzeug in einer Datei ist kann diese in den meisten Fällen ruhig 2048px Kantenlänge haben. Für Räder z.B. reichen 512 oder 1024. Man muss halt ein bisschen nach Gefühl gehen, welche Auflösung da notwendig ist

    (Quelle: bassaddict /forum.giants-software.com)


    Das war`s auch schon mit den Anpassungen die wir für den Landwirtschaftssimulator 2013 brauchen, damit dieser uns die Game Log nicht voll schreibt!

  • 3. Kopieren der Dateien

    Selbstverständlich muss die Map ihre Foliages nachher auch lesen können. Deshalb kopieren wird uns die Dateien in die entsprechenden Ordner.
    Im Hauptordner der Foliage Bäume sehen wir erst einmal einen Shader "ForestFoliageShader". Dieser kann gelöscht werden.

    Warum löschen wir diesen?

    Im neuem Landwirtschaftssimulator 2013 laufen alle Foliages über den "fruitGrowthFoliageShader".


    Die im Ordner "foliages" befindlichen Texturen

    • foliage_treesLaub1_diffuse
    • foliage_treesLaub2_diffuse
    • foliage_treesNadel1_diffuse
    • foliage_treesNadel2_diffuse

    kopieren wir in unseren "Foliage" Map Ordner. Dieser befindet sich zu 90% unter map/textures/foliages
    Zum verdeutlichen:


    Ist das geschehen, bleiben uns nur die 4 im Hauptordner, der Bäume, befindlichen Texturen.

    • treesLaub1_density
    • treesLaub2_density
    • treesNadel1_density
    • treesNadel2_density


    Diese verschieben wir in den map01 Ordner unserer Map. Dieser befindet sich unter map/map01
    Wieder ganz kurz ein Bild dazu:


    Für was ist eigentlich der map01 Ordner?


    Die "Weight" Dateien des Ordners:
    Stellen die Verteilung der Texturen auf der Map dar, sind Graustufen (SingleChannel) 8Bit PNG Dateien. Weiß stellt die Textur auf der Map dar, Schwarz nicht. Bei Grauen Flächen überlagern sich 2 Texturen.
    Durch das Verändern der Dateien lassen sich schnell Felder und Wege anlegen, indem man einfach weiße Flächen in den Dateien "malt" und abspeichert.
    Die "Densitys" alle verschlüsselt als "grle"
    Eine der wichtigsten Dateien ist die cultivator_density, Sie speichert die Zustände von gegrubbertem, gepflügten, gedrilltem und gesprühtem Terrain.
    Die restlichen Früchte werden durch Dateien wie Beispielsweise "stones_density" oder "schilf_density" aufgezeichnet.
    Die Map01 Dateien
    map01_dem.png: Wichtige Datei, hier sind in Grün- und Rottönen die Höhenwerte eurer Map gespeichert.
    map01_sat.png: Farbeinstellungen für entfernte Darstellung
    pda_map.png: Bild für die PDA Map

    (Quelle: wiki.landwirtschafts-simulator.de)


    Fertig sind wir, mit dem Kopieren der benötigten Dateien für die neuen Foliages.

    Einmal editiert, zuletzt von Claas_Evolution (22. Dezember 2013 um 16:45)

  • 3. Einträge in die .i3d

    Dies ist in diesem Tutorial wohl der langwierigste Teil - Und Hauptsächlich der Teil auf den es ankommt: Bitte genau und gewissenhaft arbeiten!


    Also ersten suchen wir uns die .i3d Datei der Map. Diese ist meist als "map01" oder auch als der Name der Map benannt.
    Finden werden wir diese zu 99% im Ordner "map"
    Diese Öffnen wir aber nicht per Doppelklick mit dem Giants Editor, sonder machen einen Rechtsklick hierbei und öffne sie mit "Notepad++" (siehe Punkt 1 Benötigte Software)
    Hier zwei Bilder dazu:

    File Einträge

    Ist die Map geöffnet, sehen wir gleich am Beginn der ganzen Einträge die "Files".
    Vor dem letzten Wort "</Files>" fügen wir noch folgendes ein:

    Code
    <File fileId="1000" filename="map01/treesLaub1_density.png" relativePath="true"/>
    <File fileId="1001" filename="map01/treesLaub2_density.png" relativePath="true"/>
    <File fileId="1002" filename="map01/treesNadel1_density.png" relativePath="true"/>
    <File fileId="1003" filename="map01/treesNadel2_density.png" relativePath="true"/>
    <File fileId="2000" filename="textures/foliage/foliage_treesLaub1_diffuse.png" relativePath="true"/>
    <File fileId="2001" filename="textures/foliage/foliage_treesLaub2_diffuse.png" relativePath="true"/>
    <File fileId="2002" filename="textures/foliage/foliage_treesNadel1_diffuse.png" relativePath="true"/>
    <File fileId="2003" filename="textures/foliage/foliage_treesNadel2_diffuse.png" relativePath="true"/>


    Sollten bei euren File Einträgen die fileId`s 1001-2003 schon vorkommen, bitte ich euch diese umzuschreiben - hierbei ist egal welche ihr nehmt, solange die Zahl noch "frei" ist, also noch nicht vorkommt!


    Damit Ihr seht wie die Einträge danach aussehen sollten, hier kurz ein Bild zur Veranschaulichung:


    Eine ID steht nachher für eine bestimmte Textur mit dem Pfad zu dieser Textur - darum diese Einträge!


    Material Einträge


    Haben wir dies erledigt, kommen wir etwas weiter unten zu den "Materials" Einträgen.
    Wir suchen (Shortcut: "Strg+F") also nach dem letztem Wort "Materials" und fügen davor folgendes ein:


    Die am Ende Stehenden "XX" Stellen der customShader ID müssen mit der File ID des (oben bereits Erwähnten) "fruitGrowthFoliageShader" ersetzt werden! Dazu gehen wir wieder in die Suche (Strg+F) und geben in der Suche "fruitGrowthFoliageShader" ein. Die am Anfang der Zeile stehende File ID des Shaders tragen wir dann anstatt des "XX" ein.

    Wichtig hierbei ist, dass ihr die selben ID`s vergebt! Das heißt, in den "Material" Einträgen MÜSSEN die selben ID`s (Zahlen am Anfang) vergeben werden wie in den "File" Einträgen"
    File fileId in den "Files" = Texture fileId in den "Materials"


    Auszusehen hat das ganze dann so:


    Material Einträge?
    Nachdem für die Dateipfade Id`s zugewiesen wurden, werden mit den File Id`s, Materials mit Material Id`s erstellt!
    Die Materials sind dazu da, um bestimmte Funktionen der Texturen auszuführen (z.B. die Wind-Funktion dass sich die Pflanzen im Wind bewegen; die Helligkeit; Durchsichtigkeit; Glanz; usw.)

    (Quelle: Manuel - Mappen lernen ohne Vorkenntnisse)

    Layer Einträge

    Haben wir dies erledigt, bleiben uns noch die "Layer" Einträge.
    Wir suchen uns also nach dem Wort " </Layers>" und fügen folgendes vor dem letzten mal " </Layers>" folgendes ein:


    Achtung wieder bei den ID`s ! Diese müssen wie bei dem "Material" Einträgen, wieder mit den bei "File" Einträgen vergebenen Field ID`s identisch sein!!

    Zur Kontrolle noch kurz ein Bild, wie das ganze auszusehen hat:


    Bitte nicht wundern: In meinem Screenshot hier, sind deutsche Layer Namen vergeben - im Prinzip macht dies keinen Unterschied zu euren Einträgen und schon gar nicht zur Funktion der Bäume!


    Das war`s! Ihr könnt eure Map nun Abspeichern und diese im Texteditor wieder schließen! Solltet ihr genau gearbeitet haben könnt ihr eure Map nun ganz normal wieder mit dem Giants Editor öffnen, und im "Foliage Paint Modus" die gerade eingefügten Foliages verwenden:

    Spoiler anzeigen

  • 5. Nachtrag

    Dieses Tutorial habe ich, Claas_Evolution, erstellt. Ich möchte nicht, dass es ohne meine Ausdrückliche Erlaubnis z.B. auf anderen Foren veröffentlicht wird.
    Es soll dem Allgemeinwohl dienen, und nicht das Schmücken fremder Federn unterstützen

    Einigen wird auch aufgefallen sein, dass ich so ein Tutorial bereits einmal geschrieben habe. Auf ausdrücklichen Wunsch meines Teams habe ich dieses überarbeitet und von Beginn an neu aufgebaut.
    Für diesen Tipp es übersichtlicher zu gestalten, danke ich meinem Team von Herzen, wieder einmal habt Ihr mir geholfen mich selbst zu verbessern!

    Auch geht ein großer Dank an Jaguar95 für die zahlreichen Tipps und für die perfekten Vorlagen die er mir mit seinen Tutorials geliefert hat.

    Und natürlich auch an den Big Boss Manuel für die Spielwiese hier ;)


    Euer Chris
    aka
    Claas_Evolution