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

【Unity3D技术文档翻译】第3.6.7篇 反射探针概述(R

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

上一章:【Unity3D技术文档翻译】第3.6.6.6篇 Light Probe Proxy Volume 组件

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

反射探针概述(Reflection probes)

CG 电影和动画中通常以高度真实的反射光为特点,在为场景中的对象之间创造连通性上,反射光起到重要作用。然而,这些反射光的精准性伴随着处理时间的高消耗,对于电影这不是问题,但是对于实时游戏中的对象,反射光的运用受到了严格的限制。

传统上,游戏使用一种叫做反射光映射(reflection mapping)的技术来模拟来自对象的反射光,它将处理负荷控制在一个可接受的程度。该技术假设场景中的所有对象都“看到”完全相同的周围环境。对于在开阔空间中的游戏对象(比如一辆闪亮的汽车),该技术很有效,但是如果该对象进入不同的环境,效果就不足以让人信服;如果一辆汽车驶入隧道,但是它的窗户上仍然反射的是天空,这就看起来很奇怪。

Unity 通过使用反射探针(Reflection probes)对基础的反射光映射做了改善,通过场景中的战略点(strategic points)对可视环境进行采样。你通常应该在可反射对象的外观显著变化处放置反射探针(比如:隧道、建筑附近,以及地面颜色改变的区域)。当一个可反射对象靠近一个探针,来自探针的反射光采样将被用于该对象的反射光贴图。此外,当有多个探针在附近,Unity 将对它们做插值处理,生成逐渐变化的反射光。因此,在可接受的处理负荷下,反射探针的运用能够创建非常令人信服的反射效果。

反射探针工作原理

对于场景中一个点的视觉环境,可以通过一个立方体贴图(cubemap)来表现。这个概念就像一个盒子,它的内表面绘制了来自六个方向(上、下、左、右、前、后)的扁平的视图图像。

一个天空盒立方体贴图的内表面(移除了前面)

对于一个想展现反射光的对象,它的着色器必须能够使用立方体贴图的图像。对象表面上的每一点,都能“看到”在该表面朝向(表面法线向量的方向)上的一小块区域立方体贴图。着色器使用该点上的立方体贴图颜色,来计算对象表面应该是什么颜色;当一辆闪亮的汽车可能淡出或者颜色变化时,它的镜面材质应该准确地反射颜色变化。

正如上面提到的,传统的反射光映射对整个场景只使用了一个立方体贴图来表现周围环境。立方体贴图可由艺术家绘制,也可以从一个点对场景进行六个方向的快照,每个立方体的一面都有一个快照。反射探针通过允许你在场景中设置许多使用了立方体贴图快照的预定义点,来提升反射光效果。因此,你可以在场景中任何反射光效果明显变化的地方,使用反射探针记录周围环境的视图。

除了该视图点,一个探针还具有一个可视盒体区域。当一个可反射对象在一个探针的区域内运动时,对象将临时获取该探针的反射光立方体贴图。当对象从一个区域运动到另一个区域时,立方体贴图也会相应改变。

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

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

上一篇下一篇

猜你喜欢

热点阅读