recently I invested some time to catch up with current state-of-the-art realtime rendering techniques.
after digesting the siggraph 2013 course notes from Epic I started implementing a new material and lighting system within kinskiGL.
helpful resources along the way were also the “Physics and Math of Shading” presentation by Naty Hoffman and “Realtime Rendering” by Tomas Akenine-Moeller.
- the new material uses a metal/roughness/ambient occlusion workflow, the lighting system was enhanced with support for Image based Lighting (IBL).
- kinskiGL now reads .hdr radiance-HDR maps (provided as equi-rectangular panoramas or cubemaps) and uses those to replace the ambient term in the shading equation.
- the shading model reflects the common shift from Phong/Blinn-Phong to a generic BRDF as described by Cook/Torrance (A Reflectance Model for Computer Graphics).
- kinskiGL now also supports the glTF-2.0 model format as plain or binary file.
results
finally some screenshots to round up the post.
all models are lit by the .hdr maps in the background alone, though the lighting model plays nicely with classic point/spot/directional lights.
sources
most models are from Khronos’ collection of glTF-2.0 testmodels: github.com/KhronosGroup/glTF-Sample-Models
the background HDR maps used can be found here: http://www.hdrlabs.com/sibl/archive.html
the application used is a 3Dviewer, which is a sample application of my KinskiGL framework: github.com/crocdialer/KinskiGL
conclusion
it’s 2018, looks like we made some progress recently.
hope you like it,
croc