Nebula2引擎的静态模型格式,一种是ASCII文本格式的,后缀名为n3d2;另外一种格式为二进制的,后缀名为nvx2;为了能手动制作些简单的模型或者了解模型的加载过程,都需要了解模型的格式,以下做一个简述:
以plane.n3d2文件为例:
type n3d2
numgroups 1
numvertices 4
vertexwidth 5
numtris 2
numedges 0
vertexcomps coord uv0
g 0 4 0 2 0 1
v -1.000000 1.000000 0.500000 0.000000 0.000000
v 1.000000 1.000000 0.500000 1.000000 0.000000
v 1.000000 -1.000000 0.500000 1.000000 1.000000
v -1.000000 -1.000000 0.500000 0.000000 1.000000
t 0 2 1
t 0 3 2
第一行说明是n3d2的文本格式,第二行,说明模型有多少组;第三行说明模型有几个顶点;第四行说明用几个数来说明一个顶点;
第五行说明有这些顶点构成几个三角形,第六行说明这些点构成多少边缘;第七行,数据说明顶点的格式;第八行,以g开头,意思是说
这行说明一组模型的详细信息;第九行说明顶点的详细信息;第十行以t开头,是对顶点的索引的详细说明,最后 应该有以e开头的一组数据
主要用来说明构成三角行后的边缘的具体信息;一般当渲染方式以Triangle Fans方式渲染时,才可能拥有这些信息;
其中第七行的数据,是用位信息来表示顶点的格式,如下:
Coord = (1<<0)
Normal = (1<<1)
Uv0 = (1<<2)
Uv1 = (1<<3)
Uv2 = (1<<4)
Uv3 = (1<<5)
Color = (1<<6)
Tangent = (1<<7)
Binormal = (1<<8)
而以g开头的组信息,依次代表以下意思
int vertexRangeFirst //这一组的第一个顶点
int vertexRangeNum//这一组有多少个顶点
int firstTriangle//这一组第一个三角形
int numTriangles//有多少个三角形
int firstEdge
int numEdges
对于文件的加载,对n3d2和nvx2都已经写好了加载器,我们可以试着自己去使用这些代码来加载模型数据;





