||2 years ago|
|.vscode||2 years ago|
|Shader||2 years ago|
|cpp||2 years ago|
|include||2 years ago|
|test||2 years ago|
|.clang-format||2 years ago|
|.gitignore||2 years ago|
|.gitmodules||2 years ago|
|LICENSE||2 years ago|
|README.md||2 years ago|
|SConstruct||2 years ago|
Game engine snippets for the university course Game Engine Design (GED) with rendering functionality for Shader Programming (SPG).
scons in the root directory. This will generate two things:
- the shared library in
- test binaries in
test/bin/which use the library created in step 1
Full Demo Binary
Among the generated test binaries is the
full-demo.out which tests all SPG-related functionality:
- 3D Texture: a volume is rendered using the Marching Cubes technique. Moving up and down offsets it vertically.
- Bump Mapping: the ground texture is seemingly 3-dimensional thanks to bump mapping. 5/6 and 7/8 can be used to set the steps and refinement steps respectively. 9/0 sets the depth.
- GPU Particle System: the fireworks can be positioned by clicking the ground. 1/2 changes the update rate interactively.
- Soft Shadows: Variance Shadow Mapping smoothes out the shadows and prevents issues such as shadow acne.
- Tessellation: demonstrated by the little quad with terrain on it. 3/4 sets the tessellation factor.
General input: WASD and mouse for movement, X to enable wireframe rendering.
scons command also generates a
compile_commands.json which can be used by the VSCodium extension
clangd for autocompletion, debugging, etc.
Build and run scripts for VSCodium are provided as well.
Catch2 for unit tests: https://github.com/catchorg/Catch2
Base structure inspired by TheCherno's Hazel Engine series: https://github.com/TheCherno/Hazel
Some shader-related code adapted from LearnOpenGL: https://learnopengl.com/