DrawCall 优化 .

unity3D 对于移动平台的支持无可厚非,但是也有时候用Unity3D 开发出来的应用、游戏在移动终端上的运行有着明显的效率问题,比如卡、画质等各种问题。自己在做游戏开发的时候偶有所得。对于主要影响性能的因素做个总结。

主要因素有:

1.      Saved by batching 值过大   ---- > 这个值主要是针对Mesh的批处理,这个值越高,应用就越卡

2.     Drawcall 值过大 ---- >  Drawcall 值过大,所需要的 GPU 的处理性能较高,从而导致CPU的计算时间过长,于是就卡了

3.     点、面过多           ---- > 点、面过多,GPU 根据不同面的效果展开计算,并且CPU计算的数据也多,所以效果出来了,但是卡巴斯基

由于 Saved by batching 和 Drawcall 值过大所引起的卡的问题我所做的优化方式有:

1.    对于模型 :Mesh 合并,有个不错的插件(DrawCall Minimizer   --->  直接上Asset Store 下载即可,免费的,而且有文档,很容易上手)

2.    对于UI  :  尽量避免使用Unity3D自带的 GUI 换用 NGUI或者EZGUI;因为这两个UI插件对于UI中的图片处理是将UI图片放置在一个 Atlas 中,一个 Atlas 对应一个Drawcall

3.   对于灯光: 可以使用 Unity3D 自带的  Lightmapping 插件来烘焙场景中的灯光效果到物体材质上

4.  对于场景: 可以使用 Unity3D 自带的 Occlusion Culling 插件把静止不动的场景元素烘焙出来

4.   对于特效:尽量把材质纹理合并

对于Unity3D 在移动终端上支持的Drawcall 数到底多少,主要是跟机子性能有关的,当然也不是说值小性能就一定没问题(本人亲测,也有17就卡的,主要是模型材质纹理过大所引起的),目前我做的是70左右的,还OK,挺正常的

http://blog.csdn.net/jeksonal/article/details/8804196

DrawCall 优化 .,布布扣,bubuko.com

时间: 2024-12-07 21:41:03

DrawCall 优化 .的相关文章

drawcall优化

Unity(或者说基本全部图形引擎)生成一帧画面的处理过程大致能够这样简化描写叙述:引擎首先经过简单的可见性測试,确定摄像机能够看到的物体,然后把这些物体的顶点(包含本地位置.法线.UV等),索引(顶点怎样组成三角形),变换(就是物体的位置.旋转.缩放.以及摄像机位置等).相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好.然后通知图形API--或者就简单地看作是通知GPU--開始绘制,GPU基于这些数据.经过一系列运算.在屏幕上画出成千上万的三角形.终于构成一幅图像. 在Unit

NGUI UI DrawCall 优化

首先要明确Unity中的drawcall定义: 每次引擎准备数据并通知GPU的过程称为一次Draw Call. Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置.法线.UV等),(顶点如何组成三角形),变换(就是物体的位置.旋转.缩放.以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开

Egret 组件顺序排列时的 drawCall 优化思路

竖屏项目中 垂直排序,或者 横向排序 的scoller 或者 list 组件可用 思路 :  滚动过程中, 超出 用户可视区域的部分 组件进行掩藏, 滚动到可视区域前后一定范围再进行显示 滚动事件: this.MainList.addEventListener(eui.UIEvent.CHANGE, (e) => {}, this); 获取Scroller中某个子组件 相对于 用户可视区域的 坐标 let point = self.MainListBox.localToGlobal(item.x

粒子特效优化

Unity特效资源优化小技巧 https://baijiahao.baidu.com/po/feed/share?wfr=spider&for=pc&context=%7B%22sourceFrom%22%3A%22bjh%22%2C%22nid%22%3A%22news_3503093625163097195%22%7D Unity3d特效DrawCall优化介绍 http://blog.csdn.net/github_32062421/article/details/49203501

DrawCall

[精]draw call 理解和优化 http://bubuko.com/infodetail-387899.html DrawCall 优化 . http://www.cnblogs.com/softimagewht/p/3812978.html U3D DrawCall优化手记 http://www.cnblogs.com/ybgame/p/3588795.html [风宇冲]Unity3D性能优化:DrawCall优化 http://blog.sina.com.cn/s/blog_4711

[Unity优化] Unity CPU性能优化 (难度3 推荐4)

原文地址: http://www.cnblogs.com/chwen/p/4396515.html 前段时间本人转战unity手游,由于作者(Chwen)之前参与端游开发,有些端游的经验可以直接移植到手游,比如项目框架架构.代码设计.部分性能分析,而对于移动终端而言,CPU.内存.显卡甚至电池等硬件因素,以及网络等条件限制,对移动游戏开发的优化带来更大的挑战. 这里就以unity4.5x版本为例,对Unity的优化方案做一个总结,有些是项目遇到的,也有些是看到别人写的不错拿来分享,算作一个整理,

draw call 理解和优化

draw call是openGL的描绘次数(directX没怎么研究,但原理应该差不多)一个简单的openGL的绘图次序是:设置颜色→绘图方式→顶点座标→绘制→结束.每帧都会重复以上的步骤.这就是一次draw call 如果有两个model,那么需要  设置颜色→绘图方式→顶点座标A→绘制→结束.设置颜色→绘图方式→顶点座标B→绘制→结束.两次draw calls;也就是说在openGl绘制前,如果色彩通道(color filter),绘图方式(shader),顶点座标(model)不同的情况下

Laya3D优化思路

DrawCall优化思路: 1:避免交叉渲染(UI) 相邻相同的图集在渲染时会自动合并,这样可减少DrawCall.所以尽量要保证图集的图片渲染顺序是挨着的.在LayaUI编辑器中,如果相同颜色的圆点被交叉打断,就会增加DC,就需要调整层次关系,让相同颜色圆点的资源顺序排列.此外,尽量保证同一个面板中的所有资源用一个图集. 2:复用3D材质. 3D游戏的DrawCall,Laya3D会对相同的材质进行合并优化. 3:控制常用模型的面数. Laya3D会对20个面以下的相同模型,自动动态合并(例如

Unity3d开发(十九)调整SortingOrder解决UGUI中粒子层级问题

为了做出更酷炫的的UI效果,通常要在UI中加入粒子效果.但与纯2D的UI动画或Spine不同,粒子在场景中制作,会存在与UI的穿插问题.本文探讨如何更改特效或UI的SortingOrder避免穿插. 前提条件 首先,Canvas的类型是一切的基础,我使用的Canvas是Screen-Space ,所有UI通过一个正交摄像机照出来.制作UI通常使用这种模式,本文不讨论其他情况. 核心原理 通过更改渲染的顺序来改变遮挡关系.一方面UGUI会根据Hierarchy中的控件顺序进行排序.因此对于Anim