rVox Engine

January 2024 - March 2024

rvox


Overview

Roles Graphics programmer Engine programmer
Duration8 weeks
PlatformWindows
EngineCustom-built
Team sizeSolo

Tools & Technologies

Languages & APIsC++, OpenGL, OpenCL, GLSL
ToolsCLTracer
WorkflowGit/GitHub
LibrariesImGUI, 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

CTCAGI


A more in depth dive?