三国无双模型数据结构。。。

_M1G****开头的块。。。

typedef struct _M1G
{
	char		_head[8]; //_M1G****
	DWORD		_fileSize;
	DWORD		_size; //header size
	DWORD		_partIndex; //0
	DWORD		_partSize;
	_M1GPart	partFM1G;
	_M1GPart	partSM1G[n];
	_M1GPart	partMM1G;
	GM1GPart	partGM1G; //vertices & indexes
	_M1GPart	partLLOC;
	_M1GPart	partONUN;
	_M1GPart	partRTXE;
} _M1G;

typedef struct _M1GPart
{
	char	_head[8];
	DWORD	_size;
	BYTE	pData[_size];
} _M1GPart;

typedef struct GM1GPart //Vertices & Faces
{
	char			_head[8];
	DWORD			_size;
	BYTE			_dxHeader[32];
	DWORD			_partsCount; //==9
	GM1G_SubPart	part1;
	GM1G_SubPart	part2;
	GM1G_SubPart	part3;
	VertexPart		part4;
	GM1G_SubPart	part5;
	GM1G_SubPart	part6;
	IndexesPart		part7;
	GM1G_SubPart	part8;
	GM1G_SubPart	part9;
} GM1GPart;

typedef struct GM1G_SubPart
{
	WORD	_id; //if id==4, vertices; if id==7, indexes;
	WORD	_subPartsCount;
	DWORD	_size;
	BYTE	pData[_size];
} GM1G_SubPart;

typedef struct VertexPart
{
	WORD	_id;
	WORD	_subPartsCount;
	DWORD	_size;
	int		vertexSubPartCount;
	VertexSubPart parts[vertexSubPartCount];
} VertexPart;

typedef struct VertexSubPart
{
	int		zeroFlag;
	int		vertexSize;
	DWORD	vertexCount;
	int		zeroFlag;
	Vertex	vertices[vertexCount];
} VertexSubPart;

typedef struct Vertex
{
	D3DXVECTOR3 xyz; //12
	BYTE skinData[16]; //16
	D3DXVECTOR3 normal; //12
	D3DXVECTOR2 uv; //8
} Vertex;

typedef struct IndexesPart
{
	WORD	_id;
	WORD	_subPartsCount;
	DWORD	_size;
	int		indexSubPartCount; //==vertexSubPartCount
	IndexSubPart parts[indexSubPartCount];
} IndexesPart;

typedef struct IndexSubPart
{
	DWORD	indexCount;
	int		indexSize; //bits
	int		zeroFlag;
	WORD	indexes[indexCount];
} IndexSubPart;


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值