bvle-voxels/docs/plan.md

3.4 KiB

BVLE Voxels - Plan de travail

Fonctionnalites restantes et idees d'evolution, organisees par sujet. Chaque sujet a un document d'implementation detaille dans docs/.

L'etat actuel du prototype est documente dans CLAUDE.md a la racine.


Sujets restants de la specification originale

1. GPU Compute Surface Nets (Phase 5.3)

Le mesher smooth fonctionne en GPU compute (2-pass: centroid CS + mesh CS). Auto-bascule GPU/CPU. Shaders: voxelSmoothCentroidCS.hlsl, voxelSmoothCS.hlsl.

Statut : Termine.

2. LOD multi-resolution (Phase 5.4)

LOD 1 implementé : chunks 32³ couvrant 64³ world space, lodScale dans GPUChunkInfo, VS multiplie localPos par lodScale. LOD 0 radius=6, LOD 1 ring radius=12 (480 chunks). Pas de smooth/topings sur LOD 1.

Reste a faire : LOD 2+, skirts pour cacher les coutures, fog aux bords, LOD dynamique.

Statut : En cours. Voir docs/plan-lod-skirts.md.

3. Fallback Shadow Maps + SSAO (Phase 6.4)

Le ray tracing est obligatoire pour les ombres/AO. Les GPU sans RT (ou les configs faibles) n'ont aucun eclairage directionnel. Le fallback devrait utiliser le pipeline existant de Wicked Engine.

Statut : Non commence. Priorite basse (tous les GPU cibles supportent RT).

4. Connected Blocks / Tuyaux (idee spec)

Blocs contenant des modeles 3D customs avec jointure dynamique selon les voisins identiques. Exemple : tuyaux qui se connectent automatiquement. Extension du systeme de topings avec bitmask 6-faces au lieu de 4-adjacence.

Statut : Concept uniquement.


Nouveaux sujets (inspires du talk Roblox SIGGRAPH 2020)

5. Deformation de vertices par materiau

Roblox definit des deformations procedurales par materiau sur les vertices Surface Nets : shift (offset random), cubify (lerp vers centre cube), quantize (arrondi a 1/K), barrel (cubify en Y), soft/hard edges. Donne du caractere visuel a chaque materiau sans cout GPU.

Statut : Non commence. Voir docs/plan-vertex-deformation.md.

6. LOD avec skirts

Roblox utilise un mip pyramid par chunk + octree LOD. Les coutures entre niveaux LOD sont resolues par des "skirts" (triangles de debordement + depth bias) au lieu du stitching Transvoxel, qui est complexe. Solution elegante et simple.

Statut : Non commence. Voir docs/plan-lod-skirts.md.

7. Textures stylisees reelles

Passer des couleurs procedurales actuelles a de vraies textures (albedo + heightmap + normal) dans un texture array. Triplanar mapping ameliore avec detiling (rotation/shift par vertex a la Roblox). Height-based blending deja en place cote shader.

Statut : Infrastructure presente (texture array 5 layers, triplanar, height blend), mais textures generees proceduralement. Voir docs/plan-stylized-textures.md.

8. Texture quilting (Roblox)

Alternative au triplanar : 1 plan de projection parmi 18 par vertex, encode dans le vertex data. Reduit les fetches de 9-27 a 3. Technique a integrer dans le sujet textures si le triplanar devient un bottleneck.

Statut : Non commence. Integre dans docs/plan-stylized-textures.md.


Priorites suggerees

Priorite Sujet Impact Effort
1 Textures stylisees reelles Visuel majeur Moyen
2 Deformation vertices/materiau Visuel fort, cout nul Faible
3 LOD avec skirts Scalabilite Moyen-eleve
4 GPU Surface Nets Performance smooth Moyen
5 Fallback SM+SSAO Compatibilite Faible
6 Connected blocks Gameplay Eleve