cocoscreator性能指标
Frame time(ms)每⼀帧的时间。《RAIL模型》建议在10毫秒或更短的时间内制作动画中的每⼀帧。从技术上讲,每帧的最⼤预算为16毫秒(1000毫秒/每秒60帧≈16毫秒),但是浏览器需要⼤约6毫秒才能渲染每帧,因此建议每帧10毫秒或者更短。
Framerate(FPS)帧率,也叫每秒传输帧数(FPS:Frames Per Second),是指画⾯每秒传输帧数,通俗来讲就是指动画或视频的画⾯数;每秒钟帧数越多,所显⽰的动作就会越流畅,举个例⼦电影的帧频是24,也就是说1s需要播放24张图⽚,但是实际上在游戏过程中⼀般⼈能接受的最低FPS约为30Hz。帧率也⾮越⾼越好,因为显卡处理能⼒=分辨率×刷新率,分辨率不变的情况下,帧频越
⾼,GPU处理的数据量也会激增,引起卡顿。同理,分辨率也不是越⾼越好。在某些终端的性能⾯板下也会展⽰这三个相关的参数:rt-fps:实时帧率;ex-fps:极限帧率;min-fps:最⼩帧率;
Draw call 。CPU和GPU是并⾏⼯作的,它们之间存在⼀个命令缓冲区。当CPU需要调⽤图形编程接⼝的时候就会往命令缓冲区⾥⾯增加命令,当GPU完成上⼀次渲染命令的时候就会继续从命令缓冲区中执⾏下⼀条命令,命令缓冲区⾥⾯的命令有很多种,
⽽drawcall就是其中的⼀种。CPU在提交drawcall的时候需要处理很多东西,⽐如⼀些数据、状态、命令
等等,有些渲染卡顿问题就是因为GPU渲染速度⽐drawcall的提交速度快,可能上⼀次渲染完了,CPU还在计算drawcall,所以drawcall的性能瓶颈在于CPU。优
化drawcall最有效的⽅法合批渲染,就是把⼤量⼩的drawcall合并成⼤的drawcall,减少drawcall的数量。
cocos creator面试题Tris 和 Verts是渲染的三⾓⾯数以及顶点数,在webgl中只有三种基本图元,分别是点、线段和三⾓形,⽆论多么复杂的模型本质上都是由这三个基本图元绘制⽽来的,⽆论形状多么怪异,它们的本质都是由⼀个个顶点组成,GPU 将这些点⽤三⾓图元绘制成⼀个个的微⼩平⾯,再把这些三⾓⽹格互相连接,就能绘制出各种复杂的物体了;
⼀般来说模型的顶点和三⾓形数越低,模型的复杂度就会越低,所以这两个参数在3D模型中⽐较有参考意义,设计师在输出3D模型的时候⼀般都会帮忙去合并⼀下⽹格。但是在⼤部分情况下,我们都会认为性能瓶颈在drawcall上,⽐如有两种情形,情景⼀是有1000个物体,每个物体的顶点数是10,情景⼆是有10个物体,每个物体的顶点数是1000,哪个情景的性能更好?⾸先我们要明⽩GPU的渲染速度是⾮常快的,渲染10个顶点组成的三⾓图元和1000个顶点组成的三⾓图元通常没啥区别,所以这两种情形中产⽣drawcall更少的情景⼆性能更好。当然如果你在shader⾥⾯对顶点做了⼀些特殊的处理,⽐如复杂的计算啥的,那就得权衡⼀下这两个指标的⼤⼩影响了