Unity3D模型中的SubMesh

简介
在模型中可以有很多网格,一个模型可以由很多个网格构成。因此在Unity3D中一个Mesh网格的构成可以由多个子Mesh组成也就是今天的主角SubMesh,即一个Mesh里面可以有多个SubMesh。
引擎在渲染的时候,每个SubMesh都需要对应一个Material材质球来匹配做渲染,说白了一个SubMesh就是普通的模型,它拥有很多个三角形构成也需要材质球支持以达成渲染。与Mesh类似,SubMesh一样可以拥有动画,另外它还能针对不同部分的Mesh选择有个性化的材质来表现效果,从功能上来看比单个Mesh要灵活的多。
列举需要拆分Mesh为SubMesh的几种情况
- 3D模型制作人员在制作模型的时候,希望一个模型中一部分Mesh用一种材质来表现效果,另外一部分Mesh用另外一种材质来表现效果,这时就需要将模型拆分开来。因为一个Mesh只能对应一个材质球做渲染,一个材质球只能表现一种效果,当他们需要表现两种完全不同的效果时就需要拆分。
- 模型中的某部分的贴图,在众多模型中共同使用的频率比较高,为了不重复制作以及减少重复劳动,那就会让原本可以以整体的模型单独拆分出来一部分公共材质的部分让它们都使用同一个材质球。
- 在制作动画时,由于动画过于复杂,如果使用同一个模型去表现的话,会导致骨骼数量成倍增加。为了更好的节省骨骼的使用量,拆分出一部分模型让他们成为模型的一部分,单独表现动画