====== Workflow Objekt in Blender texturieren und in Godot importieren ====== Vorbereitende Schritte unter **Blender 2.79**: * installieren des Godot Collada Exporter * aktivieren des Add-on: Godot Export Manager * RenderEngine = Cycles Render * Das 3d-Objekt importieren oder erstellen. * 3d-View => Menü(Object) => Menüpunkt(Apply) => Menüpunkt(Rotation&Scale) aufrufen! Neben dem 3D-Objekt benötigen wir eine sogenannte UV-Map. Hierbei handelt es sich quasi um eine Abwicklung des 3D-Körpers zum Zweck der Positionierung der Textur. um eine möglichst verzerrungsfreie Abwicklung des Objektes zu ermöglichen, sollten wir die Schnittkanten selber festlegen: Im Edit-Mode den Button Edge-Select klicken und mit gedrückt gehaltener [Shift]-Taste die Schnittkanten selektieren. Auf dem linken Panel => Reiter(Shading/UVs) den Button (Mark Seam) drücken mit 2 * [a] den gesamten Körper selektieren und über [u] aus dem UV Mapping Menü den Menüpunkt (Unwrap) oder Menüpunkt (Smart UV Project) auswählen. Beim letzteren das Häkchen bei Stretch to UV … wegnehmen. Die erzeugte UV-Map können wir im\\ Editor (UV/Image) => Menü (UVs) => Menüpunkt(Export UV Layout) = als PNG Grafik speichern und die Flächen in einem Zeichenprogramm wie Gimp texturieren. Im Editor(Properties) => Reiter (Material) => Panel(Surface) => Diffuse Color = Farbe weiß anwählen {{ wf_textur.png?300|}} * Button (Use Nodes) drücken * Surface: (Principled BSDF) * Base Color: rechts neben dem Farbfeld den Button mit dem Punkt drücken und * aus dem Menü (Image Texture) anwählen. * Über den Button (Open) laden wir nun die Editierte UV-Map als Textur zurück. Wenn wir jetzt im Editor (3d-View) => AuswahlButton(Viewport Shading) = Texture oder Material auswählen, können wir das fertige Ergebnis sehen. Wechseln in den Objekt Mode und selektieren das Objekt Jetzt Exportieren wir das Objekt Editor(Info) => Menü(File) => Menüpunkt (Export) => Menüpunkt(Better Collada) Im Panel(Export DAE) Mesh aktivieren Haken bei Selected Objekts Dateinamen angeben und mit dem Button (Export DAE) speichern. **In Godot:** 3D-Editor\\ Szene mit einem Root-Node vom Typ Spatial versehen und dieses Node selektieren. Im Dateisystem eine Verzeichnisstruktur für 3D-Objekt und Texturen erstellen. In die entsprechenden Verzeichnisse die jeweiligen Dateien ziehen. Nun ziehen wir aus dem Dateisystem das Objekt in die 3D-Ansicht. Das Objekt wird jetzt noch ohne Textur angezeigt. Bei dem Dateisystem ist neben dem Model.dae auffällig, dass eine weitere Datei Material.material erzeugt wurde. Durch einen Doppelklick auf die Datei Material.material öffnet sich im Inspektor die Ansicht der entsprechenden Parameter. Unter SpatialMaterial => Albedo => Texture => Laden, binden wir die entsprechende Textur ein. In der 3D-Ansicht ist nun das Objekt texturiert. Es könnte sein das es sehr dunkel ist, wir benötigen mehr Licht. Einfachste Lösung: die Szene mit einem DirectionalLight Node erweitern. Neben einer einfachen Textur können auch Textur-Effekte eingebunden werden. Diese Texturen werden jedoch mit speziellen Programmen erzeugt. Hier einmal die gebräuchlichsten: ===== Normal Map ===== gibt der Textur Tiefen-/Schatteninformationen. Doppelklick im Dateisystem auf die Datei Material.material Inspektor => Normal Map => Enabled = Hacken an\\ Texture = Entsprechende Datei laden\\ Scale = Stärke des Effektes regulieren ===== Roughness ===== Rauheit Inspektor => Roughness\\ Texture = Entsprechende Datei laden\\ Roughness = Stärke des Effektes regulieren\\ Texture Channel = Farbkanal ===== Ambient Occlusion ===== Umgebungsverdeckung ist eine weitere Methode Schatten in eine mit einzuberechnen. Hierbei wird eine zweite UV-Map benötigt, bei der keinerlei Überlagerung vorliegt. Die Flächen sollten zudem einen gewissen Abstand zueinander haben. **In Blender** Editor(Properties) => Reiter (Objektdaten) => Panel (UV Maps) => Button[+] eine weitere UV-Map anlegen.\\ Editor(3d View) => Editmode => gesamtes Objekt selektieren 2 * [a]\\ [u] Taste => Menü(UV Mapping) => Menüpunkt (Lightmap Pack)\\ Den Wert Margin auf 1.0 Button(OK) ---- Editor(Properties) => Reiter (Render) => Panel (Bake) => Listbox(Bake Type) = Ambient Occlusion\\ Button (Bake)\\ **In Godot**\\ Material.material im Dateisystem selektieren\\ Inspektor => Ambient Occlusion => Enabled = an\\ On Uv 2 => an\\ Texture = entsprechende Map laden\\