游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2976|回复: 6

[求助] 关于MS3D模型的使用

[复制链接]

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2009-6-5 08:07:00 | 显示全部楼层 |阅读模式
大家好,我最近在使用MS3D文件来渲染一个模型的时候出现了一个问题,老是弹出“version error”对话筐,我的代码如下
//这个是我的头文件信息
//the  header of ms3d
struct    ms3d_header
{
        char      id[10];
        int       version;
};


//以下为加载MS3D时的部分文件
FILE*       pFile   =   NULL;
fopen_s(&pFile, filename, "rb");
if(pFile  ==  NULL)
{
        MessageBox(NULL, "file open failed", "NOTE", MB_OK);
        exit(0);
}

//header information
ms3d_header    header;
ZeroMemory(&header, sizeof(ms3d_header));
fread(&header, sizeof(ms3d_header), 1, pFile);

if(strncmp(header.id, "MS3D000000", 10) != 0)
{
        MessageBox(NULL, "file error", "NOTE", MB_OK);
        exit(0);
}

if(header.version != 4  &&  header.version != 3)
{
        MessageBox(NULL, "version error", "NOTE", MB_OK);
        exit(0);
}

我去调试的时候查看了那header.version,他的值确实不是3或4,而是一个好象没有被初始化的值
请问大家以前遇见过这个问题吗,应该怎么解决,谢谢,谢谢

13

主题

113

帖子

113

积分

注册会员

Rank: 2

积分
113
发表于 2009-6-5 09:05:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

http://www.milkshape3d.com 上面有载入MS3D,渲染的例子,包括源代码.

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-6-5 09:16:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

老兄啊,我就是在上面找的,还和另外的一书一起看的,我觉得它使用STL好点,我就用了,但是不知道怎么的就是不对

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-6-5 22:09:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

我使用了两种方法来读取前14个字节,但是,不知道怎么的前10是可以出来,后4个是乱码,有没有熟悉这文件的高手来说说啊,谢谢了

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-6-7 22:24:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

请问,有没有人遇见过这个问题,我用如下代码读取后不对
typedef struct
{
    char    id[10];                                     // always "MS3D000000"
    int     version;                                    // 4
} ms3d_header_t;

FILE *fp = fopen(lpszFileName, "rb");
if (!fp)
    return false;

size_t i;
ms3d_header_t header;
fread(&header, 1, sizeof(ms3d_header_t), fp);

if (strncmp(header.id, "MS3D000000", 10) != 0)
        return false;

if (header.version != 4)
        return false;
前面的10个字节代表文件的验证码,读取后确实是"MS3D000000",是正确的,后四个字节代表版本号,应该是应该 3或者是4, 但是这样读取后是一个随机值,不知道是怎么的,请大家帮帮忙,谢谢

0

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2009-6-8 19:54:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

要将字节对齐设置为1,否则按照4字节(默认)对齐。

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-6-9 09:55:00 | 显示全部楼层

Re:[求助] 关于MS3D模型的使用

Mackz 大哥 可以说的清楚点吗,不太理解,谢谢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 01:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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