Unity的反射探头针

来源:互联网 发布:java多线程项目实战 编辑:程序博客网 时间:2024/04/30 08:53

反射探头(REFLECTION PROBES)

天空盒的信息不可能包含所有的场景对象,在许多情况下,对象从天空搜集反射信息时可能会被遮蔽,像是室内对象或是在类似桥或是隧道等建筑物里的对象,为了要准确反射这些对象,必须用反射探头针对这些对象取样,这种探头从他们的位置对周围取样并把结果写到方体贴图,可以让周围经过的物体得到环境的反射影像。可以透过GameObject->Light->Reflection Probe来新增一个反射探头,反射探头的位置会决定方体贴图取样的内容,以及反射所看起来的样子,基于效能考虑反射探头越少越好,反射探头并非用来让物理得到精确结果,而是让游戏世界有更好的反射,大多数情况下几个安排妥当的反射探头就很足够了。
这里写图片描述
左图:场景只有预设的反射设定 右图:场景加入了反射探头后的结果

在反射探头的属性面板可以设定Type为实时(Realtime),烘焙(Baked)或自定义(Custom),需要明白的是,实时反射的设定对效能极为不利,每多一个实时反射探头就会多出额外六次的著色运算,因此摆设实时的反射探头应该要有明确的需求,例如反射会闪动的霓虹灯,否则一般来说建议设成烘焙的就够了,效能也会好很多。需要注意的是,只有标记为”ReflectionProbe Static”的对象才会被反射探头取样,从属性接口上静态对象(Static)的下拉选单打勾即可,相反的,实时的反射探头会对所有可见的物体取样,除非在屏蔽(Mask)选单指定剔除它。

下面呢我们就去亲手操作一下。
首先我们在场景中添加两个游戏对象,一个Sphere,一个Cube。然后再创建两个材质球。
第一个命名为Green_Metalic。
这里写图片描述
第二个命名为Mirror。Green_Metalic给Sphere游戏对象,Mirror给Cube游戏对象。
这里写图片描述

然后我们对cube进行缩放操作。我们可以把cube拉大一下。然后把Sphere放在cube的前面。
我们需要再Light目录下面添加Reflection Probe这个反射探头针。
这里写图片描述
这是我们并没有看到任何的反射的效果。
我们注意到Reflection Probe默认是Bake。我们先调成Realtime。
这里写图片描述
我们在Cube上面看到了一个绿色的影子。我们在之前使用Bake的时候,通常要对一个静态的游戏对象,我们把Sphere设置为Static同时设置Reflection Probe为Bake,然后烘焙结束后,那么我们就可以看到绿色的Sphere了。这就是一个简单的反射探针的例子。

0 0
原创粉丝点击