bvle-voxels/shaders
Samuel Bouchet aab38bb9b9 Phase 5.1: Naive Surface Nets smooth rendering
Implement CPU-side Naive Surface Nets for smooth voxel surfaces (SmoothStone,
Snow) coexisting with blocky voxels (Grass, Dirt, Stone, Sand).

Key features:
- SmoothMesher with binary SDF, centroid vertex placement, per-axis boundary
  clamping to align with blocky grid at smooth↔blocky transitions
- Cross-chunk connectivity: PAD=2 SDF grid, vertex range [-1, CHUNK_SIZE),
  canonical edge ownership (no duplicate triangles, no z-fighting)
- Face normals oriented by edge axis+sign (robust with binary SDF, unlike
  SDF gradient dot or centroid sampling approaches)
- Y-axis winding fix: sharing cells have different spatial arrangement,
  requiring opposite winding from X and Z axes
- GPU mesher treats smooth neighbors as solid (no blocky faces toward smooth)
- Material blending: primary (smooth-only) + secondary (all counts) per vertex
- Dedicated shaders: voxelSmoothVS (vertex pulling t6) + voxelSmoothPS
  (triplanar + lerp blending between two materials)
- Separate render pass with LoadOp::LOAD after voxels+topings
- New materials: SmoothStone (mat 6), blocky Stone (mat 3) and Dirt patches
  added to world generation for boundary testing
2026-03-27 13:03:55 +01:00
..
voxelCommon.hlsli Add wind to grass toping 2026-03-26 18:58:19 +01:00
voxelCullCS.hlsl Phase 2.3: GPU compute culling with frustum + backface cull 2026-03-25 22:30:50 +01:00
voxelMeshCS.hlsl Phase 5.1: Naive Surface Nets smooth rendering 2026-03-27 13:03:55 +01:00
voxelPS.hlsl Phase 5.1: Naive Surface Nets smooth rendering 2026-03-27 13:03:55 +01:00
voxelSmoothPS.hlsl Phase 5.1: Naive Surface Nets smooth rendering 2026-03-27 13:03:55 +01:00
voxelSmoothVS.hlsl Phase 5.1: Naive Surface Nets smooth rendering 2026-03-27 13:03:55 +01:00
voxelTopingPS.hlsl Tweak grass blade color 2026-03-26 20:00:33 +01:00
voxelTopingVS.hlsl Add wind to grass toping 2026-03-26 18:58:19 +01:00
voxelVS.hlsl Phase 3: PS-based texture blending with winner-takes-all heightmap 2026-03-26 12:14:08 +01:00