Skip to content

Quidney/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

ConsoleRenderer is a custom 3D graphics engine I developed in C# that renders scenes directly into a console. I engineered the project from the ground up as a software rasterizer.
The engine manually calculates 3D geometry and projects it into a grid of colored block characters using ANSI escape codes, turning the command prompt into a display screen with RGB32 color capabilities.
Most notably, I implemented a Physically Based Rendering (PBR) lighting model, the materials have metallic reflections, surface roughness, and emissive light sources entirely through console text.

ezgif-51ec3ca5f5df6bdb

Garden Of Life

Garden of life is a 3D puzzle game we made with a group of 6 in Stichting Gamelab Oost for an internship in MBO4.
I worked with a group of CMGT Saxion Students to develop a game that will aid lymphoma cancer research.

We used Unity for the game, and it is available to play on the web.
You can try it here.

image3 image2 20250520_161819

Minecraft Clone is my custom built voxel sandbox engine, written from scratch in C# and OpenTK.
Chunks are generated async in the background and uploaded on the main thread.
It uses Multi Draw Indirect so that I can batch what to draw and then send to the GPU at once.
I started this project thinkiing I will use the newest OpenGL features and make something optimized. It runs 200 FPS on my laptop with an integrated GPU, so for now, great success.

I am proud of the way I managed to pack all my data into 4 bytes.

 [StructLayout(LayoutKind.Sequential)]
 public readonly struct Vertex
 {
     /// <summary>
     /// 
     ///          -- 32 BITS --
     ///    x    y    z  nor  tex  pad
     /// [006][006][006][003][011][000] STRIDE
     /// [026][020][014][011][000][000] OFFSET
     /// 
     /// </summary>
     public readonly uint Data;

     private Vertex(uint data) => Data = data;

     public static Vertex Create(int x, int y, int z, NormalIndex normal, int textureIndex)
     {
         Debug.Assert(((x | y | z) & ~63) == 0, "X, Y, or Z of Vertex exceeded 6 bits [0,64)!");
         Debug.Assert((textureIndex & ~2047) == 0, "Maximum Texture Index of Vertex exceeded 11 bits [0, 2048)!");

         return new Vertex(
             (((uint)x & 0x3F) << 26) |
             (((uint)y & 0x3F) << 20) |
             (((uint)z & 0x3F) << 14) |
             (((uint)normal & 0x7) << 11) |
             ((uint)textureIndex & 0x7FF)
         );
     }
 }
ezgif-2604977eabe6a15c

2D RPG Game I made when I didn't have internet at home. I had to reinvent the Math function Atan2 without any external source.
All textures (except for the player) are homemade. For the player, I opened up a game and copied the pixel art of the character.
This was my first 'big' project

ezgif-2f9df2c53e9de2f2

About

This repo is for highlighting my projects.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors