游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4084|回复: 1

关于DDS文件的读取

[复制链接]

2

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-3-20 14:30:00 | 显示全部楼层 |阅读模式
最近逆向了一个游戏,解了其资源.
发现很多 没有文件头的DDS文件.  (即前面0x80个字节 1个DWORD 和1个DDSURFACEDESC2 结构).
所以我不知道其图片的长和宽...我手里只有其纹理数据.(我自己可以手动修复..因为长和宽一般是2的倍数..)
但是手动很麻烦... 想用程序批量转换....苦于不知道如何只根据数据 推出其长宽(我不会DX)...
或则能否仅依靠其数据转成bmp格式?
正常dds 文件前面 0x80个字节如下... 两个  00 04 00 00  ,00 04 00 00 (第1行尾)是其长宽
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   44 44 53 20 7C 00 00 00  07 10 00 00 00 04 00 00   DDS |...........
00000010   00 04 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000040   00 00 00 00 00 00 00 00  00 00 00 00 20 00 00 00   ............ ...
00000050   04 00 00 00 44 58 54 35  00 00 00 00 00 00 00 00   ....DXT5........
00000060   00 00 00 00 00 00 00 00  00 00 00 00 00 10 00 00   ................
00000070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
后面跟着就是数据域......
我手里的dds 文件:
没有前面的0x80个字节,只有数据.  最开始的 07 是第7层,0x10 表示第7层0x10个字节
接着 就是 06 00 00 00 ,40 00 00 00  表示第6层,0x40个字节(后面每层字节数是上一层的4倍)
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   07 00 00 00 10 00 00 00  FF BC 10 C6 2D 27 02 00   ........?'..
00000010   C6 39 04 21 FB CF 7F 05  06 00 00 00 40 00 00 00   ?.!?.....@...
00000020   FF BD 00 08 00 00 90 07  A6 31 E3 20 0A FB BE F6   ...???.??
00000030   FF A6 02 00 90 EC 02 38  07 52 E3 20 D6 BF 70 67   .??8.R?挚pg
00000040   FF 70 B7 01 00 00 00 00  65 31 E3 20 A8 6C 55 C6   ?....e1??U?
00000050   FF 9F 40 0E 90 00 00 00  E7 41 04 21 7E 5D 03 08   @.?..?.!~]..

转的时候0层的数据放最上面,7层的数据放最下面,再加上文件头就能显示了.(有几个文件比较好猜知道是1024*768直接就猜出来了,但是其他不是)...
大家一定要帮帮忙啊...有没有办法仅根据数据就能知道dds的长和宽,或则只根据数据就能转成bmp..

2

主题

79

帖子

85

积分

注册会员

Rank: 2

积分
85
QQ
发表于 2010-3-21 14:38:00 | 显示全部楼层

Re: 关于DDS文件的读取


   DDS格式有标准的文档,哪里用象你这样猜?

   去看下DXSDK吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-12 21:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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