A rendering and game engine with as many features as I felt like, including:
- Multiple material types (PBR, emissive, Blinn-Phong, etc.)1
- Directional lighting with cascaded shadow maps and point lights
- Physically based volumetric lighting based on EA's extinction volume method
- Water shader with dynamic tesselation, and lighting based on Alex Tardif's and Jean-Phillipe Grenier's articles, this is more of a prototype but water is hard to get right2
- Level, mesh and animation binary serialisation, asynchronous texture loading with STB_image
- Skeletal animation, texture animation, and vegetation geometry animation based on Crytek's method
- Antialiasing with MSAA and FXAA, PBR bloom, Exposure adjustment and tonemapping, and SSAO (kept subtle because of depth reconstruction imprecisions)
- Lightmapping with lightmapper, with UV parameterisations done by XAtlas
- Editor with lots of debugging visualisations, uses Dear ImGui for the GUI
- Model loading with Assimp, custom GLSL shader pre-processor, dynamic keyboard bindings, player and camera controller, etc.
All the dependencies are built statically except OpenGL.
You need CMake and the Visual Studio build tool-chain for C++. Additionally, OpenGL must be at or above version 4.3 (Should already work, if not, update your graphics drivers).
Download the source and unzip or
git clone https://github.com/patricklbell/3d_engine.git
Navigate to the root of source, create a build directory and build with CMake:
cd 3d_engine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ./..
cmake --build . --config Release
You then need to make sure that your working director contains the data folder, this can be done by copying the data folder to the build directory for example.
To compile GLFW you need the X11 development packages installed, on Debian and derivates like Ubuntu and Linux Mint the xorg-dev meta-package pulls in the development packages for all of X11. For more information see https://www.glfw.org/docs/3.3/compile.html. You will need CMake, and OpenGL must be above version 3.3 (Should already work, if not, update your graphics drivers).
Download the source and unzip or
git clone https://github.com/patricklbell/3d_engine.git
Navigate to the root of source, create a build directory and build with CMake:
cd 3d_engine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ./..
cmake --build .
You then need to make sure that your working director contains the data folder, this can be done by copying the data folder to the build directory for example.
You're on your own here, sorry!