光照与渲染(七)- 反射

反射源(Reflection Source)

默认的情况下,场景中的对象会使用Unity内建的标准着色器(Standard Shader)来着色,标准着色器是一个基于物理的着色器(PBS),它会透过模仿真实世界的物理特性像是反射或能量传递等来模拟真实世界里光在材质上的表现。

当使用标准着色器时,每一个材质都会具有一定程度的高光反射(specularity)或金属反射(metalness)属性,在没有强大的硬件来处理实时光线追踪反射的情况下,我们得依赖预先计算着色反射,我们使用了一个由六张描述天空的图片所组成的立方体贴图(Cubemap)或使用从定点搜集环境信息的反射探头(Reflection Probe)产生的所需纹理,然后通过材质的Shader与其他光和表面数据混合运算来模拟我们真实世界看到的反射效果。



默认情况下,在你场景中高度高光的材质或金属光泽的材质将会反射天空盒,由Environment Lighting面板中的Reflection Source属性所定义。这种表现可以通过选择一个不同的Reflection Source,或者通过往你的场景中添加一个反射探针Reflection Probe

默认情况下,Unity场景中的对象将会反射天空盒,然而,你可以在Lightning窗口中设置Reflection Source 属性来全局地改变这种表现,或者更改天空盒,或者使用一个自定义的Cubemap,这个Reflection Source可以被认为是一个场景范围的立方体贴图,它在一个场景中能够被所有对象使用,除非被覆盖------通过添加一个反射探头Reflection Probe

反射探头(Reflection Probes)

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



左图:场景只有预设的反射设定 右图:场景加入了反射探头后的结果

在反射探头的属性面板中我们可以设定Type为实时(Realtime),烘焙(Baked)或自定义(Custom),需要明白的是,实时反射的设定对性能极为不利,每多一个实时反射探头就会多出额外六次的着色运算,因此摆设实时的反射探头应该要有明确的需求,否则一般来说建议设成烘焙的就够了,性能也会好很多。

需要注意的是,只有标记为”ReflectionProbe Static”的对象才会被反射探头取样,从属性接口上静态对象(Static)的下拉选单打勾即可,相反的,实时的反射探头会对所有可见的物体取样,除非你在屏蔽(Mask)选单指定剔除它。

下一篇:光照与渲染(八)-环境光照(Ambient Lighting)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SwordMaster8060

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值