基于物理光线的渲染原理

发表时间:2020/8/28   来源:《科学与技术》2020年9期   作者:薛冠衡
[导读] 基于物理的渲染(Physically Based Rendering,简称PBR)技术致力于渲染出更贴近于真实物理世界的光影效果

         【摘要】基于物理的渲染(Physically Based Rendering,简称PBR)技术致力于渲染出更贴近于真实物理世界的光影效果,它倾向于探索光影背后的物理规律,然后在此基础上构建一个基于物理规律的光照模型,最后应用到光照计算中。基于物理的渲染除了更为真实,它也给光照计算的赋予了更多的物理意义,从而使得设计师们摆脱基于经验的参数调整,只要设置的物理量正确,则最终光照效果也将会是正确的。对于一个基于物理渲染的光照模型,它通常需要满足以下的三个条件: 1、能量守恒;2、基于微平面的表面模型;3、使用基于物理的BRDF。
本文针对基于物理渲染着色模型的物理原理进行定性描述。
         【关键词】基于物理渲染、光能传递、光反射、光折射、光散射
1.光与物质的相互作用                                                                                                           
         光是电磁横波,因此它与不同材料的相互作用由该材料的电磁特性定义。定义相互作用的物理性质是折射率。该指数是一个复数,其实部决定了给定材料中光的速度,而该复数确定了当光传播通过材料时吸收了多少光。
         轻质材料相互作用的最简单形式是穿过均匀介质的光。这样的介质在其整个体积上具有均匀的折射率。如果折射率的复杂部分较低,则介质将显示为透明,如果折射率较高,则介质将吸收某些波长的光,从而使透明介质具有颜色。这种类型的轻物质相互作用称为吸收。
         如果介质是非均质的,则折射率会在很小的距离上突然变化[1]         。在这种情况下,撞击介质的光线会散射到所有可能的出射方向上。散射光的分布通常不均匀,但在某些方向上会出现尖峰,具体取决于表面属性。值得注意的是,所有介质都会在足够长的距离上以某种程度散射光。
         存在第三种类型的光与物质的相互作用 发射 发光材料将其他形式的能量转换为光,例如钨丝灯泡。发光材料在阴影方面并不是特别重要,因为光源通常是数学建模的。
2.光散射                                                                                                           
2.1在平面边界上散射                                                                                         
         基于物理渲染的阴影模型通常不考虑光的发射和吸收,而是考虑光的散射。在大多数情况下,散射光的行为非常复杂,无法解析解决。幸运的是,对于着色而言,唯一重要的是

图2.1:平面边界处的光散射
情况是在无限的平面边界处散射。这是因为相对于光的波长,即使材料表面上的微小凸起也可以被视为无限且平坦。在这种情况下,光线不会在所有可能的方向上散射,而是将每条光线精确地分成两部分:反射光线和折射光线(图2.1)。反射角θ                           总是等于入射的角度θ         我。折射角θ         [R         由斯涅耳定律定义:
         其中n         1         和n         2         分别是材料1和材料2的折射率。这些射线之间的能量是守恒的。反射和折射射线的总能量等于入射射线的能量。[2]         折射和反射射线之间的能量比由 菲涅耳方程 定义,这将在后面的章节中进行讨论。
        
2.2反射                                                                                         
         在现实世界中,没有多少表面能像镜子一样精确地抛光。它们中的大多数具有微观的“凸起”,其远小于像素,但远大于光的波长。这些类型的表面被建模为大量的微观光学平面表面。这些微小的表面中的每一个都以不同的角度反射光。(图2.2)。

图2.2:粗糙表面上的光反射
         在PBR模型中,此表面特性由粗糙度参数化。如果表面光学平坦,则此参数的值为0,而值为1表示最大粗糙度[3]         。值得注意的是,从这个意义上讲,较粗糙的表面对于人眼或触摸而言看起来同样光滑。例如两个不通球体,对象,在触摸它们时会看起来同样平滑,但是其中一个对象在微观尺度上更粗糙。
        
折射                                                                                         
         折射光发生什么取决于材料的吸收率和组成。金属具有很高的吸收率,因此几乎没有折射光从材料中发出。另一方面,玻璃等材料的吸收率非常低,因此折射光能够穿过物体的整个体积而不会被吸收。
         在这两种极端之间是介电材料。介电质吸收一定量的光,但其成分不允许光不间断地穿过玻璃,例如玻璃。取而代之的是,光散射在对象表面下的粒子上,并且某些光从同一表面重新发出。这种现象称为 地下散射 或 扩散。
         阴影中扩散的建模取决于表面下的散射范围。如果所有光线的表面入射点和出射点之间的距离小于像素的大小,则可以局部计算扩散的贡献。否则,应使用特殊的非局部地下散射渲染技术[1]。此类材料的示例是人体皮肤,蜡和任何足够薄的介电材料。

3.双向反射分布函数(BRDF)
         双向反射分布函数简单来说就是一个描述表面反射属性的一个函数。在计算机图形学中,有很多的不同的BRDF的模型,其中一些并不是基于物理的。一个BRDF要满足基于物理的特性,它必须是能量守恒的且相互的。对于相互的,我是指亥姆霍兹倒易律,它表明入射和出射光线可以在不影响BRDF值的情况下相互交换。
4.菲涅尔效果(Fresnel Effect)
         菲涅尔反射因子作为BRDF的一个系数在基于物理渲染中也是一个非常重要的角色。由法国物理学家Augustin-Jean Fresnel发现的菲涅尔效果声明你从一个表面看到的反射光线的数量取决于你接收它时的观察角度。
         比如,假设有一池水,如果你垂直于水的表面直接向下看,你可以很清楚的看到底部(假设水比较清澈)。以这种方式来观察水的表面基本上为0度或者说是沿法线入射,法线是指表面的法线。现在,如果你以一个切线入射方向来观察水的表面,尽量平行于水面,那么你会看到水面上的高光反射变得更强,并且你可能完全看不到水底的样子。
         基于物理渲染的菲涅尔效果并不像我们在传统着色模型中使用的那样。再次重申一次,它是基于物理渲染的着色器处理的另外一个物理特性。当在一个切线入射角观察表面时,所有光滑的表面在入射角为90度时会成为一个百分百的反射器。
         对于粗糙表面来说,反射中高光部分会更多,但是不会达到百分百的高光反射。这个时候起决定作用的是微表面的法线和光线的夹角而不是宏观表面的法线和光线的夹角。因此光线被分散到不同的方向,反射会变得更柔和、更暗。在一个宏观层次上,你看到的效果可能 是微表面所有 菲涅尔效果的一个平均效果。

5.线性空间渲染
         简单来说,线性空间渲染为光照计算提供了正确的数学方式。它为光照表现得跟真实世界一样创造了一种环境。在线性鹤立是内,gamma值 为1.0。然而,为了让我们人眼看起来正确,这些贴图需要使用sRGB编码。在Substance中,如果 图片标记了sRGB,那么它会被转换到线性空间为了以后的计算,最后会转换成sRGB编码来显示到屏幕上。然而,当你在纹理里面存储仅代表粗糙度或者金属度的数值时,这些图片需要在线性空间。

【注释】
[1]         相对于光的波长。
[2]         一些能量会因热量或其他类型的辐射而损失,但这仅在全局照明模型中有用,在该模型中,光线会多次反射。
[3]         在这种情况下,反射会在所有方向上均匀分散。

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: