终极CGFinal · 打造精彩的设计网站
当前位置: 主页 > CG学院 > 反射的奥秘(3D反射理论概述)nbsp;之二介入

反射的奥秘(3D反射理论概述)nbsp;之二介入

发布时间:2016-09-13 01:59内容来源:终极CGFinal 点击:

教程名称:反射的奥秘--Philipp Zaufel关于3D中反射的理论概述
使用软件:适用所有3D软件
教程介绍:介绍了3D中反射的基本理论

原教程地址:

反射的奥秘(3D反射理论概述)nbsp;之二介入

01.反射的奥秘-第二部分
    在第二部分中Philipp Zaufel用通俗的语言描述了BRDF(双向反射分布函数)--一个CG中最常用的用来描述材质反射行为的数学模型。

02.总论
    BRDF-双向反射分布函数,是用来描述材质反射行为的函数,是一个数学模型。这篇小教程是为艺术工作者写的,而不程序员。有关BRDF的技术资料有很多,但我的目的是想让你们了解如何让它正确的工作,而不是大篇幅的罗列。BRDF在CG中无处不在。当你使用Phong,Blinn或者其它Shader的时候你就在使用BRDF模型。要是你用光线跟踪制作反射,阴影或者产生GI效果的时候,你也在无形中使用着BRDF模型。
    一个BRDF模型描述了一种表面上入射和反射光线的关系。因此说简单点就是光线射到表面上,表面对光线产生作用。光线可以被反射(镜面的或漫射的),吸收,或两者都有。我们可以通过测量一种真实物体表面上的反射和入射光线来描述这种材质和它形成的BRDF,测量的结果可以用在CG程序中来产生有相同表面属性的材质。但大多数情况下会使用简化的,带可调节参数的模型来产生CG表面。这些反射模型可以是精确的,也可以是经验化的。这里我们关心的是精确的分析反射模型。因为它里面的参数或者说方程是基于真实世界的,并且为了能使材质叠加产生复杂的SHADERS,它们也使用在CGI中。像Robertson-Sandford和Beard-maxwell这些经验模型,它们用的是虚构的参数来构建简化的BRDF。下面我会提到一些高级的反射模型。像BTDF,BSDF,BDF和BSSDF,这是为了澄清一个事实:一个BRDF只是依据表面属性,入射光角度(同它的参数)和视角来描述光线的反射。
    BTDF-双向传输分布函数,描述了透明的表面属性,过程是通过矢量计算表面的两个方向(不是同一个计算过程)。BRDF和BTDF合起来就是BSDF,简称BDF--双向散射分布函数,描述表面上同一点处两个方向的半球的函数。这些就是高级(镜面)光线跟踪渲染的基础函数。BSSDF--双向表面散射反射分布函数,它的发明者就是发明光子贴图的那个人,Henrik Jensen。它描述了物体内部的光线散射。好莱坞,概论就这么多,下面我们一一介绍吧。

03.完美的漫射材质——Lambert
    这是个非常简单的模型,而且距今已有200年的历史了。在CG场景中它无处不在。这个模型描述了一个完美的漫射表面。入射光在表面上向四周等量的散开,如果从不同的角度观察表面的话会看到同样的颜色(各向同性)。唯一不同的是入射的角度。入射击角为90度时表面亮,反之则暗。这种模型在生活中是很常见的,但生活中这种的完美的漫射表面非常少,这就是CG表面看不去是电脑产生的表面的原因。就因为它的速度相当快,而且非常普及,因此它成为实时渲染表面SHADER中最常见常用的一个。
    Gourad Sading是实时渲染技术中的一员,因为它不是基于每像素计算的,而是基于顶点的计算方法,计算顶点色值后在各顶点间运用插值算法来形成多边形。(新一代的显卡都支持实时像素阴影渲染,并且这些成熟的模型都成为了今天的标准,但这不是今天我们讨论的话韪。)
    这个模型大多数情况下在物理上是正确的,这意味着一些重要的物理规则被保留了。其中有一个就是反射光线的能量总和一定小于入射光线的能量。另一条是对不同颜色的吸收原则,比如说过渡色为黑色的物体吸收掉所有的入射光线,并不产生反射(过渡色——一个Lambert模型引申出的重要参数)。

反射的奥秘(3D反射理论概述)nbsp;之二介入

04.Lambert的例子
    上图中的个球体都被赋予了Lambert材质。第1,2个是同一个球休的不同视角。图中红圈表示球上的同一个点。可以看到Lambert材质在不同的视角产生相同的颜色。第3,4个球体是同一个模型。它们反射的光线较前两个少,第三个是BRDF的典型模型——环境色(ambient)。它只是在整个图像中增加了另一种颜色来模拟环境的光照,但这种方法没什么大用,因为它只会让你的图像变的不真实。要模拟环境光的话试着多打几个灯或者干脆用GI。

反射的奥秘(3D反射理论概述)nbsp;之二介入

05.简易的镜面反射模型————Phong,Blinn-Phong.
    上面的图显示的是物理上真实的境面反射--高光。左边一个是Lambert,完美的漫射。红色的入射光线反射后被等量的向四周反射。第二个是完美的镜面反射,渲染器用这个原理来产生完美的镜面,像镜子等。第三个是反射模糊,反射光线由于表面的微小凹突在镜面反射的路线上产生了偏移。现在我们已经了解了许多描述表面上不同部分的模型,上面介绍的只是最简单的几个。还有一些描述不同类型镜面反射的模型(因为许多表面都有不规则的地方)。最简单的几个:
    1975年Phong Bui Tong发明的Phong模型,由于它的速度相当快,成为了CG表面镜面反射应用最多最广泛的模型。它不是物理上精确的模型,你可以设置高光的强度使发送的光线大于接收的光线,而这在现实中是不可能的。但因为CGI是一种艺术创作,那么这也是可行的。

    下图中最左侧的球体是Phong模型,这种模型的一大优点是你可以跟其它的模型混合使用来达到不同的效果。最常见的就是把phong跟Lambert混合产生第二个球体的效果。注意我用了相同的灯光照亮球体(位置,强度)。混合后的结果是高光变亮了。这样做的优点是你可以调整模型中的不同参数(颜色,高光强度....)来达到真实的效果。右面的两张图显示了Phong的高光在入射角上和视角上都是独立的。这个三维图中的白色线框代表了蓝色垂直入射光线在红色板处反射的反射光线的方向和强度大小。入射点周围的半球是完美的Lambert漫射,而由于Phong高光的存在在顶部有一小部分的突起。实质上Phong高光就是在入射光方向上产生了较强的反射,加上入射点周围的高光区,再加上Lambert的漫射区形成了整个球体。当光线从另一个角度入射时只是反射角度依据入射角=反射角定理变化。

反射的奥秘(3D反射理论概述)nbsp;之二介入

    Blinn-Phong模型,也叫Blinn,是Phong模型最常见的变化类型。做为CG领域的先驱,Blinn改进了Phong模型的一些高光上的问题。Blinn模型混合了Lambert的漫射部分和标准的高光,在速度上相当快,因此成为许多CG软件中的默认材质。此外它也集成在了大多数图形芯片中,用以产生实时快速的渲染。如下图:这两个球体使用相同的光照和相同的参数(Blinn和Phong高光的基本参数是相同的)。看上去上图中的Phong球和下图中的Blinn球没什么区别,除了Blinn球看上去更加柔和。但我们来看看不同角度下的反射值(图3,4),就能看到非常明显的区别。在入射角为90度的情况下反射就像是非常柔和的的Phong高光,但角度很小时高光的反射处明显被撕裂。这是因为这两个的BRDF模型的算法有微小的区别,但这有什么用呢?

反射的奥秘(3D反射理论概述)nbsp;之二介入

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------