Unity2019场景应该如何烘焙?

很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,好不容易烘焙完了,黑斑、撕裂、硬边、漏光或漏阴影等缺陷遍布,惨不忍睹,整体效果暗无层次,或者苍白无力,灯光该亮的亮不起来,该暗的暗不下去,更谈不上有什么意境,痛苦的折磨,近乎失去了信心,一个团队从建模到程序,都没什么问题,可一到烘焙这一关,就堵得心塞,怎么也搞不出好的视觉效果,作品没法及时向用户交付,小姐姐在这里分享一些自己的经验,希望能帮到受此痛苦折磨的朋友,话不多说,开工!

哦,对了,忘了交代一点,很多朋友总是喜欢追高版本的unity3d软件,以为高版就一定很好,目前Unity3d 2019还处于测试阶段,有人就迫不及待地下载使用,测试版问题很多,用于生产风险很大。unity3d共有三个版本标识,alpha、beta、final,其中alpha是公认的内测版,也就是内部测试版,很多代码都有问题,beta版是公测版,也有不少问题,final版才是最后的正式版,alpha版一般简写为a,例如unity 2019.1.1a8(64-bit)、Unity 2019.2.0a4,这两个版本都是测试版,如果版本标识中有字母b,就是公测版,也不能下载使用,只有带 f 的版本才能用于项目制作,所以现在最高只能使用2018版,很多老司机还在用5.6版,一般都不追高版。

本文和大家一起探讨的实例效果截图(后续会不断更新):
在这里插入图片描述

干活!

● Unity日景烘焙

首先小姐姐以著名的斯蓬扎宫模型场景为例,和大家一起探讨一下正午时分的光影布光方法及烘焙过程。3dMax模型情况如下图所示(由图可见,模型的面数为6万多(见截图左上角),模型一定要采用精简的单面建模,否则这个场景的面数会多达几百万,甚至上千万的面,如此多的面数,Unity是吃不消的,无论烘焙过程的展UV,还是烘焙,甚至烘焙之后的场景运行,都会陷入无休止的等待、假死机和卡顿状态,毕竟烘焙之后也会个场景带来一些负载,而且最终作品要在用户机器或手机上运行,所以从模型的面数方面,必须充分考虑给场景留出足够的裕度)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1. 模型导出
无论你用3dMax、Maya、C4D、Blender或Sketchup建的模型,建议都以fbx格式导出,因为Unity3d对fbx格式兼容的最好,这也是官方的建议,导出时一定要勾选“EmbedMedia”(嵌入媒体),否则在导入Unity时会成为无贴图的“裸模”
在这里插入图片描述
2. 模型导入Unity

⑴ 在导入模型前,按下图所示,勾选掉Unity3d的“Auto Generate”(自动烘焙)选项,好多人一打开Unity3d,不知道怎么啦,总感觉系统处于运算状态,就是因为Unity默认这个选项是勾选的,当导入模型后,什么还没做,就一直陷入莫名的忙机,也是这个原因,所以导入前取消这个选项。
在这里插入图片描述
在这里插入图片描述
⑵ 按下图所示将刚才从3d软件导出的FBX模型拖入Unity3d的Assets文件夹,2017版之后,可能出于别的考虑,Unity不再直接导入材质和贴图,所以很多人发现模型导入后总是无材质和贴图的裸模,这里还需要做一点设置,看下一步。
在这里插入图片描述
在这里插入图片描述
⑶ 选中刚导入的FBX模型,点击inspector面板的Materails按钮,我们发现下面的所有材质都显示“none”,这就是裸模的根源,有童鞋说,前面不是说导出FBX时不勾选“Embedmedia”选项,就会出现裸模,这都勾选了,怎么还是裸模呢?这里需要说一下,如果前面不勾选,这里一定是裸模,但是,勾选之后,还需要一点点设置,否则依然会裸模,也就是前面和现在的设置缺一不可。
在这里插入图片描述

⑷ 继续,此时拉开“location”后面的下拉框,将设置改为第一项,也就是“use external materails(legacy)”,意思是使用外部材质,如下图所示:
在这里插入图片描述

⑸ 接下来还需要将“naming”后面的下拉框改为“from model‘s materails’”,如下图所示,意思是贴图名称取自模型材质,然后点击下面第二张图中所示的“apply”(应用)按钮,这时unity就稀里哗啦地将所有材质和贴图真正导入Unity。
在这里插入图片描述
在这里插入图片描述
⑹ 导入材质和贴图后,unity的assets文件夹中会多出“materails”和与FBX同名的后缀为".fbm"的两个文件夹,一个存放的是材质,一个用来存放贴图,如下图所示。
在这里插入图片描述
⑺ 接下来将assets中的FBX模型拖入“Herarcy(层级面板)”,此时我们可以看到,FBX模型连同材质和贴图被完美地导入了Unity,如下图所示。
在这里插入图片描述
到此模型导入完毕,从下面的图可以看到,在unity3d默认灯光的照射下,场景看起来很苍白,没有一点层次,你的作品功能再强大,场景没有出色的视觉美感,所有功夫全白费,受众是不能接受这样的作品,这就是烘焙的重要意义!考虑到一些童鞋导入模型都成问题,所以前面啰嗦了一堆,熟悉的童鞋可以跳过。接下来就进入unity3d烘焙的正题。
在这里插入图片描述
在这里插入图片描述
3. Unity3d场景布光及光照参数设置

无论是游戏,还是VR场景,烘焙前首先要做的事是灯光的布设,因为烘焙的主要任务是渲染灯光的光影效果,没有灯光,烘焙也就无从谈起。unity3d的布光原则,和其他3D软件并无二样,也就是要根据所要表现的意境和气氛来决定如何打灯。一开始我们就说要烘焙正午时分的场景,下面我们就按正午时刻的光照来布设灯光。大家都知道,正午时分,阳光明媚,光照明暗分明,太阳光近乎垂直投射,但是,这个场景只有顶部一个可进光的开口,其他部分都是密闭的,表现正午的气氛,如果灯光垂直向下投射,阴影会与场景物体重合,所以我们不能垂直打灯,因此将灯光调至与地面夹角大约60-80度,合理的灯光布设是场景光影出彩和营造气氛的先决条件,不同的时间段,灯光角度不同。

⑴ 下面我们用平行光来模拟太阳光,作为主光源(照亮场景的主要光源)照亮场景的部分区域(也就是迎光面),产生光斑,与此同时,在其他区域产生阴影。照亮区和阴影区必须形成强烈的反差,才能显示出阳光的明媚,很多人烘焙的场景平淡,就是因为明暗对比不强烈,该亮的不亮,该暗的不暗。非洲人之所以看起来牙齿很白,是因为黑色脸部的衬托所致,因此要表现优秀的阳光效果,光照明暗反差要大,但暗区也不能死黑一片。Unity一创建新的场景,就默认为我们创建了一盏平行光,现在我们将其调至如下图所示的投射角度,既要考虑让一二层都有阳光投射的痕迹,又不至于灯光垂直入射。
在这里插入图片描述
⑵ 接下来选中平行光(Directional Light),将inspector面板中的灯光强度(intensity)调至2,如下图所示,默认值是1,很多人马上说灯光已经曝光了,但必须调大,因为我们最终要的是烘焙光照,不是实时光照,现在只是实时光照曝光了,因为烘焙光照的算法和实时光照不同,不调大,烘焙后阳光不够强烈。另外,顺便将灯光的模式“Mode”改为“baked(烘焙模式)”,如下面第二张图所示。其他值
在这里插入图片描述
在这里插入图片描述
⑶ 主光源设定之后,我们还需要考虑阴影区域的照亮,虽然阴暗区相对照亮区较暗,但也不能有伸手不见五指的感觉,正午阳光充足的时候,在强光的照射对比下,阴影区会显得比较暗,但物体还是能看清,而且有层次感的,这主要是天光的贡献,因此我们需要开启Unity的天光作为辅助光源来照亮阴暗区域,与此同时,主光源照射到迎光面后,反射到周围的物体上,这些物体又作为二次光源照亮其他物体,多次反弹后到达阴暗区,也起到光照的作用,因此,这个场景的辅助光源除了天光,还有主光源-太阳光多次反弹光,或者说两者的综合效果作为辅助光,共同照亮阴影区。现在我们打开光照面板,点击window/lingting/settings,如下图所示,弹出光照面板,然后按下面第二张图所示,将光照面板的标签拖至inspector面板标签之后,使其和inspector面板并排,这样节省屏幕空间,如下面第三张图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑶ 接下来将光照面板(Lighting)下场景(Scene)标签中的环境反射(Environment Reflections)的反弹次数改为5,这个值越大,光线会充分传递到阴暗区,亮度越亮,但亮度不会超过照亮区。然后将实时光照(RealTime Lighting)下实时全局光照(RealTime Global ILLumination)后的复选框取消勾选,也就只进行烘焙全局光照计算。接着将混合光照(Mixed Lighting)的光照模式(Lighting Mode)后的下拉框中的选项改为烘焙间接光(Baked Indirect),最后再将光照贴图设置(Lightmapping Setings)下的光照运算器(Lightmaper)后的下拉框选项改为渐进式(Progressive),如下图所示。还需要勾选环境遮蔽(Ambient Occlusion),也就是AO,如下第二张图所示,这个选项会在物体或物体间内转角或内转折处产生软阴影,例如墙内凹角,对于表现细节很有帮助。至此场景的辅助光和光照参数就设好了。
在这里插入图片描述
在这里插入图片描述
4. 烘焙模型设置

做完以上的设置之后,还需要对模型进行必要的设置。选中层级面板中所有需要烘焙的模型物体,勾选Inspector面板右上角的Static,将所有物体设定为静态,如下图所示,否则烘焙之后没有阴影和任何效果,切记!然后在assets面板中,选中导入的所有FBX模型,勾选inspector面板模型(model)下的创建光照贴图坐标(Generate Lightmap UVs)复选框,如下第二张图所示,否则烘焙后,模型会遍布黑斑,其实是光照图错乱,因为没有贴图坐标,光照图不知道怎么贴。
在这里插入图片描述
在这里插入图片描述
5. 烘焙

完成上面的设置,就可以进行场景烘焙了。点击下图所示的“Generate Lighting(生成光照)”按钮,即可开始光照烘焙
在这里插入图片描述
说明:最近Unity2019版的正式版发布,由于一直在测试破版的稳定性,所以到现在才更新,请童鞋们谅解!下面就改用2019版来和大家继续探讨Unity3d的光照烘焙。

接上面的步骤,烘焙完成共耗时7.5分钟,且无任何报错提示,如下图所示:
在这里插入图片描述
下面从不同角度来看看烘焙的效果,由下列截图可见,烘焙成果非常干净,未见很多童鞋所说的黑斑、白斑、麻点、漏光、漏阴影、撕裂、破面、硬边等现象,而且烘焙速度非常快。一般情况下,最终的正式渲染烘焙,很多人都得1,2个小时,大部分没经验的童鞋,得5,6个小时,甚至几十个小时,还有的童鞋陷入了无休止的死机状态。无论质量好坏,有的童鞋想看一眼效果,一时半会都看不到,搞得非常心塞。前面说过,我们此次的目标是烘焙正午时分的光照效果,大家看看有没有正午的效果?小姐姐个人认为,整个场景明暗对比强烈,阴暗区域虽然很暗,但是层次还是很清晰的。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们再来看看细节效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面我们用视频看看烘焙的效果

6. 没经验的初学者烘焙的情况

初学者或者没经验的童鞋,将烘焙参数设的稍高一些,即如下图所示,将”Bounce(反弹次数)“设为4,Lightmap Resolution(光照贴图分辨率)”设为20,“Lightmap Size(光照贴图尺度)”设为2048,烘焙时屏幕右下角的ETA(剩余时间,也就是烘焙完成需要的时间)一开始显示为3个多小时,然后不断增加,甚至几十个小时,经历漫长的等待之后,直接心理奔溃,明明做个简单的例子烘焙挺快的,为什么一到实际项目就让人这么心塞呢?
在这里插入图片描述

<think>好的,我现在需要解决用户提出的Unity室外场景烘焙后背光处变黑的问题。首先,我得理解用户的问题具体是什么。用户在烘焙(Bake)室外场景后,背光的部变得很黑,这可能是因为光照烘焙过程中间接光照不足或者设置不当导致的。 接下来,我需要回忆Unity的光照系统相关知识。烘焙光照主要是通过计算静态物体的光照信息,生成光照贴图。背光处变黑可能是因为间接光照没有正确计算,导致阴影区域过暗。可能的原因包括光照参数设置、光照探针、场景中的反射设置等。 然后,我需要查阅相关的引用内容,看看是否有帮助的信息。用户提供的引用中有关于Scene视图的显示模式,比如Shaded、Wireframe等,但可能和光照烘焙的问题关联不大。不过引用[2]提到Scene视图的绘制模式,可能涉及到如何查看光照效果,但具体解决方法可能需要更深入的光照烘焙知识。 接下来,我应该考虑常见的解决方案。首先,检查光照贴图的设置,比如辨率是否足够,是否有足够的采样次数。然后,检查光照探针是否覆盖了需要间接光照的区域,特别是背光处。另外,调整环境光和反射探针的设置,确保间接光照能够正确补充阴影区域的亮度。还有可能需要调整材质的Metallic和Smoothness属性,减少过度的吸收或反射。 此外,可能需要检查是否所有静态物体都正确标记为Static,以便Unity烘焙时处理它们的间接光照。还有,调整Lightmap的参数,如间接光照强度(Indirect Intensity)和压缩设置,确保不会因为压缩导致细节丢失。 最后,生成相关问题,帮助用户进一步排查问题,比如询问如何调整光照探针,或者如何优化光照贴图的辨率等。</think>以下是解决Unity室外场景烘焙后背光处变黑问题的步方案: 1. **检查光照贴图参数** - 提高`Baked Lightmap Resolution`(建议≥40),确保阴影细节保留 - 增加`Lightmap Padding`(建议≥4),避免贴图边缘溢出 - 调整`Indirect Intensity`到1.5-2.0范围,增强间接光照强度[^2] 2. **配置反射系统** ```csharp // 创建覆盖整个场景的Reflection Probe GameObject probeObj = new GameObject("GlobalProbe"); ReflectionProbe probe = probeObj.AddComponent<ReflectionProbe>(); probe.size = new Vector3(200,100,200); probe.mode = ReflectionProbeMode.Baked; ``` - 执行`Bake Reflection Probes`生成环境反射数据 3. **优化光照探针布局** - 使用`Light Probe Group`密集覆盖角色移动区域 - 在建筑物背光面额外添加探针节点 - 验证探针覆盖率:开启`Edit > Render Settings > Light Probe Visualization` 4. **材质属性修正** - 降低`Metallic`值(建议<0.3),避免金属材质过度吸收光线 - 调整`Smoothness`至0.4-0.6范围,保持合理表面散射 - 添加次表面散射效果(适用于植被等有机材质) 5. **环境光配置** - 在`Window > Rendering > Lighting > Environment`中: - 设置`Ambient Intensity`为0.8-1.2 - 选择`Gradient`环境模式,配置深色地面+浅色天空渐变 6. **烘焙后调试** - 在Scene视图使用`Shaded Wireframe`模式检查光照贴图布[^2] - 通过`Lighting > Baked Lightmaps`预览面板对比直接/间接光照 - 对异常区域使用`Contribute GI`局部重烘焙
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值