
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
