This is an experimental project for me to learn how to write a 3D graphics engine. I'm trying to implement all the necessary basic functions and various advanced features for it (there is a list below).
- scene manager
- scene graph
- culling with BVH, BSP, Octree
- draw call mangement
- lighting & effect
- basic local illumination
- Deffered Shading
- Shadow Map and Reflective Shadow Map (RSM)
- Splatting Indirect Illumination (SII, with RSM)
- AO (SSAO, HBAO or others)
- HDR tone mapping
- Image-Based Lighting (IBL)
- optimization
- memory optimization
- transform calculations optimization
- rendering queue
- draw call batching
- multi-API support
- DirectX 11
- DirectX 12 or Metal
First, please make sure you get glfw3
, glm
, assimp
, freeimage
installed.
Sorry:) For I only have a macbook. So I haven't tried to compile it on Windows right now. I think it would be easy to make some tweak on the project file, generated by cmake -G
, to get it work.
go to the root folder of the project:
# make a folder for building
mkdir build
cd build
cmake ..
make
./samples/[Sample Name]