2.4.6与3.3.2动态加载fbx性能对比

开发中遇到了性能问题,也正好简单对比下 3.3.2 和 2.4.6的fbx动态加载性能,这个对比没有多少实际意义

场景:在进入游戏后,fbx如果不进行预加载,经过在ios源生的测试,动态加载fbx会导致游戏阻塞一下,在web中阻塞时间很短,但也可以感知到。

使用blender导出的fbx
FantasyIslandChallenge.fbx.zip (1.1 MB)
顶点数量 ~32k
fbx不使用任何贴图

3.3.2demo
test_fbx.zip (2.7 MB)

对比逻辑:
将fbx导入项目,制作成prefab,在进入游戏后,使用计时器延时动态加载prefab

3.3.2导入fbx,其中材质是带锁无法修改的,默认都是buildin-standard,

fbx内mesh全部开启 caseshadow receiveshadow

关闭所有灯光选项


------------------------------------------2.4.6 ------------------------------------------

fbx内mesh节点全部开启接收阴影、生成阴影,材质默认为buildin-phone

将光照选项全部关闭,材质为phone

全部关闭,将fbx内的所有材质effect 切换为 buildin-unlit

顺手的对比,不严谨的地方还请不吝指正

所以结论是 3.3.2 版本加载速度变慢了。是这个结论吧?我反馈一下。

时间占用主要在启动流程的 shader 创建上,3.4 的初始 effects 数量和复杂度比 2.x 要高很多,这块后续计划优化为按需加载,去除 builtin-effects