PBR开发相关知识导图(及总结)

PBR 相关公式的推导:

diffuse 部分:

Specular 部分:

PBR 知识体系总结

(导图结构部分,参考浅墨)

Specular  BRDF

  •   Specular D:  法线分布函数(Normal Distribution Function) 描述微表面法线的概率分布

           各项同性: GGX[2007],   Blinn-Phone[1977],  Beckmann[1963], GGX[2007]

                                  

           各相异性: Anisotropic BAckmann[2012],    Anisotropic GGX[2015]

  •     Specular F: 菲涅尔方程(Fresnel Equation) 描述不同表面角下表面所反射的光线所占的比率

          Cook-Torrance

          Schlick:使用比较多,业界常用方案

                    

          Gotanta

  •     Specular G: 几何函数(Geometry Funciton) 微平面自称阴影与自我遮挡的属性

            Smith

            Cook-Torrance

             Neumann

             Kelemen

              Implicit

              Smith联合遮蔽阴影函数(Smith joint masking-shadowing function)

              目前较为常用的是 分离遮蔽阴影(Separable Masking and Shadowing Function), 该形式将几何项G分为两个独立的部分(light and view)并对两者用相同的分布函数来描述。 其中UE4 方案

                                             

  Diffuse PBR: 

  •         Lambert [1760]

  •         基于物理型: mutiscattering diffuse[2018]

                                PBR diffuse for GGX+Smith[2017]

                                Gotanda Diffuse[2014]

                                 Renormalized Disney Diffuse[2014]

                                 Disney Diffuse[2012]

                                                          

                                 simplified Oren-Nayar[2012]

                                 Pren Nayar[1994]                                                         

基于物理的环境光照(Physically Based Environment Lighting)

  •         Diffuse  : 辉度环境映射(Irradiance Environment Mapping)

                 Cube Mapping

                 Spherical Harmonics

                 others: MonteCarlo Intergrat   ,   Sherical Gaussians,  H-bais

  •         Specular:  基于图形的镜面反射光照(Specular Image-based Lighting)

                 预过滤环境映射(Prefiltered Environment Mapping)

                 Split sum Approximation:基于重要性采样的思想,将蒙特卡洛积分公式代入渲染方程:

                 

                前面一项,可以理解为对光亮度L 求均值,经过n = v = r 的假设,取决roughness 以及 reflection vector. 借助过滤环境贴图,用多级模糊的mipmap 来存储模糊的环境高光 (此处有个工具,就是用来得到mipmap:https://github.com/derkreature/IBLBaker),这部分涉及到很多重要的知识,待会再详述。

                 

                后面一项, 可以理解为环境BRDF(Environment BRDF), 取决于仰角, 粗超度和 菲涅尔项目。 这一项通常有两方法:                   2D LUT  , 曲线拟合; 其中2D LUT,如下,可以看成(F0 * Scale + offset)

                 

                   

                   这张红绿色贴图,输入粗超度,以及cos, 输出BRDF。

                     

                解析拟合: 曲线拟合的方法,弥补了加载寻址贴图的资源过程,在手游中普遍使用比较多

                       

            Errors in IBL

                上述v = r =n 的假设中,照成了最大的误差,导致粗超度在各项异性的丢失( v=n, by far the assumption contributing to the largest error when integrating the non-constant part of the IBL. This results in the complete loss of roughness anisotropy with respect to the view point.)

               

             微表面理论中能量守恒 energy conversation:

               对于方向光,每个表面点将入射方向光反射,这个反射方向取决于法线,在计算BRDF项时,规定了方向I 和 视图V。这样,只有恰好正确朝向的小平面才有助于BRDF的值。而另外一些被I 方向(shadow),V (masking), 或两者的其他表面区域阻挡。

                           

而实际上,经过多次的反射,其中这些没有被Microface理论考虑的光线也是可能会反射到V方向。

                

其中,就有提出mutiscattering的补偿,主要表现为roughness 比较大的时候(此时Microface没有被考虑的光线会比较多),会比传统Microface亮一些

                  

 

                improving in IBL

                      Calculate  sililary:

        

                       another similary:    Spherical  Gaussian approch to reduce calculating in pow calculation

 

Irradiance Environment Mapping

    球谐光照( spherical harmonic lighting https://gameinstitute.qq.com/community/detail/123183) 对每个空间点附近的一个球面区域去真实的用公式计算一些采样点的值,然后按照光照公式的采样曲线同选定的几组球谐函数正交基底积分算出每个正交基底的参数,最后利用这些正交基底,即可以求出空间点球面上任意一个位置的光照. 球谐光照实际上就是将周围的环境光采样成几个系数,然后渲染的时候用这几个系数来对光照进行还原,这种过程可以看做是对周围环境光的简化

    含粗超度信息的 mipmap 第5层也可以

                              

 

AO:

diffuse AO: todo

specular AO: 在法线方向比较弱,在gazing(斜视)方向比较强。 现实中材质的光反射率很少有低于2%的。所以2%以下的就要

遮挡掉去。

horizon AO:低于平面表面的进行遮挡,防止leak

 

    

图片管线(Imaging pipeline):

       上面,采样mipmap 的时候,是通过外部的HDR图导入进去。而一张HDR图,到真正显示出来,里面其实是经过了比较多的步骤。需要知道,shader中处理贴图(roughness,diffuse,specular)数据,都是线性空间。另外,图片可以保存的信息也是LDR的。如下所示,场景的信息,被采集到图片像素经过 white balance, color grading, tonemaping , OETF, 到最后才是 LDR。

         HDR: 通常LDR图片的RGB是0~1.0, 或者0~255; HDR 中图片,亮的部分(比如太阳), 通常可以达到2000左右。这就大大超出了LDR图片的范围。

         白平衡(white balance): 颜色是受温度影响的,低温情况下,颜色会偏黄色或红色,而高温会出现蓝色(参考 酒精灯内焰 和 外焰 颜色)。  

        色阶(color grading): todo

        色调映射 (tonemaping): 调整动态范围,使更符合人眼的观察习惯(亮的部分更亮,暗的部分更暗)。

        OETF:光传感器把光信号转为数码数据的过程(describe the action of the sensor, converting from scene brightness to data),  相反,把数据转为显示器显示出来的过程为 EOTF。

        处理后的LDR图片: cubemap,parabolic map,  double parabolic map 

                             

 

参考:

          https://blog.csdn.net/poem_qianmo/article/details/85239398 

          https://google.github.io/filament/Filament.md.html#imagingpipeline  

          https://github.com/derkreature/IBLBaker    

          https://gameinstitute.qq.com/community/detail/123183

          https://www.cnblogs.com/herenzhiming/articles/5789043.html

          understanding the masking-shadowing function in Microfecet-Based BRDFs,  Eric Heitz

           spherical haimonic lighting

           [Gems 3]The importance of being linear 

           Real shading in Unreal Engine 4

           Physically Based Shading at Disney, Brent Burley

          https://placeholderart.wordpress.com/2015/07/28/implementation-notes-runtime-environment-map-filtering-for-image-based-lighting/

           Physically Based Rendering,  3rd Edtion

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值