Unity PBR
怎么理解PBR?
PBR相对于传统的渲染,并不是技术创新,而是形成了一套工业化标准化的流水线。有点像是中医凭借医生的经验体会心得
在看病,为什么这几位药在一起就好使,有时候特玄;西医呢,更多是靠化验检查身体指标来做判断,这几个指标高了代表
啥代表啥,只要有这个标准,对医生的医术标准也降低了好多。同样的PBR就是这么一套指标化了的流程。
怎么指标化渲染?
金属度,粗糙度,漫反射,高光,法线,高度图,遮挡图等等
这些参数基本上是在遵守物理规则的基础上抽象出来的一系列指标,并且每项指标对应
了背后的物理意义(而不是什么感觉出来的)
指标与物理的关系?
金属度,低折射高反射,高反射阻碍了光的吸收或折射,金属表现出闪亮的外表。通过调节金属度,可以调节物体的反射率。
非金属的表面,会更多表现出物体本来的面貌,反射低,散射高。
物理中并没有金属度的概念,这是抽象出来的一个比较直观的参数,方便美术调整。
光滑度,描述的是物体的微表面特性,这个不同于法线贴图,后者描述的是物体的宏观表面特征,使物体有凹凸感。它代表的
是物体的散射特性,越粗糙的物体,表面的反光越模糊。
当金属度高,光滑度也高时,高光会比较集中、清晰;金属高,光滑低时,高光的斑点就比较大、模糊。
Albedo,物体的基础贴图,代表没有光时的物体本来面貌
HeightMap,一般配合法线图,让一个平面表现出一种凹凸不平的感觉来
Occlusion,表现出漫反射的明暗感觉,可以用贴图,也可以实时计算
PBR中的物理规律?
能量守恒,这是与传统渲染最大的区别之处,简单来说,就是反射光的总量不能超过入射光的总量,diffuse+specular <=1
Fresnel反射,入射角越大,反射率越强。
在PBR中,渲染模式需要用Linear,因为gamma空间下,为了使渲染出来的物体更真实,对环境光进行了gamma校正。但在PBR中,
它设计就是模拟真实环境中的光照计算,所以不需要校正,gamma下反而会出问题。
参考文章
https://www.vive.com/cn/forum/2128