# Asset-Plan Status: umgesetzt in `scripts/stoffe.gd` (Materialregeln) und `scripts/formen.gd` (Bauregeln). Unten der Plan, darunter, was davon wie gebaut ist. ## Stand Der Look ist **Low-Poly wie Knete** (Vorbild: pastelliges Haus-Diorama): flache Farben, runde Kanten, weiche Schatten, heller Himmel. Der frühere Plan einer dunklen Taverne mit Maserung und Relief ist verworfen - er wirkte aus Kamerahöhe schäbig. - `stoffe.gd`: eine Farbe je Stoff, matt, kaum Glanz. Keine Texturen. - `formen.gd`: Profile (Radius, Höhe) um die Achse gedreht, Fasen als Viertelkreise. Scheibe, runder Zylinder, Ring, Becher, Laterne. - Tisch: Holzscheibe mit Filzeinlage auf einem Mittelfuss, auf einer runden Sockelplatte wie ein Diorama. Zonen: Filzscheiben mit Holzring. - Licht: eine Sonne mit weichen Schatten, viel Umgebungslicht, kein Nebel, kein Glow. Belichtung 0,9, sonst brennt die Platte aus. - Gelernt: Der Look lebt von den Fasen und dem Licht, nicht vom Material. Ohne Fasen sieht flache Farbe nach Prototyp aus. Und aus Kamerahöhe muss am Rand Himmel bleiben, sonst ist alles Platte. ## Grundidee Basis-Mesh ohne Textur. Aussehen kommt aus Shader plus Regeln. Ein Mesh, ein Material, viele Varianten uber Instanz-Uniforms. Vorteile: - Weniger Draw Calls, weniger VRAM. - Varianten kosten nichts. Nur ein anderer Uniform-Wert. - Parameter jederzeit anpassbar. Keine Textur muss neu gebaut werden. Grenze: - Nachbarschafts-Regeln kosten Laufzeit. Nur eine Ebene, Ergebnis cachen. ## Stil Stilisiert, nicht realistisch. Taverne bei Nacht. - Chiaroscuro: warmes Lampenlicht gegen kalten Schatten. Sonst nichts. - Enge Palette. Holz, Messing, Wachs, Leder, Filz. - Kanten leicht angeschraegt. Faengt Licht, wirkt handgemacht. - Abnutzung ueberall. Kratzer, Wachsflecken, Salzraender. Nichts ist neu. - Kein Cartoon-Outline. Bricht mit dem Licht. Die Szene in `scripts/table.gd` setzt das schon an: dunkler Hintergrund, Nebel, warme Lampe, gruener Filz. ## Vier Basis-Shader Mehr braucht es nicht. 1. **Holz** - Maserung, Astloecher, abgegriffene Kanten. Fuer Tisch, Beine, Fass, Becher. 2. **Messing** - Anlauf, Politur an Griffflaechen. Fuer Laterne, Beschlaege, Muenzen. 3. **Filz / Stoff** - Fuzz, Flecken, abgewetzte Stellen. Fuer Tischtuch, Beutel, Kleidung. 4. **Wachs / Knochen** - subsurface-artig, warm durchscheinend. Fuer Kerzen, Wuerfel. Jeder Shader hat dieselben Kern-Uniforms: ``` base_color : Color wear : float 0..1 Abnutzung tint : Color Faerbung obendrauf pattern_mask : float 0..1 Musterstaerke emission : float 0..1 ``` ## Muster Als Masken-Textur, nicht als fertige Textur. RGBA = vier Muster in einer Datei. Der Shader waehlt den Kanal. Beispiel: R = Streifen, G = Wappen, B = Kratzer, A = Salzkruste. ## Regeln als Daten Flache Liste. Keine Vererbung, keine Klassen. Jedes Objekt bekommt Tags. Regeln mappen Tags auf Uniform-Werte. ```gdscript # rules.tres oder JSON { "holz": { "base_color": "#8B5A2B", "grain": 0.8 }, "alt": { "wear": 0.7, "roughness": 0.9 }, "salzwasser": { "wear": "+0.2", "tint": "#5A7A6B" } } ``` Nachbarschaft genauso flach: ```gdscript { "wenn_nahe": "lampe", "dann": { "emission_boost": 0.4, "radius": 2.0 } } ``` ### Drei Regeln fuer die Regeln - Regeln addieren nur. Kein Ueberschreiben, keine Reihenfolge-Abhaengigkeit. - Hoechstens eine Nachbarschafts-Ebene. Keine Kettenreaktion. - Jeder Uniform-Wert hat einen Default. Fehlende Regel heisst nie Absturz. ## Meshes Aktuell liegt nur `art/pirate_assets.blend1` da. Das ist ein Blender-Backup. Die frueheren `.glb` (Becher, Fass, Laterne, Matte) sind nicht mehr im Repo. Nur Cache-Reste in `.godot/`. Vor dem Start: Meshes neu exportieren. Ohne Material, ohne Textur. UVs muessen sauber sein. Der Shader braucht sie fuer Maserung und Muster. ## Reihenfolge beim Umsetzen 1. Meshes als `.glb` exportieren, ohne Material. 2. Holz-Shader bauen. An Tisch und Becher testen. 3. Uniforms per Hand setzen. Schauen, ob der Look traegt. 4. Erst dann die Regel-Datei bauen. 5. Nachbarschaft ganz am Ende. Nur wenn es dann noch fehlt. Schritt 3 ist der Entscheidungspunkt. Sieht es nach Plastik aus, lieber zurueck zu handgemachten Texturen.