Unity DrawCall优化
来源:互联网 发布:空中救援队 知乎 编辑:程序博客网 时间:2024/05/18 22:54
在进行unity的drawcall优化时, 一个非常核心的原则就是尽量在同屏绘制的对象中,合并贴图。如果两个对象的贴图合并到一张图片中,就可以减少一个drawcall
但是不简单的合并贴图就可以减少drawcall。
- 动态合并只能处理定点不超过900的目标,如果食用了uv, 法线等,则只能处理300以下顶点的。但是如果勾选了static, 静态批次可以合并更多顶点的模型绘制
- 不要使用缩放尺度(scale)。分别拥有缩放尺度(1,1,1)和(2,2,2)的两个物体将不会进行批处理。
- 统一缩放尺度的物体不会与非统一缩放尺度的物体进行批处理。 使用缩放尺度(1,1,1)和 (1,2,1)的两个物体将不会进行批处理,但是使用缩放尺度(1,2,1)和(1,3,1)的两个物体将可以进行批处理。
- 在ngui中,每个Panel的drawcall是独立计算的.
- 同一个panel中,不同widget按照depth而不是z坐标的顺序进行绘制。绘制完一个panel才绘制第二个panel的widget(不完全是, depth是panel 和widget的值加权算出来的,推荐不同的panel使用不同的depth, 否则容易引起widget绘制顺序混乱). 如果公用贴图的widget被使用其他贴图的widget绘制隔开,那么引擎将无法合并drawcall.
- 动态字体的使用也会导致同一图集的dc无法合并
- UIDrawCall.cs中有一个宏,打开后可以把NGUI使用的drawcall详细信息打印在层级面板。#define SHOW_HIDDEN_OBJECTS
- Profiler的GPU Usage > Caera.Render里面会打印出和上面基本等价的信息.
借用别人的经验,举个例子,把使用同一图集的widget放到一个深度范围内.
在同一个Panel之下,假设
深度值区间 (-200, -100),图集1元素使用;
深度值区间(-100, 0),图集2元素使用;
深度值区间(0, 100),图集3元素使用;
深度值区间(100, 200),图集4元素使用;
这样同一个panel最多有4个drawcall
0 0
- unity优化DrawCall
- unity优化DrawCall
- Unity DrawCall优化
- Unity Drawcall 优化
- Unity优化----drawcall系列
- Unity 特效drawcall优化
- [Unity优化]减少DrawCall:批处理
- Unity优化之减少Drawcall
- Unity性能优化之DrawCall
- [Unity优化]减少DrawCall:批处理
- Unity之DrawCall优化感想
- [Unity优化]减少DrawCall:批处理
- DrawCall相关优化(Unity 5.4)
- Unity UGUI的DrawCall优化(一)
- DrawCall 优化
- DrawCall 优化
- drawcall优化
- DrawCall优化
- getString(int resId, Object... formatArgs)的用法
- 转盘
- 编写优质嵌入式C程序
- nodejs 异步io 解决for循环最佳方案
- android dpi dip px
- Unity DrawCall优化
- Linux学习笔记之软件安装管理
- [Android] Android开发优化之——从代码角度进行优化
- iOS-此证书的签发者无效
- android 如何计算PopupWindow宽和高
- session机制详解
- Elasticsearch与Solr搜索引擎区别
- 关于导航栏问题的123
- Access restriction : The type BASE64Decoder is not accessible due to restriction on required library