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 currently supported:
PBR
real time physics base rendering algorithm and HDR.render queue
a node based render queue, that contributes to performance by reducing api calls.render pass
separated render pass, such as G-buffer, effect, lighting, shadow, making the whole process more controllable and also contributing to rendering performance.frustum culling
cull everything that is not inside the camera.shadow mapping
real time shader based shadow mapping.SSAO
real time screen-space SSAO.particles system
better looking and performance, easy to implement.instance object
implement of OpenGL instance draw feature.ECS
Entity Component & GameObject System just like Unity Engine.motion blending
bone animation blending, supporting all the animations from mixamo.com.third person controller
player-camera controller just like all the third person game, supporting PS4 controller.import blender file
blender is an awesome software. All the stages were edited in blender.
-
OpenGL ES 3.2 & GLM
Core graphic api and core math library. -
Assimp
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. -
stb
Public domain C image loading library by nothings.
- Character and animation from mixamo.
- Model by SilverTm from UE4 Marketplace.
- 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.