srpbr is a simple software-renderer with pbr shading model, easy to understand, easy to debug.
pure c++ 11 implementation
left-hand z-up coordinate system
software-rasterizer
perspective-correct interpolation
z-buffer (reverse-z tech / z-test / z-write)
back culling / frustum culling / viewport clip
support wavefront .obj file
physically-based-shading with ibl
bilinear / trilinear texture sample
cube map sample
reinhard toon-mapping
generate ibl textures from an environment cubemap
indirect diffuse lighting
precompute indirect diffuse lighting stored in an irradiance map from a radiance map(environment cubemap)
generate_irradiance_map (" ./resource/ibl_textures/env.png" , " ./resource/ibl_textures/irradiance.png" );
indirect specular lighting
Split Sum Approximation, result in two part
generate_prefilter_envmap (" ./resource/ibl_textures/env.png" , " ./resource/ibl_textures/prefilter" );
generate_BRDF_LUT (" ./resource/brdf_lut.png" );
depth buffer
direct lighting only
with ibl
standard pbr with ibl
https://niepp.github.io/2016/05/20/PBR-notes.html