feat(world): triplanar seabed shader with procedural normal maps and detail shading
Rock is normal-mapped triplanar in world space at two scales, sand carries an oriented ripple normal map on the xz plane, and a grain map drives detail occlusion, albedo mottling and roughness. The three maps are seamless, seeded, mipmapped textures built synchronously by SeabedDetailTextures, so no asset is needed and builds are deterministic. The mesh has no tangents: perturbed normals are computed in world space and written to NORMAL. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
f22a5e69aa
commit
17f58912c1
12 files changed
+208
-16
No files matched your search
@@ -251,10 +251,15 @@ de contacts existant les sépare du fond.
|
||||
- Brouillard, lumière directionnelle et particules de la scène de test
|
||||
actuelle sont conservés et réglés par site.
|
||||
|
||||
**Écart d'implémentation (graybox)** : le shader livré n'est pas triplanaire.
|
||||
Il mélange sable et roche par la pente à partir de 20° (sable sous 20°, roche
|
||||
au-dessus de 40°, fondu entre ; le matériau sonar bascule à 20°) et rend les
|
||||
rides par modulation d'albédo, sans normal map. À revoir en tranche 6.
|
||||
**État du 2026-10-06 (demande d'Olivier)** : le shader mélange sable et roche
|
||||
par la pente à partir de 20° (sable sous 20°, roche au-dessus de 40°, fondu
|
||||
entre ; le matériau sonar bascule à 20°). La roche est en normal map
|
||||
**triplanaire** monde (deux échelles, 7 m et 1,7 m) ; le sable porte une normal
|
||||
map de rides orientée par la houle sur le plan xz ; une carte de grain sert
|
||||
d'occlusion de détail et de marbrure d'albédo. Les trois cartes sont
|
||||
procédurales, sans asset, construites par `SeabedDetailTextures` (bruit seedé,
|
||||
sans couture, mipmaps) dans la couche monde. Le maillage n'a pas de tangentes :
|
||||
les normales perturbées sont calculées en espace monde dans le shader.
|
||||
|
||||
## 8. Architecture proposée
|
||||
|
||||
|
||||
Reference in new issue
Block a user