Mesh的数据格式


我们在Mstn中表达范围比较大,但是对精度要求不高的模型时,通常会使用Mesh(网格)元素来表达,例如地形,道路模型等。Mesh的本质是通过一小片一小片的面片组合成我们看到的模型的,每个面片的边数没有限制,最少是三条边。用的最多的也是三角面片,也就是Mesh元素中的每一个面是三角形,包含三条边。Mesh元素中至少要包含两部分数据,一部分是Mesh元素所包含的所有顶点组成的一个数组,另外一部分是每个面的顶点索引组成的一个数组。如下是通过keyin命令“analyze element”查看一个简单的三角Mesh元素的数据:

在“Element Information”对话框的左侧树状图中,可以看到在“Mesh Header”下有两个名为“Matrix Header”的子节点,这两个子节点中分别保存了我们前面描述的两部分数。选中第一个子节点下的“Matrix Double Data”可以看到如下所示的内容:

这就是Mesh元素的所有顶点数据,可以看到这个Mesh元素总共包含四个顶点。从第一张图中左侧的Mesh元素也可以看到,这个Mesh元素只有四个顶点。选中第二个“Matrix Header”下的“Matrix IntegerData”可以看到如下所示的内容:

这就是我们前面所说的第二部分数据每个面的顶点索引,从图中可以看到有两行数据。每一行代表Mesh元素的一个面,其中第一行为“2410”,表示第一个面由第一部分的顶点数组中的第241个顶点组成的(注意这里的索引是从1开始的,而第一部分数据从第二张截图中看到的索引是从0开始的),最后的“0”表示结尾。第二行为“4230”,表示第二个面由第423个顶点组成的。这就是Mesh的底层数据格式。