返回「计算机、信息技术与工程」
关于mesh占用内存的问题
本文目录 3 个章节
关于mesh占用内存的问题
note · 我的 UWA 问答 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者;回答保留当时语境,技术结论可能受 Unity 版本、平台和项目条件限制。
问题
在unity2020中能看见mesh中包含那些信息:

(导入骨骼)
这里如果不导入骨骼的话,顶点信息占用空间会减少一倍,请问导入骨骼后顶点信息增加了什么

(未导入骨骼)
然后是第二个问题,在导入骨骼的情况下内存中这个mesh占用了0.6m刚好差不多是上面inspector中显示的两倍,做过其他模型的测试也是两倍

本来以为是开启read/write Enabled的问题,但是发现开不开起这个选项占用内存都不变。这个内存占用是怎么来的,开启read/write Enabled是否具体会造成两倍的内存开销
- 提问者:正二八经
- 提问时间:2021-04-28 19:43:24
我的回答
第一个问题:
Inspector面板的Vertices一栏指的是Mesh的顶点属性(或通道),如果该Mesh包含某个通道的数据,就意味着每个顶点都有一份该顶点属性。

而Unity定义的顶点通道一共有14个:

如果导入了骨骼,多出来的顶点属性是顶点的骨骼权重和骨骼索引。

可通过Mesh.boneWeights()和Mesh.GetBonesPerVertex()访问。
而一个BoneWeight属性存了4个float32和4个int32,一共8x4=32bytes。一个Bones index是一个byte。

(8x4+1)byte/vert x 5512vert = 177.63KB
- 回答时间:2021-04-28 22:49:17
- 最后更新:2021-04-28 23:03:56
- 采纳状态:已采纳
来源与关系
- 上位集合:我的 UWA 问答
- UWA 标签:资源管理
- 原始问题:关于mesh占用内存的问题
- 源页最后更新:2021-11-20 22:28:02