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 |