update
This commit is contained in:
105
assets.md
Normal file
105
assets.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Asset-Plan
|
||||
|
||||
Status: Konzept. Noch nicht umgesetzt.
|
||||
|
||||
## 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.
|
||||
Reference in New Issue
Block a user