# 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 |