-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal
Create a simple proof-of-concept “woxel” (wedge voxel) world and remove the current toy RenderScene. Represent the world in cylindrical coordinates (theta, r, z) and transform to Cartesian in the vertex shader (wertex shader woxel transform) for rendering.
Scope
- Define a minimal woxel coordinate system:
- Discrete theta sectors (wrap-around), small radial band (1–2 layers), and vertical slices.
- Basic chunking structure (theta × z × r) with a tiny active window around the camera/player.
- Generate a small static woxel band (e.g., a repeating pattern of ledges/blocks) sufficient to see curvature and movement.
- Mesh path (simple):
- Build CPU-side vertex/index data in woxel space; keep attributes compatible with existing pipeline.
- Vertex shader converts (theta, r, z) → (x, y, z); pass radius, sector angle, and origin via uniforms/push constants.
- Engine integration:
- Remove RenderScene and introduce a WoxelScene that owns chunk(s) and drives upload to GraphicsBuffers.
- Keep existing swapchain/graphics queue/semaphore model intact.
- Basic culling: ignore chunks on the far side of the cylinder (simple angle test); full frustum cull optional.
Non-goals (for this ticket)
- Complex gameplay, physics, LOD, streaming, or compute-based meshing.
- Texture atlas work; a flat color/material per woxel face is fine for the PoC.
Acceptance Criteria
- App runs and renders a narrow cylindrical band built from woxels with visible curvature.
- Vertex shader performs the woxel-to-Cartesian transform; parameters are configurable (radius, sector count).
- RenderScene removed; WoxelScene integrated with the current engine bootstrap.
- No Vulkan validation errors; frame time stable on MSYS2 UCRT debug build.
Notes
- “Woxel” = wedge voxel aligned to cylinder; future work can expand radial layers and chunk streaming.
- Start small (e.g., ~64 theta sectors × modest vertical extent) to validate shape and flow.
Metadata
Metadata
Assignees
Labels
No labels