I have been working on a personal rendering engine these days. Although there are lots needed to deal with and it is really just a beginning, finally here comes the first tease! 
Features
Features currently supported:
- 
PBRreal time physics base rendering algorithm and HDR.
- 
render queuea node based render queue, that contributes to performance by reducing api calls.
- 
render passseparated render pass, such as G-buffer, effect, lighting, shadow, making the whole process more controllable and also contributing to rendering performance.
- 
frustum cullingcull everything that is not inside the camera.
- 
shadow mappingreal time shader based shadow mapping.
- 
SSAOreal time screen-space SSAO.
- 
particles systembetter looking and performance, easy to implement.
- 
instance objectimplement of OpenGL instance draw feature.
- 
ECSEntity Component & GameObject System just like Unity Engine.
- 
motion blendingbone animation blending, supporting all the animations from mixamo.com.
- 
third person controllerplayer-camera controller just like all the third person game, supporting PS4 controller.
- 
import blender fileblender is an awesome software. All the stages were edited in blender.
And some new features are one the way, such like baked shadow and lighting LUT filter bloom and blur.
Download
- Source code available on GitHub (without assets).
- Download this demo here. (required: OSX 10.13 or later, PS4 controller).
Frameworks
- 
    OpenGL ES 3.2 & GLMCore graphic api and core math library.
- 
    AssimpAlthough I have wrote some model loader program by myself, Assimp is more professional library and can handle more complex situations. Open Asset Import Library (short name: Assimp) is a portable Open Source library to import various well-known 3D model formats in a uniform manner.
- 
    stbPublic domain C image loading library by nothings.
Assets
- Character and animation from mixamo.
- Model by SilverTm from UE4 Marketplace.
Bibliography
- Background: Physics and Math of Shading by Naty Hoffmann.
- Real shading in Unreal Engine 4.
- Frustum Culling LegacyOpenGL.
- Unity User Manual.
- MipMap Texturing.
- Deferred vs Forward+ Rendering with DirectX 113D Game Engine Programming.
- Forward+: Bringing Deferred Lighting to the Next Level.
- Google I/O 2011: WebGL Techniques and Performance.
- Efficient Gaussian blur with linear sampling.
- How to do good bloom for HDR rendering.
- Transparency Sorting.
- Learn OpenGL, extensive tutorial resource for learning Modern OpenGL.
