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.
'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.
Showcase
About YinYang
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
Links