默认计划
2326人加入学习
(3人评价)
【唐老狮】Unity中的UI系统之NGUI
价格 ¥ 149.00
承诺服务
该课程属于 Unity3d实战就业路线课程套餐
请加入后再学习

所以同一个Panel下的UI最好打包成同一个图集,这样的话在有不同UI层级的需求的时候也不用担心DrawCall?

[展开全文]

//DrawCall 概念
//就是CPU(处理器)准备好渲染数据(顶点,纹理,法线,Shader等等)后//告知GPU(图形处理器-显卡)开始渲染(将命令放入命令缓冲区))的命令
//简单来说:一次DrawCall就是 cPU准备好渲染数据通知 GPU渲染的这个过癌一一唐老狮
/如果游戏中DrawCall数量较高会影响CPu的效率
//最直接的感受就是游戏会卡顿
//举例说明以拷贝文件来进行类比
//假设我们创建10000个小文件,每个文件大小为1kb,然后把这些文件拷贝到另一个文件夹中

//你会发现,即使这些问价加起来不超过10MB,但是拷贝花费的时间是很长的
//如果我们单独创建1个10NB的文件拷贝到另一个文件夹,基本可以瞬间拷贝完毕

//为什么会这样呢?
//因为每一个文件赋值动作都需要很多额外的操作,比如分配内存,创建数据等等

//这些操作就会带来一些额外的性能开销
//简单理解文件越多额外开销就越大
//渲染过程和上面的例子很类似,每次DrawCall,CPU都需要准备很多数据发送给GPU
//那么如果DrawCall越多那么额外开销就越大,其实GPu的渲染效率是很强大的,往往影响渲染效率的//都是因为CPu提交命令的速度
 

#region知识点三制作UI时降低DrawCall的技巧

//1.通过NGUI Panel上提供的DrawCall查看工具

//2.注意不同图集之间的层级关系(deep中间别的图集)
//3.注意Label的层级关系
#endregion
 

[展开全文]

DrawCall

1、DrawCall的概念

字面理解:绘制呼叫,表示CPU通知GPU,其概念就是CPU准备号渲染数据(顶点、纹理、法线、Shader等等)后,告知GPU开始渲染(将命令放入命令缓冲区)的命令

简单来说:一次DrawCall就是CPU准备好渲染数据通知GPU渲染的这个过程

如果游戏中DrawCall数量较高会影响CPU的效率,最直接的感受就是游戏会卡顿

举个例子,以拷贝文件那来类比,假设创建10000个小文件,每个文件大小为1kb,然后把这些文件拷贝到另一个文件夹中,你会发现,即使这些文件加起来不超过10MB,但是拷贝花费的事件是很长的,但如果单独创建一个10MB的文件拷贝到另一个文件夹,基本可以瞬间完成。

这是因为每个文件赋值操作都需要很多额外的操作,比如分配内存,创建数据等等,这些操作会带来额外的性能开销,文件越多开销越大。

渲染过程类似,每次DrawCall,CPU都需要准备很多数据发送给GPU,那么如果DrawCall越多那么额外开销就越大,其实GPU的渲染效率很强,而影响渲染效率的都是CPU提交命令的速度,如果DrawCall太多,CPU就会把大量的事件花在提交DrawCall上,造成CPU过载,游戏卡顿

2、如何降低DrawCall数量

在UI层面上,通过小图合成大图——>即多个小DrawCall变成一次大DrawCall(图集)

3、制作UI时降低DrawCall的技巧

(1)注意不同图集之间的层级关系

(2)注意Label的层级关系

[展开全文]

如果游戏中drawcall数量较高会影响cpu的效率

 

UI层面上降低drawcall,打图集,即多个小drawcall变一次大drawcall

 

制作UI时降低drawcall的技巧

1.注意不同图集之间的层级关系

2.注意label的层级关系

 

 

 

[展开全文]

授课教师

游戏开发前端主程

课程特色

视频(53)
下载资料(44)

学员动态

猫小叔 加入学习
Astra 加入学习
839e4b8522eb9e66 加入学习
瑛丶樱 加入学习