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!