问题、现象
最近公司项目中需要实现 BB (Billboard) 树的功能,并添加 Instancing,但是发现绘制时在部分同学电脑上绘制正常,但是部分同学的不正常
而且会导致绘制的 BB 树闪烁
原因
因为 BB 树合批了,导致 unity_ObjectToWorld 和 unity_WorldToObject 使用了同一批的变换矩阵导致的
所以闪烁的 BB 树的变换矩阵错误了,绘制的位置肯定就不能确定了
解决方法
一般是由于 Unity 项目配置中 开启了 DynamicBatch 导致的:
- ShaderLab 中添加 Tags :
"DisableBatching" = "True"
- 或是 ShaderLab 不添加 Tags 也行,如果说你的项目不需要 unity 的 DynamicBatch 的功能的话,可以通过:
Edit/Project Settings.../Player/Other Settings/Dynamic Batching
的复选框的勾 去掉,如下图