Unity3D技术文档翻译征服Unity3d何三思

【Unity3D技术文档翻译】第3.6.7.1篇 反射探针类型

2018-08-26  本文已影响7人  何三思
Unity3D技术文档翻译

上一章:【Unity3D技术文档翻译】第3.6.7篇 反射探针概述(Reflection probes)

本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Reflection probes】→【Types of Reflection Probe】

反射探针类型

正如检查器中可被选择的选项所示,反射探针有三种基本类型(更多细节请看 component reference 一节)。

以上三个类型将在下面做详细说明。

烘焙和自定义反射探针(Baked and Custom Reflection Probes)

一个烘焙(Baked)反射探针是指在 Unity 编辑器中被捕获并存储的反射光立方体贴图,用于接下来的游戏中。一旦捕获过程结束,反射光就会被“冻结”,因此烘焙探针不能实时响应场景中运动物体造成的变化。这么做将比实时探针(能够响应变化)具有更低的处理负荷,在大多数情况下都可以接受。例如,如果只有一个正在运动的可反射对象,那么它只需要反射周围静态环境。

使用烘焙探针

为了让探针表现为烘焙探针,你应该将探针的 Type 属性设置为 BakedCustom(下面会介绍自定义探针的额外特性)。

被烘焙探针捕获到的反射光,只能包含被标记为 Reflection Probe Static 的对象(在对象的检查器的左上角使用 Static 菜单设置)。你还可以在反射光立方体贴图中使用 Culling MaskClipping Planes 属性,来更进一步筛选被包含在内的对象,它的工作方式和摄像机一样(探针本质上就像一个旋转到立方体贴图的六个面,分别进行查看的摄像机)。

当 Lighting window 中的 Auto 选项被开启,烘焙反射光将随着场景中对象位置的改变自动更新。否则,你需要手动点击反射光探针检查器中的 Bake 按钮,来更新探针。(Lighting window 中的 Build 也能触发探针更新。)

无论你使用自动烘焙还是手动烘焙,烘焙过程都将异步进行,而你将继续在编辑器中工作。然而,如果你移动了任何静态对象,改变它们的材质或者外观,烘焙过程将重新开始。

自定义探针(Custom Probes)

默认情况下,自定义探针工作方式和烘焙探针一样,只是他们还有一些额外的选项用于改变某些行为。

自定义探针中的 Dynamic Objects 属性,允许没有被标记为 Reflection Probe Static 的对象被包含进反射光立方体贴图。注意,在烘焙时,这些对象在反射光中的位置仍然是被“冻结”的。

Cubemap 属性允许你分配你自己的立方体贴图,因此可以完全独立于该视点看到的环境。你可以从3D软件中生成一个天空盒或者一个立方体贴图,作为反射源。

实时探针(Realtime Probes)

在许多情况下,烘焙探针很有用,并且具有很好的运行时性能。但是他们有一个缺点,就是不能在游戏中实时更新。这意味着,对象在场景中运动,但是反射光没有跟随它们一起运动。如果觉得这是很大的限制,那么你可以使用 Realtime 探针,它可以在运行时更新反射光立方体贴图。该效果伴随着更高的处理负荷,但是提供了更好的真实性。

使用实时探针

为了在运行时开启探针更新,你应该在 Reflection Probe 检查器中将它的 Type 属性设置为 Realtime。你不需要将对象标记为 Reflection Probe Static,就能够捕获它们的反射光(而在烘焙探针中你需要这么做)。而且,你还可以使用 Culling MaskClipping Planes 属性,来有选择地将一些对象从反射光立方体贴图中排除,它的工作方式和摄像机一样。

在编辑器中,实时探针的工作流和烘焙探针很像,只是它们倾向于更快的渲染。当 Lighting window 中的 Auto 选项被开启,烘焙反射光将随着场景中对象位置的改变自动更新。否则,你需要手动点击反射光探针检查器中的 Bake 按钮,来更新探针。(Lighting window 中的 Build 也能触发探针更新。)

无论你使用自动烘焙还是手动烘焙,烘焙过程都将异步进行,而你将继续在编辑器中工作。然而,如果你移动了任何静态对象,改变它们的材质或者外观,烘焙过程将重新开始(以上两段半和上面“使用烘焙探针”中的表述一模一样)。

注意:目前,只有当被标记为 Reflection Probe Static objects 的对象被移动或者改变外观时,实时探针才能在场景视图(Scene view)中更新。这意味着动态对象不会触发更新,即便这些对象出现在了反射中。当动态对象被改变时,你可以通过选择 Lighting window 中 Build 按钮中的 Bake Reflection Probes 选项来更新反射光。

如果本文对你有帮助的话,点个赞或者评论一下吧!

下一章:【Unity3D技术文档翻译】第3.6.7.2篇 使用反射探针

上一篇下一篇

猜你喜欢

热点阅读