This repo is a toy renderer implemented using C++ and OpenGL.
The following features has been implemented:
Cube
Texture: Diffusion Map; Normal Map; Specular Map; Emissive Map
Material
Light: Point Light; Directional Light; Spot Light;
Shadow
Skybox
Camera
Generate land from height map
Bone based animation
FBX/ADE format mesh and animation loading
The following features will be completed in the future:
Collision: AABB; OBB; Sphere
Particle System
The UML is shown below:

When you run it, you can see:
All resources such as meshes and textures were collected from websites.
Currently, only provides a brief dependency list. You can obtain executable files from Releases. The following libraries are used.
GLFW
GLM 0.9.8.5
GLAD
ASSIMP
STB_IMAGE
Use W
A
S
D
to move around, use mouse to change camera direction, left mouse button
to caputure cursor and Esc
to escape.