跳到正文
文档
本页内容

关卡的性能预算

手机和电脑能承载多少形状,文本和特效折合多少形状,以及为什么真正拖垮性能的不是数量

设备能承载多少形状

统计的是同一帧中同时存在的形状。数字是近似值,但数量级是对的

设备流畅可玩的极限
手机10002000
低配电脑5000-1000020000-40000
中等电脑(Steam官方调查)50000100000

在你能找到的最弱的设备上测试。在你自己的电脑上肯定没问题,但这说明不了什么

文本和特效

文本和特效也按形状计算

文本:每个文本物体折合2到100个形状。代价取决于字体的复杂程度、字符数和样式数,以及文本是否有动画

特效:物体本身算10个形状,每个粒子再加0.1个形状。一个有一千个粒子的特效大约相当于110个形状

过度绘制

真正的代价不是数量,而是过度绘制。也就是同一个像素被一遍又一遍地重新绘制

由此可知:

  • 一个全屏的半透明填充比一百个弹幕还要昂贵
  • 层层叠加的半透明装饰是你能做出的最昂贵的东西
  • 关卡运行缓慢时,去找覆盖整个屏幕的东西,而不是去数物体
须知

在一块中端移动芯片上,一个1000个物体、过度绘制达到60-70倍的场景,会把95-97%的GPU时间花在像素着色上。一千个分布在屏幕各处的小形状,比十个相互叠加的半透明全屏形状更便宜

不透明和透明

形状可以选择绘制路径:自动、不透明、透明。不透明路径更便宜:GPU会提前丢弃被遮挡的像素

自动会在加载时自行决定一次。它的硬性规则是绝不改变关卡的外观。凡是无法证明为不透明的,都会走透明路径

警告

只有在完全清楚自己在做什么时才手动设置绘制路径。一个实际上并非不透明的物体被强制设为不透明,结果不会变快,只会显示错误

容量提示

保存时,关卡会记录它最繁重的那一帧需要多少个物体。这是给加载器的提示,不是上限。生成器会重新计算它

接下来:移动设备、图片与字体