A voxel raycaster with baked cubic Physically Based Shading (PBS) and stylized outlines was created from scratch in C# with OpenTK.
The renderer aims to capture the look of games like Jet Set Radio, Wind Waker, and PS1/PS2-era classics.
Key goals include a stylized look, voxel-based 3D rendering, prebaked lighting to simulate advanced shading, post-processing outlines for style, portability, optimization, and compactness.
The voxel texture is generated using procedural shapes like islands and crystals and employs multiple Global Illumination (GI) passes.
Raycasting occurs inside a 3D texture with voxel color and alpha data using a fragment shader.
An outline shader adds thick outlines around color or brightness changes, creating a cel-shaded, 'inked' look.
Technologies used include C#, .NET 6, OpenTK (OpenGL bindings for C#), GLSL shaders (330 core), with no engine or Unity, just raw code.
The project aims to be small, fast, customizable, stylized with an early-2000s console look, and fun to code and draw with.
Future plans involve optimizing GPU performance, data compaction, and rendering tricks.
This kind of project is ideal for those interested in rendering, graphics, or building stylized engines from scratch, requiring math, code, and creativity.