3.分别指定五个点对应的颜色信息,每个顶点都是按照RGB的顺序。在以上的步骤中请大家注意一点,就是每一步中的数组的类型。
4.指定一个LENGTH数组,它其中的元素是表示将对应的INDICES数组中元素划分为序列时,每个序列的长度。例子中的值是3,就表示INDICES中每三个元素作为一个序列。我们会发现,将INDICES中按照三个一组进行划分,所得到的每组序列刚好是组成一个三角形所需要的三个顶点。
5.使用VertexArray对象来保存顶点位置和颜色信息。VertexArray中三个参数的意义分别为:第一个是创建的对象中元素的个数,第二个是每个元素所包含的子元素数,第三个用来指定每个子元素所占的字节数。
6.使用TriangleStripArray对象创建组成棱锥的三角面。TriangleStripArray是IndexBuffer类的子类,它是根据第二个参数将第一个参数也就是INDICES数组中的元素划为序列,组成三角面。在例子中是将INDICES中元素每三个划分为一个序列,刚好组成一个三角面。但是有时可能不是三个划分的,例如对于正方体我们可以定义LENGTH={4,4,4,4,4,4},这时INDICES中元素就会按照四个一组划分,于是这四个元素中的前三个先组成一个三角面,然后后面的两个元素交换位置和第四个元素再组成一个三角面,例如S=(2,0,1,4)就定义了两个三角面:(2,0,1)和(1,0,4)。另外TriangleStripArray中的INDICES数组也可以隐式声明,即TriangleStripArray(int, int[]),此时第一个参数指定了数组中起始元素,后面的元素依次加1递增。例如LENGTH={3,4},那么TriangleStripArray(0, LENGTH)就相当于指定了INDICES={0,1,2,3,4,5,6}。
7.利用VertexBuffer保存位置和颜色信息,有时也可能会保存法线信息(setNormals)。
8.这是最后一步,使用Mesh建立3D对象。这里Mesh的构造函数有三个参数,第一个是顶点的相关信息,例如位置、颜色和法线等,第二个是组成3D对象的三角面或子Mesh对象(并不是指Mesh的子类或Mesh对象)的信息,第三个是外观,Appearance对象,如果在这里指定为null,那么在建立Mesh对象以后,还可以通过setAppearance设定。