/CraftGE

An experimental rendering engine

Primary LanguageC++OtherNOASSERTION

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.