Skip to content

资源限制与优化

Unity 3d 有哪些常用的性能测试工具? - Unity 官方的回答 https://www.zhihu.com/question/31186642/answer/2490285061

1 主场景资源限制

以下为主观测试数据,仅供参考,请给广大低性能机型的用户预留算力空间

- 高性能机型测试机:iPhone 13 Pro(A15、2532x1170、6G 内存)

- 低性能机型测试机:Vivo S10(天玑 1100、2400×1080、8G 内存)

- iPhoneX 为推荐 AR 体验中的最低 iOS 设备,性能实测略高于 Vivo S10

- 小米12、Vivo iQoo8、realmeGT2 等机型为推荐 AR 体验中的高端 Android 设备,性能实测为 iPhone 13 Pro 的 85%

- 华为除部分不支持 AR 能力的机型外普遍好于Android设备

模块维度NativeUnity(高性能)Unity(低性能)
模型模型格式fbx/objfbx/objfbx/obj
面数上限(同屏)单模型20w以内100w以内20w以内
总面数

静态模型:500w

动态模型:300w

静态模型:3000w

动态模型:1800w

静态模型:1200w

动态模型:780w

模型尺寸
单文件模型上限模型数量505030
材质类型无强制要求无强制要求无强制要求
材质贴图尺寸限制1024 x 1024(推荐512 or 1024正方形)1024 x 1024(推荐2的幂指数)1024 x 1024(推荐2的幂指数)
文件格式png/jpg/jpegpng/jpg/jpeg/tgapng/jpg/jpeg/tga
同屏材质数(待验证)3400500
动画2D序列帧动画基础要求不支持(可以自己用shader实现)可以自己用shader实现(可以用第三方插件)可以自己用shader实现(可以用第三方插件)
帧数限制
3D动画基础要求无,同Unity
单模型骨骼上限150200200
图片图片格式png/jpg/jpegpng/jpg/jpeg/tgapng/jpg/jpeg/tga
最大尺寸1024 x 10241024 x 10241024 x 1024
2D素材压缩是否有该功能

- 编辑器导出时自动压缩处理(android:etc ios:pvrtc)

- Unity中可以修改max size & compression配置项

- 编辑器导出时自动压缩处理(android:etc ios:pvrtc)

- Unity中可以修改max size & compression配置项-尽量使用不透明贴图

- 编辑器导出时自动压缩处理(android:etc ios:pvrtc)

- Unity中可以修改max size & compression配置项-尽量使用不透明贴图

多媒体音频格式mp3mp3/wavmp3/wav
大小
其他
视频格式mp4mp4/movmp4/mov
大小(全景)不推荐视内存而定,最多3.5G视内存而定,最多1.4G
大小(α通道)不推荐视内存而定,最多1.5G视内存而定,最多0.7G
大小(4K)不推荐视内存而定,最多6G视内存而定,最多2G
推荐分辨率1080P1080P即可,往上性价比不高1080P即可,往上性价比不高
灯光类型一盏平行光一盏平行光、烘焙点光源一盏平行光、烘焙点光源
特效粒子同屏粒子(待验证)100003000
透明同屏透明对象(待验证)30050
HDR同屏HDR对象(待验证)70001000
物理基础要求部分参数可用,详见文档详见Unity官方文档详见Unity官方文档
刚体数量5010050
DrawCall极限上限建议不要超过5010000后卡死5700后卡死
抗锯齿支持支持
效率内存最大限制同Unity<1000M(内容资源占的内存,不包含算法)<500M(内容资源占的内存,不包含算法)
帧率最高30推荐高于30推荐高于30
包体包体限制(仅渲染)最大50M200M(内容资源,不包含算法)100M(内容资源,不包含算法)
平台限制导入限制

导出限制
编程语言JS/LUAJSJS

2 资源优化

2.1 面数优化

  • 在 Game 窗口的 Stats 渲染统计窗口选项可以查看各项性能开销数值. Tris 代表当前窗口渲染的三角面片数.
  • 通过移动 maincamera 位置可以查看不同角度内容同屏三角面数,建议在运行状态下查看该数值.
  • 素材模型三角面数过大时需要对模型面数进行优化,网上有很多教程和不同方法可以参考这里不做详细解释.

2.2 压缩贴图

  • 在 assets 中找到贴图,点选后右侧 inspector 中会显示贴图各项数据.

  • 将 MaxSize 设置为 1024 或以下尺寸,也可以选择 Compression 进行压缩. 选择完毕后点击 Apply 即可完成 Unity 内的贴图压缩. 此外也可以使用 https://tinypng.com 等工具进行贴图压缩.

2.3 GPU Instancing

  • 为 Materials 启用 GPU Instancing:在 Project window 中选中你的Material,然后在 Inspector 窗口中,勾选 Enable Instancing 复选框。

  • 使用 GPU Instancing 可以一次渲染(render)相同网格的多个副本,仅使用少量DrawCalls。在渲染诸如建筑、树木、草等在场景中重复出现的事物时,GPU Instancing 很有用。

  • 每次 draw call,GPU Instancing 只渲染相同(identical )的网格,但是每个实例(instance)可以有不同的参数(例如,color 或 scale),以增加变化(variation),减少重复的出现。

  • GPU Instancing 可以减少每个场景 draw calls 次数。这显著提升了渲染性能。

  • Unity 只会在 Material 使用的 Shader 支持 GPU Instancing 时,才会显示这个复选框。这些支持 GPU Instancing 的 Shaders 包括:Standard, StandardSpecular 及所有的 surface Shaders。