Skip to content

Foundational voxel engine systems: Generic, Terrain, and Smoothed voxel support #39

@dyfios

Description

@dyfios

Is your feature request related to a problem? Please describe.

To develop a robust voxel engine that can support discrete blocky materials and natural, smooth terrain, foundational systems must be established. The engine should be extensible, high performance, and capable of both grid-based and density-based voxel representations.

Describe the solution you'd like

This feature should establish core systems for a voxel engine supporting:

  • Generic voxels (blocky, discrete materials)
  • Terrain voxels (density fields for natural landscapes)
  • Smoothed voxels (continuous surfaces via Marching Cubes or Dual Contouring)

The initial implementation should provide:

  • Data structures for different voxel types
  • Chunk management for spatial partitioning
  • Meshing pipeline hooks to support future LOD, streaming, and editing features

Tasks

  • Define Voxel struct with density, material ID, and flags
  • Implement Chunk class with chunk coordinates, voxel storage, and mesh references
  • Add indexing helpers for 3D voxel arrays
  • Create placeholder meshing jobs:
    • Greedy meshing for blocky voxels
    • Marching Cubes prototype for smooth terrain
  • Integrate Unity Jobs + Burst for meshing execution
  • Generate meshes per chunk and assign to MeshFilter/MeshCollider
  • Document architecture decisions (chunk size, density representation, meshing choice)

Requirements & Notes

  • Meshing must run off the main thread via Jobs + Burst.
  • Code should be structured for extensibility (future LOD, streaming, editing).
  • Keep chunk size configurable (default 32³).
  • Use Half (fp16) for density to balance precision and memory.
  • Mesh generation can be minimal (cubes + basic Marching Cubes), but must demonstrate both blocky and smooth paths.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions