Digital lighting and rendering Chapter 2 notes
场景打光是一个反复迭代的过程。
在未准备完毕的场景中打光是浪费时间。
在打光的过程中,初始的渲染应该是 rough draft,而更多的时间会花在改进灯光(revising of lighting)上,直到获取自己满意的效果。这个过程被称为 feedback loop:
在多人合作中,灯光的命名是需要表意的:包括类型,motivation 和其照亮的对象等等。比如如下的例子:
#Specular highlight
#Motivited by a match
#illuminates the character's eyes
Spec_fromMatch_onEyes
#lights bouncing off the red carpet onto the rest of the set
Bounce_fromRedCarpet_onSet
具体的命名规则根据具体的公司来指定。
如果同时存在多个为相同对象服务的灯光,将其打组。
Point Lights,又被称为 omni 或者 omnidirectional light。该光源的特点是:
可以将 Point Lights 想象为一个无限小的电灯泡。
Point Lights 在有遮挡的情况下可以模拟 SpotLights 的效果,但通常不这么做。
Spotlights 与 Point lights 的不同之处在于其光线的发射方向被限制在指定的区域中(通常是一个圆锥体)。我们可以通过旋转 Spotlights 来控制光线发射的方向。该特性允许我们使用 Spotlights 来跟踪或是与指定物体绑定来达到某些特殊的艺术效果。
cone angle
:控制光束的宽度。penumbra angle / falloff / spread angle
:控制光束边缘的 softness
现实中的 spotlight 通常附带额外的四片活动的金属叶片来达到“切割”光束区域的效果:
经过 barn door 剪裁的光束通常呈现为矩形的光束。
在图形学中,Spotlights 可以瞄向(聚焦)指定的区域的特性导致其产生的阴影(depth map shadow)可以被精确并快速的计算。
Driectional Lights,也被称为 distant, direct, infinite,或者是 sun light,主要用于模从非常远的地方射过来的光源(比如直射的阳光)。该类光源有如下特点:
Sky Dome 又被称为 environment sphere,是一种模拟环境光的手段。Sky dome 产生的光线通常非常柔和(也包括引用)。其主要用于:
当 Sky Domes 使用图片进行照明的时候,渲染器会使用图片的颜色来决定光线的 Brightness 和颜色。这种技术被称为 Image-based Lighting(IBL)。
Area LIghts (也称为 rect light)模拟的是面板类型的光源。这种类型的灯光会产生柔和的光线和阴影。常见的应用有:
与点光源不同,Area Lights 的尺寸影响其明亮度与软硬度。通常,越大的 Area lights 越亮越柔和。需要注意的是,尺寸越大的 Area Lights,会产生更多的阴影。如果不希望阴影呈现出颗粒状的样子,需要提高阴影的 sample。
当 Area Light 使用真实世界中的单位(比如 lumens)时,panel 的大小不会影响明亮度。
如果 Area Lights 的尺寸受 UV 控制,那么应该使用 UV 属性而不是 Area Lights 的长宽来控制其尺寸。
Area Lights 有一种很典型的应用:模拟来自窗户的室外填充光。这种灯光在某些软件中被特殊归类,称为 portal light。这种灯光会从 sky dome 的环境贴图中读取数据,可以更好的模拟来自于外部的填充光。
Physically Based Light (也被称为 IES LIghts & photomertic Lights),是基于现实中的真实灯光的数据来创建的光源。其数据来自 IES(Illuminating Engineering Society),不同类型/品牌的灯泡会有不同的表现。此类型的光源通常使用色温(color temperatures)与 Lumens 进行调整。
要保证渲染结果的真实性,光有 Physically Based Light 是不够的,其配套的其他设置也需要保证物理正确,比如:
常见的 3D 软件中都支持自定义的几何体作为光源。此类光源主要通过两种方式来实现:
Light Material
)
需要注意的是,即便几何体自身可以作为光源,但软件自带的光源是进行过渲染器优化的,并拥有更多的选项。因此,几何体自发光尽量用于特定的场合,而可以用默认光源替代的场合尽量使用默认光源。
Ambient LIght 指环绕在我们周围的光源。这种光源来源于各种地方,在不同的角度呈现出不同的照明强度与颜色。真实环境中,Ambient Lights 并不是“平” 且 “均匀” 的。
然而在计算机中, Ambient Light 是非常均匀的。其照明下的所有的表面颜色,强度都一致,导致了场景多样性的缺失。因此,不推荐使用。
Soloing light 指将其他光源隐藏,只测试当前光源的调整手段。其要点在于:
Decay 指光线的强度在传输的过程中会衰减的现象。3D 软件中通常提供了各种不同的 Decay 设置供我们使用。Decay 通常会带一个数值参数(通常被称为 decay 或是 exponent),指光的衰减程度。常用的有三种:
0
1
2
3
当 Decay 值等于 2
时,Decay 被称为 Inverse Square Decay(也称 Quadratic decay)。这种 Decay 是最接近物理正确的 Decay。在这种情况下,光源与目标物体的距离每增加一倍,光线的强度就会衰减四倍。
真实生活中,Decay 主要原因并不是光的能量衰减,而是光的散射造成的。
Decay 通常用于可见的光源,以及应用全局光照的场景中。Inverse Square Decay 作为间接光反射的一部分,可以很好的模拟 indirect light 在场景中反射的现象。
在两种情况下光线不需要 Decay:
真实世界中,反射分为两种:
光线在场景中会综合上述两种方式进行反射。Diffuse 主要呈现的是物体表面的着色;而 Specular 主要呈现的是模拟光源反射的高光。
有两个因素决定了反射的最终效果:
一个常用的技巧是复制光源,并设置其中一个只发射 Diffuse,而另外一个只发射 Specular。这种手法称为 splitting out,允许我们对不同反射的明度,颜色,以及高光的位置或表现进行独立的调整。
1.0-1.2
0.3-0.5
0-0.25
点光源在 3D 中表现为一个点(一个点的像素)。如果是真实的高光,那么高光表现上也只应该有一个点(无限小)。但这样带来的问题是,过于小的高光点是无法进行渲染的。为了修正这个问题,shader 中提供了选项允许我们设置高光反射的尺寸和 softness,使得高光渲染的结果看起来像是高光一样;但这样的结果并不是真实的。
Light Linking 指可以将指定的灯光与指定的物体绑定,使场景中未链接的物体不受该灯光的技术。该技术的好处有:
某些软件会将灯光与阴影关联起来;当取消了 Light Linking 的时候,对应的光源不再对未链接的物体产生阴影。使用 split out 进行灯光的微调时,应设置 shadow linking 不随着 light linking 而改变。