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>
No files matched your search
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 268 KiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 296 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 377 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 239 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 131 KiB |
@@ -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
|
||||
|
||||
|
||||
@@ -182,9 +182,10 @@ Plan de masse (nord en haut) :
|
||||
`terrain_showcase_canyon.png` (gradins et fond ridé), `_crevasse.png`,
|
||||
`_boulders.png`, `_spurs.png`, `_escarpment.png` (face de la falaise vue du
|
||||
pied) ; pour le Banc du Vigilant recuit, `zone1_vigilant_tombant.png`
|
||||
(gradins du tombant) et `zone1_vigilant_plateau.png` (plateau ondulé). Le
|
||||
rendu (brouillard, rides en albédo, absence d'ombrage de détail) n'est pas
|
||||
l'objet de ce brief : à ce stade, le relief se lit surtout au sonar.
|
||||
(gradins du tombant) et `zone1_vigilant_plateau.png` (plateau ondulé). Les
|
||||
captures sont faites avec le shader à normal maps et ombrage de détail
|
||||
(brief du Banc du Vigilant, §7) ; brouillard et lumière restent ceux de la
|
||||
scène de site.
|
||||
|
||||
## 8. Décisions laissées à Olivier
|
||||
|
||||
|
||||