
Overview
Roles |
Graphics programmer
Engine programmer
|
Duration | 8 weeks |
Platform | Windows |
Engine | Custom-built |
Team size | Solo |
Tools & Technologies
Languages & APIs | C++, OpenGL, OpenCL, GLSL |
Tools | CLTracer |
Workflow | Git/GitHub |
Libraries | ImGUI, MagicaVoxel loader |
Project Overview
rVox is my first proper dive into the world of ray marching and voxels. Over 8 weeks I learned how to properly raymarch voxels inside a rasterized box and render them using only compute kernels. The most interesting part of this project is that I am not using any normals in the light calculations, admittedly with some artifacts and leaks, the results are looking interesting and quite fast.
Goals and motivations
- Getting a better understanding of ray marching and voxel rendering
- Learning to handle compute kernels. I used OpenCL as a personal choice
- Understanding how to get per voxel lighting for:
- Cool blocky results
- Noise free
- Faster calculations
Biggest obstacles
- Using and debugging OpenCL
- Grasping the concept of ray marching
- Achieving per voxel lighting look
Highlights
- Fixed 64x64x64 scene with MagicaVoxel support
- Lighting and rendering using DDA
- Per voxel look, with no normals usage

A more in depth dive?