【Unity3D技术文档翻译】第3.6.7.3篇 反射探针高级特
上一章:【Unity3D技术文档翻译】第3.6.7.2篇 使用反射探针
本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Reflection probes】→【Advanced Reflection Probe Features】
反射探针高级特性
下面将介绍两个用于提升反射探针视觉真实性的特性:Interreflections(相互反射) 和 Box Projection(箱体投射)
Interreflections(相互反射)
你可能见过这样的场景:两面镜子很近地面对面放置。两面镜子不仅反射对面镜子,还会反射来自对面镜子中的反射。这会导致无限层级的反射。类似这种的反射,就叫做 Interreflections(相互反射)。
反射探针通过对它们所在位置的视图进行快照,从而创建立方体贴图(cubemap)。然而,只进行一次快照不能实现相互反射,因此为了实现相互反射中的每一层级,必须进行额外的多次快照。
两个对象之间反射能够来回反弹的次数由 Lighting window 中 Environment > Environment Reflections 中的 Bounces 属性控制。该设置用于全局所有探针,而不是针对每个探针。如果反弹数为1,可反射对象在探针看来就是黑的。如果反弹数为2,则只有第一层级的相互反射是可见的;而如果反弹数为3,则有两个层级可见,以此类推。
注意,反弹次数等于探针必须被烘焙的次数,相应所需的烘焙时间也会增加。只有当你知道可反射对象将在一个或者多个探针中清晰可见时,才应该将反弹数设置为大于1。
Box Projection(箱体投射)
通常,反射光立方体贴图被假定为距离给定对象无限远距离。当对象转向时,立方体贴图的不同角度都是可见的,但是不可能靠近或者远离被反射的环境。对于室外场景这很有用,但是对于室内场景就有了局限;房屋内的墙面显然不是无限远距离,因此离得越近,墙面的反射应该显得更大。
Box Projection(箱体投射)选项允许你创建一个有限距离的反射光立方体贴图,因此允许根据距离立方体贴图墙面的远近,来展现不同尺寸的反射效果。周围环境立方体贴图的大小由探针的作用区域决定,即由它的 Box Size 属性决定。例如,有一个反射房间内部的探针,你应该设置它的尺寸以匹配房间的规模。全局上,你可以开启 Project Settings > Graphics > Tier Settings 中的 Box Projection 选项,但是针对每个具体反射探针,当你想要无限远距离的投射时,你可以在反射探针的检查器中选择关闭该选项。
使用 Box Projection(箱体投射)解决了视差问题。如果本文对你有帮助的话,点个赞或者评论一下吧!