是我要求高还是性能差

这是一个空场景,摄像机正对一个角色在循环播动作,但是2-3秒内都会出现好几次次55帧左右的帧率,甚至有52帧的。。
这是PC,6核16G内存。。。我玩大型3D游戏都不卡。。

发布微信看了一下,经常在30·60帧2个帧数频繁跳动,60帧占比大概70%
iphone6s plus

我做了4年U3D了。。最近2年做小游戏,最近2个月才用的cocos3D,就我经验U3D肯定不会出现这样跳帧的问题。
请问大家有测过么。。
这是H5还是引擎的问题,求大佬们指导一下。。。

目前要做大一丢丢的3D游戏,因为相信cocos,所以没用laya,相比cocos,laya的体验太差了,可视化界面都没,对U3D依赖太强,感觉超级水的。但是简单测试后我就害怕了。

现在测试的面数感觉不算特别高,游戏打算同屏至少5个角色,一个角色带武器2000面我感觉不算多的,算上场景,还没算坐骑。。要是算了,感觉数据更可怕了。。。游戏界面也还没显示,算上界面的dc和名字牌那些dc,战斗特效的dc,我真怕到时候做完了玩家玩起来卡项目就废了。。我们公司团队也完了。。

1赞

首先感谢信任,作为引擎方,确实承载很多开发者的期待,我们也很怕坑了你们。

性能问题并不绝对,有很多可能性,比如我们在 v1.1 开启 GPU Instancing 之后,同样模型的骨骼动画同时播放数量上千个也不成问题(PC 设备,配置很一般,i5,显卡也很渣)

不过你录制的 profile 里面,gc 时间损耗很高,不确定原因是什么。因为你的游戏中基本只有渲染,没有太多游戏逻辑,所以 renderer 中 recordCommandBuffer 时间占比是很正常的。gc 时间长的原因是需要调查一下,可以把你的 profile 保存下来发出来。

另外,60fps 上有一点点波动是很正常的,浏览器的调度不如原生 app 稳定,你可以看你的 profile 中第一个 idle 时间很长,这实际上是空闲时间,如果简单计算一下

cpu 占用时间:926ms / 0.2107 = 4395ms
cpu 占用率:4395ms / (4395ms + 11158ms) = 28%

目前的 Frame time 计算是两帧之间的时间,并不是每帧消耗时间,说起来这个不是很合理,我考虑优化一下。结论是,你的游戏在 pc chrome 上性能没有问题,cpu 占用很低,完全可以满帧运行,但是浏览器的调度会导致一定的波动

当然,也不排除,GC 可能导致间歇性的跳帧(由于 GC 单帧时间较长),GC 的时间并不是平摊到每帧的,是间歇性发生,如果垃圾量多每次发生都会影响瞬时帧率。可以发出来我们看看为什么,也可以用 memory allocation profile 来检测。

至于微信端,由于性能检测并不是很可靠,最好是用同设备的浏览器来测试,Chrome 和 Safari 也可以远程调试

1赞

性能方面最近会有一些重一些的 Creator 3D 会上线,到时会发出来给大家看看,相信有对比会更有信心

大佬1.1 还要等几天,图集问题好烦,现在都懒得调九宫格了,每天看的界面都超级丑。。
等1.1出了我在测试一遍看看

论坛已经有 1.1 测试版了

能分享个小蓝人模型吗

这是U3D上面买的。。
mages.zip (1.1 MB)这是

好的··我晚点下来试试

话说这点渲染量不至于触发GC吧? 如果触发了那是不说明底层有泄露了。。。。

是不应该 GC,我们现在没拿到项目也不确定原因是什么

谢谢,试试看

我下周试试1.1 有问题我在发个项目

大佬··我更了1.1 。。。这次gc少了,但是问题变成别的了。。

你这个地面适合开启 instancing,然后不受光的模型全部用 unlit,不要用 standard 材质,太浪费了,这两个材质在填充率高的情况下性能差距非常大

我这就是unit材质的。

把 use batching 改为 use instancing

batching和instancing的性能咋差距那么大,



。。。

gif上传应该压缩了,显示有问题

使用instancing 这个 scene culling依然很高,

两者机制不同,

  • Batching 适用范围更广,但性能损耗更高,比如需要合并 model buffer,更新 uniform。目前的 batching 实现依赖于 uniform,由于部分平台比如 iPhone 6,7 等的 uniform 数量限制,只能合批 10 个左右的模型。
  • Instancing 依赖于 GL 扩展,所以普适性不是最好的,不过目前测下来微信和浏览器都是支持的,原生液没问题。Instancing 不需要 CPU 端做合并操作。

Batching 有很多种方案,目前我们实现的是比较简单的一种,未来还会考虑其他的可能性。

2赞

为什么这个builtin unit 没有 use instancing ?是材质的问题吗?

真机测试性能怎么样?