如果你玩过或看过最新的《漫威蜘蛛侠》游戏,是否想知道游戏中的室内效果是如何实现的?
本文将由游戏开发者Anthelme Dumont来介绍,如何使用Unity 2018.1中的内置组件模拟出相同效果。
本文项目及资源下载地址:
首先,我们使用Unity 2018新创建一个3D新项目,命名为Reflection Probes Fake Interior。
我们需要确保已在项目设置中已经勾选Reflection Probes Box Projection选项。
我们可以点击菜单Edit > Project Settings > Graphics,取消勾选Use defaults选项,然后在所有层级上勾选Reflection Probes Box Projection。
现在开始制作,我们使用了二个通过Asset Forge制作的 3D模型,一个模型用于内部效果,另一个模型用于外部效果,带有多个颜色变体。如下图所示。
[img=0,30][/img]
首先在场景中放置模型,我们需要确保模型都是静态的,点击位于模型对象检视窗口右上角的Static按钮,并选中层级窗口的所有模型进行设置。
然后我们翻转内部模型,这如同现实世界中镜子反射相反一样,项目中,探针反射的画面是相反的。
我们在层级窗口选中外部模型,将其Z轴设为-1。
现在进入本文核心部分:反射探针。我们右键点击层级窗口空白位置,依次选择Light > Reflection Probe,将反射探针放入内部模型中。
勾选Reflection Probe检视窗口内的Box Projection选项。
点击Reflection Probe检视窗口顶部的Size按钮,然后将黄色方块的边缘尽可能移到靠近内部墙壁、天花板和地板的位置。
点击Reflection Probe检视窗口顶部的Origin按钮,移动探针到窗户位置。然后我们为其余窗户重复以上步骤。
如果觉得内部环境太暗,我们可以右键点击层级窗口,选择Light下的任意光线类型进行添加。此项目中,我们为窗户使用区域光,使用点光源作为吊灯。
光线和反射探针部分已经完成,下一步要进行烘焙光照。
我们要为每个窗户创建四边形,右键点击层级窗口,依次选择3D Object > Quad,移动并调整四边形大小,使之完全盖住窗户部分。
窗户需要具有完全的反射效果,所以我们要创建新材质。
右键点击项目窗口,依次选择Create > Material,设置Metallic和Smoothness参数为1。最后将该材质拖到窗户上使用。
在这里,我们编写了一个脚本,即项目文件Scripts目录下的WindowComponent.cs,它可以将内部房屋模型的反射探针复制到所有窗户上。
该脚本非常容易理解,将反射探针作为参数传入,脚本会复制并移动反射探针到正确位置。
这样大功告成了,我们运行场景就能看到不错的伪内饰效果。
最后需要一点小提醒:这种方法快速而简单,但是也存在一些缺点。例如如果旋转其中一个窗户,你会注意到反射效果出现问题,这是因为反射探针制作的立方体贴图,只有固定的旋转角度。
|