This is originally a final project for my Computer Graphics course. Later I decided to keep working on it and added some new features.
This will also my last renderer implemented in OpenGL. Later I'll learn Vulkan and use that as the primary Graphics API.
This renderer supports the following features:
-
Shadowmap
-
Skeletal&Morph Animation
-
Skybox
-
PBR
-
Real-time global illumination based on RSM.
Since I didn't decide publishing this before, I didn't keep track on all the third party resources I used. If you find the dependencies or resources of this project is infringing your or others' copyright, please post an issue or contact me through my email: oppositenormal@outlook.com
Clone the repository with all the sobmodules
git clone --recursive https://github.com/OppositeNor/last-opengl-project.git
cd last-opengl-projectInstall build utilities and dependencies:
- Arch Linux
sudo pacman -S gcc ninja cmake
yay -S icuBuild the project using the local dependencies
# Debug
cmake -B build -G Ninja -DUSE_LOCAL_DEPS=ON
cmake --build build
# Release
cmake -B release -G Ninja -DUSE_LOCAL_DEPS=ON -DCMAKE_BUILD_TYPE=Release
cmake --build releaseSome rendering results are shown bellow:
Run with command line argument morph:
Run with command line argument pbr:
Run with no command line argument provided:


