Back to Portfolio

Null Engine (Vulkan 1.4 & Slang)

Modern C++20 GPU-driven 3D model viewer and rendering architecture featuring Vulkan 1.4, BDA vertex pulling, and Multi-Draw Indirect.

2026 - Present Personal Architecture C++20 Vulkan 1.4 Slang BDA Multi-Draw Indirect Reverse-Z glTF 2.0

Overview

Null Engine is a high-performance, cross-platform 3D model viewer and rendering engine built from scratch using C++20 and modern Vulkan 1.4.

Rather than relying on legacy graphics abstractions or third-party game frameworks, Null Engine is designed to explore modern GPU-driven rendering techniques, zero-overhead hardware abstractions, and explicit synchronization models utilized in contemporary AAA production pipelines.

Note

Null Engine is actively developed with a modern Vulkan 1.4 Dynamic Rendering foundation, programmable vertex pulling via 64-bit Buffer Device Addresses (BDA), and Multi-Draw Indirect (MDI) batching. Comprehensive unit testing and strict memory management ensure zero validation layer warnings.


Core Technical Architecture

1. Modern Vulkan 1.4 RHI & Dynamic Rendering

Legacy Vulkan architectures often carry significant boilerplate around VkRenderPass and VkFramebuffer compatibility matching. Null Engine bypasses legacy render passes completely:


2. Programmable Vertex Pulling via Buffer Device Address (BDA)

Traditional graphics pipelines bind vertex buffers to fixed pipeline state objects (PSO) via vkCmdBindVertexBuffers and input attribute layouts. Null Engine adopts Programmable Vertex Pulling:

struct Vertex {
    float3 pos;
    float3 normal;
    float2 uv;
    float4 color;
};

struct DrawInfo {
    Vertex* vertices;
    uint instanceBaseOffset;
    uint padding;
};

3. Multi-Draw Indirect (MDI) & Geometry Pool Management

To eliminate CPU draw submission overhead:


4. Modern Shader Pipeline with Slang

Null Engine uses Slang for its shading pipeline:


5. Unreal Coordinate Conventions & Reverse-Z Depth

Engine geometry and math adhere strictly to Unreal Engine standards:


6. Custom C++20 SIMD Linear Algebra (Zero-GLM Dependency)

To achieve zero third-party math overhead and total layout predictability:


7. Engine Telemetry & Dear ImGui Integration


8. Verification & Test Engineering

The engine features a custom automated unit test framework running in-process via --run-tests:


Legacy Foundations & Engine History (2017 – 2022)

Null Engine builds upon years of independent engine architecture and low-level graphics experiments:

FBX SDK Integration & Material Import

Developed a robust asset importer starting from raw vertex data and progressing to full material and texture importing via the Autodesk FBX SDK.

Stencil Testing & Scene Hierarchies

Refactored engine core to support shader-agnostic pipelines, custom stencil-based object outlining, and complex transform hierarchies.

Instanced Rendering (100,000 Asteroids)

Using OpenGL hardware instancing, rendered 100,000 unique asteroid meshes orbiting a planet with zero CPU bottleneck, demonstrating draw call batching principles.

CubeMap Skybox, Reflection & Refraction

Implemented environmental CubeMap skyboxes and developed real-time reflection and refraction shaders simulating dynamic glass and mirror materials.

Back to Portfolio