ISUX译文 | The PBR Guide 基于物理的渲染指引(上)
腾讯ISUX
isux.tencent.com
社交用户体验设计
1. 光线
光线在均匀透明介质中遵循着直线的发射轨迹。同时,光在不透明表面以及不同介质中的反射和穿透轨迹也是有迹可循的,所以我们可以直接推断并绘制光线的路径(如图1 所示)。在光线接触到物体表面时,它可能会被反射或折射,也可能最终会被介质吸收。但是值得注意的是,光线吸收并不会在物质的表面上进行。
Absorption and Scattering - Transparency and Translucency
2. 吸收与散射-透明与半透明当光线穿过不均匀介质或半透明材质时,可能会被吸收或散射:吸收:当光线被吸收时,由于光的能量被转化成其他的形态(通常是热能),所以光线的强度也会相应减弱。同时,由于不同波长的光被吸收的情况不同,所以光的颜色也会改变。但是光线的角度始终保持不变。散射:当光线被散射时,光的方向可能会被随机改变,偏向角取决于材质本身。但是,散射并不会改变光的强度。在生活中,散射是一个常见的现象,耳朵皮肤的透光就是一个很好的例子:因为耳朵的皮肤很薄,所以我们可以观察到散射的光线从耳朵背后穿透出来(下图2)。
3.漫反射与高光反射
高光反射 Specular Reflection:当光在完美的平面上被反射时,根据反射定律,反射角等于入射角,这就是高光反射。然而现实生活中,大多数平面都是不规整的,所以反射的方向也会因为接触面的粗糙度而变得非常随机。反射改变了光的方向,但光的强度保持恒定。越粗糙的表面,它的高光范围会越大,且表现也越暗。光滑的表面会让高光反射更聚焦,所以这种情况下的高光,在特定的角度下观看会更亮更强。需要注意的是,两种情况下,被反射的光的量仍旧是一致的。表面不规则在显微镜层级造成了光的漫射。模糊反射就是由于光被弥散式地反射所造成的,这些光线并没有被平行地反射回来,所以我们接收到的反射就是模糊的。
4. 色彩
一个表面可被观察的颜色是由光源发射的波长所决定的。这些波长会被物体本身吸收,同时也会被高光反射或漫反射。那些经过吸收和分散后还留存的波长就是我们眼睛所看到的颜色。举个例子,苹果的表皮大部分都反射红色光,是因为只有红光的波长在苹果皮表面被反向散射,其他光都被吸收了,所以我们看到的苹果是红的。
5. 能量守恒
能量守恒在PBR渲染中是非常重要的前提。这个守则认为一个表面二次发射(反射或散射)的光必须少于这个表面接收到的光。对于艺术家或设计师来说,我们不必担心如何去控制能量守恒,因为PBR着色器的设定一般都自行符合能量守恒定律。
6. 菲涅尔效应与F0
菲涅尔项(Fresnel Item)作为BRDF的一项系数,在PBR着色中扮演着非常重要的作用。法国物理学家菲涅尔认为,一个表面反射的光的总量与观察光的角度相关。打个比方,如果你在观察一缸水,并且从它的正上方看下去(与水面垂直),就可以直接看到水池的底部,因为此时观察的角度为0°,视角向量与水面的法线向量重合。当你从更斜的角度去观察水面,并慢慢与水面趋于平行时,你会看见越来越多高光反射。菲涅尔项通常不是我们可以在传统着色器中控制的属性,它一般只能由PBR着色器自行控制。当我们从掠射角(Grazing Angle 切线角/掠射角)观察所有光滑表面时,它们在与光线入射角成90°的位置几乎会形成100%的反光(当我们使用菲涅尔效果时,通常能观察到材质球边缘会出现一圈强反光)。对于粗糙的表面,反射会更加地明显,但不会完全达到100%高光反射。这种情况下,反射的效果受每个微面元的法线与光的角度影响,而非取决于整个宏观面的法线与光的角度。表面粗糙时,光线被微面元进行不同角度的弥散反射,所以整个反射效果看起来会更加柔和。非导体(电介质)表面的F0反射值一般区别不大,事实上,当我们改变表面粗糙度时,这种反射值的变化也很难被看见。然而,不同材质之间还是有一定区别,图12展示出F0在金属与非金属表面上的范围。需要注意的是,宝石类的材质可能是个特例,因为它们的F0值更高。
7. 导体与绝缘体-金属与非金属
我们为PBR制作材质时,应当时常考虑该材质是金属还是非金属,因为它们的制作规范完全不同。尽管对部分类金属材质(Metalloid,非金属与金属的混合材质)来说,分类很难被明确,但是对大多数制作材质的工作流而言,事先分清楚材质是否为金属仍然是一个较好的方法。本文将会对金属与非金属的特性进行拆解,并分别讲述它们的制作规范。8. 线性空间渲染
在着色器中,色值的提取与色彩的计算操作都是在线性空间(Linear)中执行的。这个流程会先把色彩贴图中已经被gamma-encoded(一般是sRGB)的值转成Linear。在色彩管理的流程中,一般会由程序自动或工程师手动标记好这张贴图的色彩空间以便后面正确的计算。所有的计算与渲染会在线性空间中进行,在最终显示器显示前,再被gamma-correction矫正回sRGB,以保证色彩的正确显示。那么要如何知道哪个图会被解码回Linear呢?如果设计师是从Substance Painter或Substance Designer中直出贴图的话,我们可以看哪些贴图中含有颜色(Diffuse Reflected Color),例如金属色调或者是玻璃色调。这些贴图在输入着色器前就应该被标记好它原有的色彩空间(通常是sRGB,因为设计师一般也是在此环境中将贴图绘制出来的)。因此,在PBR渲染流程中会标记为gamma-encoded的贴图包括Base Color(基础颜色/反照率颜色)、Diffuse(漫反射)、Specular(高光反射)、Emissive(发光贴图)。而当贴图仅用于记录数据时(材质粗糙度,是否为金属等),它们通常都会被输出为Linear。在PBR渲染流程中被标记为Linear的贴图有Roughness(粗糙度),Ambient Occlusion(AO)、Normal(法线)、Metallic (金属)、Height (高度)等。当我们使用SP或SD设计贴图,并输出Substance材质时,一般不用担心Linear与sRGB的转换,因为这套输入输出的流程已经被自动化处理,所以最终渲染显示的结果也是被gamma矫正后的正确效果。同样,在Substance Integration插件中使用Substance材质时,输出结果已经根据贴图的色彩空间(线性或sRGB)、以及所在程序的色彩管理设置进行自动转换。然而需要注意的是,理解这套流程背后的原理仍然很重要,因为当Substance材质贴图(Substance Map)作为普通位图(Bitmap)使用时,你仍需要根据你使用的渲染器来手动标记贴图的色彩空间。通常,后缀为.png, .jpg, .tga, .tif的贴图,gamma-encoded使用的是sRGB色彩空间;而.exr为后缀的贴图(如环境发光贴图HDRI)则为Linear空间。
9. PBR的核心属性
能量守恒定律:一个表面反射光的量少于它接收到的光的量。这个定律已经被着色器自动执行。菲涅尔效应:产生菲涅尔效应的BRDF双向反射分布函数已经被PBR着色器自动执行。对于大多数非导体(电介质)材质来说,它的F0反射值不会有太大的变化,普遍分布在2-5%。而对于金属材质来说,反射值更高,范围在70-100%之间。高光反射的强度由以下几个属性共同影响:BRDF算法(GGX、Blinn或其他)、不同工作流下的粗糙度或光泽度贴图、以及F0的反射值。光的计算都在线性空间中执行:所有含色彩信息的贴图(如Base Color)通常都会被着色器转换成Linear用于计算。设计师或开发者需要注意这个转换是否由渲染引擎在引入贴图时自动执行,如果没有,则需要手动标记贴图的色彩空间。当贴图仅用于记录材质的属性数值(如粗糙度、发光度、高度、法线等),则该贴图在整个流程中都应该被解析为Linear空间。本译文未完待续,欢迎持续关注:《The PBR Guide Part2 - PBR贴图制作指南》想看更新的同学记得"在看评转"三联哟!本文仅供学习参考之用,原文及图片版权归属Substance及其母公司Adobe所有。
https://academy.substance3d.com/courses/the-pbr-guide-part-1 [Accessed 12 November 2019]
[2] Burley, B. (2012). Physically-Based Shading at Disney. [PDF] Available from:https:/disney-animation.s3.amazonaws.com/library/s2012_ pbs_disney_brdf_notes_v2.pdf [Accessed 5 July 2016].
[3] Kwast, D. An Introduction to BRDF Models. [PDF] Available from:http://hmi.ewi.utwente.nl/verslagen/capita-selecta/CS-Jimenez-Kwast-Daniel.pdf [Accessed 5 July 2016].
[4] Lagarde, S. (2014). ‘Dontnod Physically Based Rendering Chart for Unreal Engine,’ Sebastien Lagarde, blog post, April 14, 2014. Available from:https://seblagarde.wordpress.com/2014/04/14/dontnod-physically-based-rendering-chart-for-unreal-engine-4/ [Accessed 5 July 2016].
[5] Lagarde, S. (2011). ‘Feeding a Physically-Based Shading Model’, Sebastien Lagarde, blog post, August 17, 2011. Available from:https://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/. [Accessed 5 July 2016].
[6] Walter, B., Marschner, S., Li., H. and Torrance, K. (2007).Microfacet Models for Refraction through Rough Surfaces. [PDF] Eurographics Symposium on Rendering, 2007. Available from: https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [Accessed 5 July 2016].[7] Epic Games. (2004-2017). ‘Using Refraction’, Epic Games, UE4 Documentation, 2017. Availablefrom:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Refraction/. [Accessed 5 July 2016][8] 游戏引擎中基于物理渲染的基础部分(2).Available from: https://www.bilibili.com/read/cv346602/
PS:ISUX 开通粉丝QQ群啦!欢迎各大设计师加入和我们一起聊设计~添加QQ群:764345161或长按以下二维码
以下ISUX文章,你可能也感兴趣
▽
破局升级 | QQ VIP官网再设计运营专题高效设计法(下)
运营专题高效设计法(上)
腾讯原创作品区块链版权存证发布如何在页面极速渲染3D模型
感谢阅读,以上内容均由腾讯ISUX团队原创设计,以及腾讯ISUX版权所有,转载请注明出处,违者必究,谢谢您的合作。注明出处格式:
文章来自公众号:
腾讯ISUX
( https://isux.tencent.com/articles/THE-PBR-GUIDE-1)