PBR
参考资料
主要参考 Google 做的 Filament:
https://jerkwin.github.io/filamentcn/Filament.md.html#%E5%85%B3%E4%BA%8E
https://zhuanlan.zhihu.com/p/408636637
https://zhuanlan.zhihu.com/p/144154532
https://github.com/google/filament
https://google.github.io/filament/
https://google.github.io/filament/Filament.html#overview/physicallybasedrendering
IBL
image based lights,同样分为漫反射部分和镜面反射部分,最简单的即learnopengl的方法:
https://learnopengl-cn.github.io/07%20PBR/03%20IBL/01%20Diffuse%20irradiance/
https://learnopengl-cn.github.io/07%20PBR/03%20IBL/02%20Specular%20IBL/
这里漫反射部分需要预计算出irradiance map,镜面反射部分需要预计算出prefilter map。也就是说,使用一张hdr环境贴图,光ibl我们就需要额外计算出两张贴图!(LUT贴图是公共的)
我们不希望额外弄出更多的贴图存储,一是效率二是内存三是便利程度。幸好有其他的方法可以避开。首先是漫反射部分,我们可以用球谐来替代irradiance map;其次是镜面反射部分,我们可以直接用mipmap采样(samplelevel)来避开prefilter,可以参考:
https://zhuanlan.zhihu.com/p/463309766
https://google.github.io/filament/Filament.html#lighting/imagebasedlights
Last updated