当前位置: 首页 >> 程序设计 >> 游戏开发 >> Nebula2引擎的模型格式
 

Nebula2引擎的模型格式

作者:      来源:zz     发表时间:2007-07-17     浏览次数:      字号:    

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都已经写好了加载器,我们可以试着自己去使用这些代码来加载模型数据;

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •