|
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 |
README.md
Gedeng
Game engine snippets for the university course Game Engine Design (GED) with rendering functionality for Shader Programming (SPG).
Building
Run scons
in the root directory. This will generate two things:
- the shared library in
lib/
- 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.
Developing
The 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.
Credits
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/