CraftGE
An experimental computer graphics rendering engine based on OpenGL.
Prerequisites
The things you need to install before building this project.
- CMake 3.0 or later
Dependencies
- GLFW - a multi-platform library for OpenGL application development
- Assimp - a library to import and export various 3d-model-formats
Befor building the project, you need to get dependencies first:
Windows (MSVC)
You can get dependencies in Windows by following ways:
Use Microsoft VC++ Packaging Tool (Recommand)
PS > vcpkg install glfw3 assimp
PS > vcpkg integrate install
After that, the libraries will be handled automatically.
Or, build dependencies manually, then copy .lib and .dll to the lib directory.
macOS & Linux
Manually build dependencies, then install them or copy .so files to lib directory.
Build
Use CMake to generate project and build:
cd CraftGE
mkdir build && cd build
cmake ..
cmake --build .
Roadmap
Basic Modules
- Lights
- Point lights
- Directional lights
- Spot lights
- Transforms
- Basic object transforms
- Bones system
- Animation Parsing
- Camera
- Free observing Camera
- FPS Camera
- Racing Camera
- Texture mappings
- Diffuse texture
- Normal texture
- Skybox via cube texture
- LightMap baking
- Texture resource management
- Shadow
- Basic shadow mapping (directional & point)
- Percentage closer soft shadow
- Expotional soft shadow mapping
- Screen-space shadow mapping
- Physics
- Collision detection
- Force
- Shader
- Shader resource management
- Build-in default shaders
- Model importer using third party library
- Deferred rendering
Advanced Modules
- BRDF distribution via StandardMaterial
- Global illumination (offline & simplified in real-time)
- Water simulation
- Rain, snow and fog simulation
Acknowledge
OpenGL context and window management powered by GLFW, Model importer powered by Assimp.
Some modules and architecture design enlightened by CanvasToy.