3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 6202|回复: 13
打印 上一主题 下一主题

[原创] HAWX模型文件研究

[复制链接]

21

主题

631

帖子

3860

积分

游戏精英

Rank: 8Rank: 8

贡献度
781
金元
1240
积分
3860
精华
5
注册时间
2008-10-25
跳转到指定楼层
主题
发表于 2009-3-21 23:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
目前我只把模型的网格和贴图坐标弄明白
其他的还不太清楚
希望这个帖子能起到抛砖引玉的作用

===========================================

HAWX的模型文件是由许多个【块】构成
每一个【块】由【块头】+【块大小】+【内容】构成
以F-16的模型为例,用WINHEX打开




如图
模型网格信息的【块头】是“01 00 00 00 65 00 00 00
而大小是“7C 70 03 00”,大小转为16进制要倒过来
即“0x03707C

将光标移到【块大小】的后一位“28”,点击“转到偏移地址”


输入“3707B”,即【块大小】-1
然后相对与当前位置跳转


这个“39”就是这个【块】的结尾


现在回到之前的位置


这里有9个字节我也不知道是干什么用的


接着是顶点坐标,由 坐标数量+坐标 构成
A5 1B 00 00”,即0x1BA5
转换成10进制就是7077
表示坐标的数量


但这个坐标是有重复的
重复多少就是由具体的结构决定的了
不过这并不影响什么

坐标数量之后就是具体坐标了
坐标是按“x y z x y z···(不太确定这个顺序,也有可能是x z y)”这样不断循环的
循环次数由坐标数量决定

每一个坐标量由4字节的浮点表示
“C7 91 1C 3F” (0x3F1C91C7)就代表0.6115994
“B7 00 2B BE” (0xBE2B00B7)代表0.1669949
“4D 10 87 C0” (0xC087104D)代表-4.22074

这三个就是一个点坐标





循环7077次后(偏移 7077*4*3= 0x14BBC
接下来就是“面/贴图 索引”,依然是 数量+索引 构成
这个“37 09 00 00”(0x937,2359)就是面(三角形)的数量
也等于刚才的点坐标/3


数量之后就是索引了
每一组索引有13个字节,构成方式为3+3+1
以第一组“0000 0100 0200 0000 0100 0200 00”为例



其中前三个就是面的三个顶点
0,1,2就代表刚才顶点坐标的位置(也就是第一个、第二个、第三个顶点)

中间三个也是0,1,2
但意义却不同
它们代表的是贴图坐标的位置

最后一个是0,
我没有怎么管它
按照规律看来应该是“平滑组”

循环2359次后(偏移 2359*13= 0x77CB
然后就是贴图坐标了(数量+坐标)

开头依然是数量“3A 05 00 00”(0x53A,1338)



每一个贴图坐标由2个4字节浮点构成
代表x,y

像顶点坐标那样循环1338次后(偏移 1338*2*4= 0x29D0)
有两种情况

第一种就是如图遇上TMAP



它的作用我不太清楚
期待高人解答
构成是 TMAP+边长+索引(贴图索引)

第二种情况就是没有TMAP
直接遇上NORM(NORM+坐标(数量同顶点))



从字面上理解应该是法线向量
读取跟顶点一样
就不多说了


==========================================
至此,我知道的也说的差不多了
希望有人能根据这些研究出其他部分的含义
早日实现完美MOD
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-5-20 16:39 , Processed in 0.035568 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表