YinYang Engine

(April, 2025)
A 3D rendering engine made from scratch in C# using OpenTK, made as part of my Computer Graphics course during my Bachelor studies.

Showcase

About YinYang

'YinYang Engine' was made in about a month, iterating on a lighting and model loading engine (Called Light & Shadow). YinYang extended the model loading, scene system, and graphic features to make even more realistic scenes. Also supporting basic run-time logic, such as linear animation on objects or cameras, as well as a basic spherical collision system. This was made in partnership with my classmate Mpho, where I was responsible for lighting shaders, normal mapping, reflections, scene editor tools and colliders.

Graphical features include:

Feature Description
Blinn-Phong shading Allows for realistic and cheap lighting and highlights on models.
Normal mapping Gives models extra detail and interacts beautifully with lights.
Baked and Dynamic Cube map reflections Cube map reflections allows for highly accurate and performant reflections. Has a update frequency, as well as static bake for performance.
Basic PBR for reflective surfaces Able to control the reflection blurring with a roughness setting for materials.
Dynamic or static lighting Scenes can be lit by light sources dynamically, or a light can be static to save on resources
Spot lights, point lights, directional lights Many types of lights, all to make scenes more immersive
Basic particle rendering Adding extra life and motion to scenes using compute shaders.
Bloom post processing effect Makes scenes look less flat, and gives glowing objects more life
Many many thanks to my project partner Mpho for the great help and dedication during this project!