/gllab

a lab code base for CG learning

Primary LanguageC++MIT LicenseMIT

gllab

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).

plan ( a wish list :) )

  • 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

build & run

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]