第九章 延迟渲染
想在高端的GPU上实现100的实时光照系统,近两年来研究出使用延迟渲染的技术实现这一目标。一个单一的解决方案不能满足所有的需求,所以本节并不是实现延迟渲染的普适方法。
https://www.sohu.com/a/125709754_468740
4.3 金属工作流
我们只关心两种不同的材质。金属材质或者非金属材质。非金属材质又叫绝缘材质。目前,我们可以使用强的反射颜色值来创建金属材质,同样如果此值如果很小就会得到绝缘材质。这个就是镜面反射的工作流。
如果我们能做金属和非金属材质之间切换,那么就会更加的简单。因为金属材质没有albedo,所以我们可以使用这个值作为specular tint。相反的,非金属材质没有specular,所以也就不需要specular tint,这个就是金属工作流。
哪种工作流更好?
两种方式都可以。unity为我们提供了两种工作流的支持。金属工作流更简单一点,因为只需要一个源颜色和一个滑动条,有了这些已经能够创建很逼真的材质了。镜面反射工作流同样可以创建一样的效果,但是你需要更多的设置。
我们可以使用另外一个滑动条,以作为金属的开关,用来代替specular tint。它的值是0或者1。因为一个材质不是金属就是非金属的。在0到1之间,是介于金属和非金属材质之间的材质。
5 基于物理的渲染
blinn-phong在工业中已经在游戏界使用的很广泛,但是当今使用的比较流行的是PBS。因为它更逼真,更预测性。游戏引擎和建模工具都是使用了PBS算法。业界也就慢慢转到了PBS的实现。
unity标准shader也使用了PBS方法。而且提供了不同的版本实现,这个取决于目标的平台、API的水平。这个算法定义在宏UNITY_BRDF_PBS中,在头文件UnityPBSLighting.cginc中定义。BRDF代表的双向反射分布函数 bidirectional reflectance distribution function.
网友评论