I built a 3D rendering engine from scratch in Go to explore graphics internals, spatial partitioning, and raw buffer manipulation without relying on high-level abstractions.
The architecture operates like a compiler, strictly decoupling geometry ingestion from the rendering backend via an Intermediate Representation (IR). It deliberately discards legacy spatial structures (e.g., BSP) in favor of pure mesh extraction, resolving visibility dynamically.
Core technical details:
Portal Rendering Engine: Dynamic visibility resolution and spatial culling utilizing a custom ring queue and visibility caching.
Physics & Collision: Custom AABB tree implementation for high-performance spatial queries.
Dual Backends: A raw software rasterizer for direct primitive and vertex buffer manipulation, alongside a hardware-accelerated OpenGL pipeline featuring geometry batching and custom SSAO shaders.
Frontends: Includes a WAD parser, a custom textual DSL for planar topology prototyping, and a procedural dungeon generator with dynamic portal resolution on shared grid edges.
It is designed as a strict system programming study applied to computer graphics.
markel1974•1h ago
The architecture operates like a compiler, strictly decoupling geometry ingestion from the rendering backend via an Intermediate Representation (IR). It deliberately discards legacy spatial structures (e.g., BSP) in favor of pure mesh extraction, resolving visibility dynamically.
Core technical details:
Portal Rendering Engine: Dynamic visibility resolution and spatial culling utilizing a custom ring queue and visibility caching.
Physics & Collision: Custom AABB tree implementation for high-performance spatial queries.
Dual Backends: A raw software rasterizer for direct primitive and vertex buffer manipulation, alongside a hardware-accelerated OpenGL pipeline featuring geometry batching and custom SSAO shaders.
Frontends: Includes a WAD parser, a custom textual DSL for planar topology prototyping, and a procedural dungeon generator with dynamic portal resolution on shared grid edges.
It is designed as a strict system programming study applied to computer graphics.