关于3D性能的研究

目标平台:ios 13.7

手机型号:iPhone 8

版本:Cocos 3D 1.1.2

重现方式:创建900个小球

有大佬能解释一下为什么 dc 降到 1 以后 FPS 还是下降为 30 帧左右吗?

是因为什么原因掉帧

打开引擎的帧率统计把

你好,已经重新传了一张带引擎统计的图

怎么做的合批?

材质勾选了 USE INSTANCING

材质换成unlit的试试

unlit 会有所提升,可以达到40多帧,就是这种情况不知道是不是属于正常

球体换成立方体呢

差别不是太大

bultin-standard材质里有动态光源的计算
即shading-standard.chunk里CalcDynamicLighting方法
可以去掉这个方法试试,比如重写个effect,复制standard材质然后修改里面CCStandardShading方法
可以节省性能
如果你项目里没这个光源

看起来还是属于面太多了

iPhone 8 上看上去我们 Renderer 的代码损耗还是比较高,这里面逻辑包含

  1. 场景剔除:900 个球计算剔除损耗还是不小
  2. CommandBuffer 录制
  3. Instancing 合批
  4. 执行所有 CommandBuffer

iPhone 8 不支持 jit 导致 JS 运行效率比较低,这个我们会再尝试优化,精简一些逻辑,更多使用 GPU 来做计算

有没可能ip8以后支持jit?