打包Asset Bundles产生的渲染不一致问题
最近项目打包遇到了真机运行效果与引擎效果不一致问题,打包走的是AssetBundles,这里对问题及解决办法进行一个罗列:
- 打包AB造成模型中切线丢失:
解决方法:将Player Setting中的Optimized Mash Data关闭或者通过脚本或文本编辑器将Project Setting.asset中StripUnusedMeshComponents设为0即可;
参考:Asset Bundle and Mesh Missing Tangents - 打包AB造成shader中自定义的shader_feature丢失问题:
解决方法:创建ShaderVariantsCollection,在引擎内运行场景,导入需要的shader_feature,然后将其拖入Graphics Setting中的下面的Shader Preloading即可; - 打包造成场景内部的雾效、lightmap丢失问题(检查发现,其实是引擎内部雾效、lightmap相应keyword丢失):
解决方法:在Graphics Setting中的Shader Stripping选项,将light mode以及fog mode设置为custom,然后选中实际使用到的按钮即可,尽量只选使用到的,如果全选会造成打包时间超长;
由于精度产生的渲染不一致问题
由精度引起的问题可能性比较多,一般可以考虑为
- 贴图格式分辨率mipmap等设置引起的精度问题;
- shader data type引起的精度问题;
- 骨骼蒙皮计算设置引起的精度问题;
- 等等