Files
D4rkst3randClaude Opus 4.8 a8ca7a6453 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>
2026-07-29 07:11:35 +02:00

3.9 KiB
Raw Permalink Blame History

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_..._BCBase Color
    • T_..._RRoughness
    • T_..._AOAmbient 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.