关于Unity 5.x Lightmap Shader 编译过慢的分析
来源:互联网 发布:qq群淘宝客机器人免费 编辑:程序博客网 时间:2024/04/28 06:42
关于Unity 5.x Lightmap Shader 编译过慢的分析
缘起
最近在研究Unity 5.x 的 Lightmapping 与 场景打包的相关的知识。发现坑深啊。关于怎么打包怎么用网上的教程太多了,就不再鳌述,在最后Lightmap和Scene可以通过bundle正常使用,却画不出颜色。翻阅很多的资料知道,这个问题和5.x之后的新功能 Shader Scripping有关。Shader Scripping
这里选项的功能翻查了手册得知是和最终编译剥离冗余Shader和变量相关的设置项。如果选择Automatic, 在编译时,引擎会根据当前场景的Shader引用情况来觉得带哪些Shader功能进游戏,不需要的Shader会在这个环节被自动剥离掉。
因为很多游戏一开始都是个空的Loading界面或者Logo界面,游戏里毫无Lighting, 所以Automatic就认为你完全不需要光照烘焙,智能的把相关Shader都剥离了。(汗)
解决方案就是换智能为手动,这样理论上说妥妥的,因为和Lightmap 相关的代码肯定完整编进去了。然而问题出现了,当选择手动后,编译bundle神慢,慢到神么程度,就是整个进程半个小时都不会动一下。
打开Log日志发现卡死的地方正是在Shader Compiling这一道上,由于没有剥离冗余功能,编译器要带着完整的Shader功能向各个平台版本做转化,不慢就出鬼了。
好在Unity自己也想到大部分走到这一步的人会开始骂娘,于是聪明地在一窜勾选项后面加了个智能检测按钮。
那么现在我们只需要打开一个有最复杂GI Baked场景,然后按一下这个按钮检测一遍,Unity就把你不需要的东西勾掉了。
再次提交编译,编译过程再次回归丝滑。Y >_< Y
- 关于Unity 5.x Lightmap Shader 编译过慢的分析
- Unity lightmap shader
- Unity LightMap Unlit Shader解读
- 关于Unity中LightMap的一些见解
- 关于如何判断是否接收lightmap、接收lightmap的shader和怎么烘焙更快
- <Shader>LightMap光照Shader的实现
- 关于unity shader的StencilBuffer
- 关于unity shader的StencilBuffer
- unity 5.x shader 的默认的白模
- 在shader调用unity内置lightmap和Light Probes
- 【Unity】关于LightMap过度曝光、NormalMap变红
- Unity shader 编译指令
- unity关于程序获得lightmap,光照贴图以及对应的所在光照贴图的位置
- 关于Unity中Shader的内置值
- 关于Unity中Shader的内置值
- 【Unity&Shader】关于变灰Shader的探究
- gradle编译过慢的解决办法
- Shader:Diffuse+CubeMap+LightMap
- NRF51822之发射功率
- Reporting Service 2016 自定义身份验证
- POJ 1002 487-3279
- PathMeasure用法
- 点击咨询弹出扣扣;聊天对话框
- 关于Unity 5.x Lightmap Shader 编译过慢的分析
- 汇编语言 实验10.3 数值显示
- 环信修改头像与名称为自己服务器上的
- 与Eureka相关的那些事
- shell 常用命令
- 从一个Activity跳转到主页指定fragment,再按返回能退出应用
- linux power_supply
- Java FileOutputStream介绍以及文件拷贝示例
- qml截图方法二