Update README with SPG stuff

This commit is contained in:
karl 2021-06-22 11:30:30 +02:00
parent 34b7ddfbfb
commit e77dccb742

View File

@ -1,6 +1,6 @@
# Gedeng
Game engine snippets for the university course Game Engine Design (GED).
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:
@ -8,6 +8,17 @@ Run `scons` in the root directory. This will generate two things:
1. the shared library in `lib/`
2. 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.
@ -16,4 +27,6 @@ Build and run scripts for VSCodium are provided as well.
## Credits
Catch2 for unit tests: https://github.com/catchorg/Catch2
Inspired by TheCherno's Hazel Engine series: https://github.com/TheCherno/Hazel
Base structure inspired by TheCherno's Hazel Engine series: https://github.com/TheCherno/Hazel
Some shader-related code adapted from LearnOpenGL: https://learnopengl.com/