Description
I made a custom C++ Game Engine using SDL3 GPU. To showcase some of its features, I recreated a 3D version of Qbert!
Features
- Blinn-Phong Shading
- Normal Maps
- Collision Detection (AABB vs AABB and Line Segment vs AABB)
- Skinned Skeletal Animation System
- Global Pos Matrices are calculated asynchronously.
- Skinned weight blending happens in a vertex shader.
- Spherical LERP between each keyframe.
- Thread-Safe Scoped Profiler
- Uses macros to allow the profiling of any function.
- Outputs into a JSON file that can be imported into trace viewers like Perfetto UI.
- Fast Bloom
- This is done with a set of render passes that applies the blur at 1/4 resolution, before upscaling with bilinear filtering. Since the input is already blurred, there aren't any noticable artifacts.
- The gaussian blur is achieved with a vertical (1-by-N) pass followed by a horizontal (1-by-N) pass, rather than a single 2D gaussian pass, reducing the blur operation from N² per pixel to 2N per pixel.
- SIMD Math Library
- Structures and operations for Vectors, Matrices, and Quaternions.
- SIMD optimization for Vector3 and Vector4 operations.
- Tween Engine
Gallery
