v2.2.0: Textur-Bake-Button (tileable, fuer Triplanar in UE) + UE-Material-Anleitung
- Bake BaseColor/Normal/Roughness/AO als PNG - Nahtlos tileable via 4D-Torus-Projektion der UV (cos/sin u,v) - Cycles-Bake mit Zustands-Restore, temporaere Bake-Plane + Cleanup - docs/UE_Material_Triplanar.md: WorldAlignedTexture/Normal-Verdrahtung - _deselect_all gegen transiente None-Refs nach Objekt-Removal gehaertet - Live gegen Blender 5.1.2 getestet (4 Maps, Normal jetzt mit Struktur), Headless gruen Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Unreal-Material: Stylized Rock (Triplanar / World-Aligned)
|
||||
|
||||
Ziel: **ein** Material fuer **alle** Rocks. Dank Triplanar (world-aligned) wird die
|
||||
Textur nach Weltposition projiziert – unabhaengig von den UVs jedes einzelnen
|
||||
Steins. Du musst also nichts pro Rock texturieren.
|
||||
|
||||
Die vier Maps kommen aus dem Addon (Panel *Rock Gen → Textur-Bake*):
|
||||
|
||||
| Datei | Inhalt | UE sRGB | Compression |
|
||||
|------------------|-------------|---------|--------------------|
|
||||
| `*_BC.png` | BaseColor | **an** | Default (BC7/DXT1) |
|
||||
| `*_N.png` | Normal | aus | **Normalmap** |
|
||||
| `*_R.png` | Roughness | aus | Default/Masks |
|
||||
| `*_AO.png` | AO / Cavity | aus | Default/Masks |
|
||||
|
||||
> Die Normal Map ist OpenGL (+Y). In UE beim Import **„Flip Green Channel"**
|
||||
> aktivieren (oder gruen einmalig invertieren), sonst wirkt das Relief eingedellt.
|
||||
|
||||
---
|
||||
|
||||
## 1. Texturen importieren
|
||||
|
||||
1. Die vier PNGs in den Content Browser ziehen.
|
||||
2. Fuer `_N`: Compression = **Normalmap**, sRGB aus, **Flip Green Channel** an.
|
||||
3. Fuer `_R` und `_AO`: sRGB **aus** (lineare Daten), Compression „Masks" ist ok.
|
||||
4. `_BC`: sRGB **an** (Standard).
|
||||
|
||||
*(Optional, spart Samples: `_AO`, `_R` und ggf. Metallic in eine „ORM"-Textur
|
||||
packen – R=AO, G=Roughness, B=Metallic. Dann unten die einzelnen Sampler durch
|
||||
einen ORM-Sampler + Component-Mask ersetzen.)*
|
||||
|
||||
---
|
||||
|
||||
## 2. Material anlegen
|
||||
|
||||
Neues Material `M_Rock_Stylized`, *Two Sided* aus, *Shading Model* Default Lit.
|
||||
|
||||
### Parameter (fuer Instanzen)
|
||||
- **ScalarParameter** `WorldSize` (Default `256`) → Weltgroesse einer Kachel in
|
||||
cm. Kleiner = Textur wirkt groesser/detaillierter.
|
||||
- (optional) **ScalarParameter** `NormalIntensity` (Default `1.0`).
|
||||
|
||||
### BaseColor / Roughness / AO (World Aligned Texture)
|
||||
Fuer jede der drei Maps einen **`WorldAlignedTexture`**-Node:
|
||||
|
||||
```
|
||||
TextureObject(T_..._BC) ─┐
|
||||
WorldSize (Scalar) ──────► WorldAlignedTexture ─► XYZTexture ─► BaseColor
|
||||
```
|
||||
|
||||
- `WorldAlignedTexture` → Eingang **TextureObject** = die jeweilige Textur
|
||||
(als *TextureObject*-Node, nicht *TextureSample*).
|
||||
- Eingang **WorldSize** = `WorldSize`-Parameter.
|
||||
- Ausgang **XYZTexture** verbinden:
|
||||
- `T_..._BC` → **Base Color**
|
||||
- `T_..._R` → **Roughness**
|
||||
- `T_..._AO` → **Ambient Occlusion**
|
||||
|
||||
### Normal (World Aligned Normal)
|
||||
Normalen brauchen den speziellen Node **`WorldAlignedNormal`**:
|
||||
|
||||
```
|
||||
TextureObject(T_..._N) ─► WorldAlignedNormal ─► XYZNormal ─► (FlattenNormal / Normal)
|
||||
WorldSize ─────────────►
|
||||
```
|
||||
|
||||
- Ausgang **XYZTexture (Normal)** → **Normal**.
|
||||
- Intensitaet optional ueber `FlattenNormal` (Flatness = `1 - NormalIntensity`)
|
||||
oder einen Multiply auf den XY-Anteil.
|
||||
|
||||
> `WorldAlignedTexture`/`WorldAlignedNormal` haben einen Haken
|
||||
> **„Use World Space Normal to Blend"** bzw. eine `WorldSpaceNormal`-Eingabe –
|
||||
> Default passt fuer Rocks. Der Node blendet automatisch die drei Projektions-
|
||||
> achsen (Triplanar).
|
||||
|
||||
---
|
||||
|
||||
## 3. Feinschliff (optional)
|
||||
|
||||
- **Farbvariation pro Instanz:** BaseColor mit `PerInstanceRandom` * einer leichten
|
||||
Tint-Range multiplizieren → jeder Rock leicht anders, gleiche Textur.
|
||||
- **Nahtlos in der Hoehe:** Da die Bake-Textur bereits nahtlos tilet, entstehen bei
|
||||
Triplanar keine sichtbaren Kanten.
|
||||
- **LODs:** Beim FBX-Import „Import LODs" an – das Material gilt automatisch fuer alle
|
||||
LOD-Stufen.
|
||||
- **Lightmaps:** Der UV1-Kanal (Lightmap) aus dem Addon wird von UE fuer statische
|
||||
Beleuchtung genutzt; das Triplanar-Material nutzt ihn nicht, das ist korrekt so.
|
||||
|
||||
---
|
||||
|
||||
## Kurzfassung der Verdrahtung
|
||||
|
||||
```
|
||||
WorldSize(Scalar)
|
||||
├─► WorldAlignedTexture(BC) ─► XYZTexture ─► BaseColor
|
||||
├─► WorldAlignedTexture(R) ─► XYZTexture ─► Roughness
|
||||
├─► WorldAlignedTexture(AO) ─► XYZTexture ─► Ambient Occlusion
|
||||
└─► WorldAlignedNormal(N) ─► XYZNormal ─► Normal
|
||||
```
|
||||
|
||||
Ein Material, liegt auf jedem Rock. Fertig.
|
||||
Reference in New Issue
Block a user