This repository is used to try out stuff using OpenGL.
You can switch between projects using build configurations. Each project use a specific build configuration specified in the project description below. They are by default built with optimizations.
Global controls:
ESC
at any time to close the window.W/Z
: Move forward.S
: Move backward.Left Click Drag
: Orbit around origin.
Some more controls may apply to specific games.
- Project entrypoint here.
- Build Configuration:
BatchRendering
Meant to try out batch rendering with impostors in distance, and real mesh for close up details. A small dithering effect has been implemented to fade between impostors and meshes.
Not everything is optimized, code isn't clean, as I made this project in a 3-4h (didn't have time to polish it yet), this is just a PoC that I may improve in the future.
Left Shift
: Increase view distance.Left Control
: Decrease view distance.
Even though the tree model looks low poly, each face has been subdivided several times in Blender to increase its rendering time. In total the mesh counts 16320 vertices and 32502 triangles (data from Blender's statistics).
- Project entrypoint here.
- Build Configuration:
Boids
Sebastian Lague's video made me want to do my own version of it. You can see his other work on his YouTube channel or on his GitHub
The colors of each boids depends on the number of boid it perceives, the more they are, the whiter the boid becomes.
This project also gave me the opportunity to use ImGui.NET.
- Project entrypoint here.
- Build Configuration:
SceneRenderer
Meant to try out mesh rendering imported with Assimp.
- Project entrypoint here.
- Build Configuration:
RayTracing
Meant to discover a bit of what Compute Shaders can do. Direct implementation of Ray Tracing in One Weekend.