SuperAPI AI 工具集

optimize-scene

编程与开发

查看项目

更新于 10-16 05:05

技能介绍

用途:为 Decentraland 场景做性能优化,在打包发布前控制三角形、实体、物理体、材质、贴图与文件体积等资源。

主要能力: 一、场景上限。三角面 n×10,000、实体 n×200、物理体 n×300 随地块线性增长;材质 log2(n+1)×20、贴图 log2(n+1)×10 对数增长;高度上限固定 330 m,超过约 200 m 可能出现多人同步问题。文件限制为每地块 15 MB、总量 300 MB、每地块 200 个文件、单文件 50 MB,仅统计实际部署上传内容,用 .dclignore 排除工作文件。除 MB 限制外均可超出但不建议。 二、移动端另有不随地块缩放的固定软/硬限制,例如三角面 1,000,000/1,200,000、实体 4,800/6,000、材质与贴图 400/500、绘制调用 1,000/2,000、性能 90%/85%。灯光与粒子按编写数量计费,粒子运行时按每发射器 5,000、每场景 50,000 截断。可用 Creator Hub 预览中的手机二维码配合 Scene Limits Preview 测量。 三、实体优化。动态生成/销毁用对象池;用 engine.removeEntity 清除不再使用的实体;用父子层级代替逐个 Transform。重复模型默认一个 .glb 配多个实体(引擎按源去重下载与内存),但不会减少绘制调用与材质;只有把多个网格在 Blender 中合并才能降低 renderer 数,代价是文件体积、内存与剔除粒度。 四、三角面与贴图。低模参考:小道具 100-500、中型 500-1,500、大型建筑 1,500-5,000、主角件至多 10,000;按距离切换 LOD;简单形状用 MeshRenderer 图元。贴图需为 2 的幂,最大 1024×1024(转换器会降采样),推荐 512 用于多数物体、1024 用于主角件,可用图集与共享贴图,背面剔除默认开启,仅在双面可见时关闭。 五、系统与加载。避免逐帧新建对象(用模块级常量);按 dt 累加节流昂贵操作;不再需要时 engine.removeSystem。用 AssetLoad 预加载非启动必需资源,回调按单个资源触发,需依 state.asset 分派,没有“全部完成”事件,且不支持卸载。

使用方式:Creator Hub 中 Play Options 勾选 Compress Assets 可在本地模拟服务端资源包转换;CLI 可用 npm run start -- --asset-bundles。

限制与说明:资料未提供该技能的安装命令、收费与官方文档链接等信息。