游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1769|回复: 3

求助direct3D加载X文件的问题

[复制链接]

22

主题

98

帖子

98

积分

注册会员

Rank: 2

积分
98
QQ
发表于 2009-4-7 13:06:00 | 显示全部楼层 |阅读模式
小弟初学direct3D,试着导入X模型文件时出了问题。模型是我从一个游戏里提取出来的,用directx viewer查看时一切正常,可是我自己导入的时候渲染出来的各个网面却不如原来在directx viewer里看到的细致(原来的网面上还有点条纹图案,而我的只是单色),而且有些模型渲染之后还丢失了一些网面,出现一块黑色。

我是按sdk里面那个教程来加载的,问题出在哪里呢?

我的代码:

加载:

void model::loadX(int iddf,char *path,LPDIRECT3DDEVICE9 *g_D3DDevice)
{
        idf=iddf;
        g_D3DD=g_D3DDevice;
        if(FAILED(D3DXLoadMeshFromX(path, D3DXMESH_SYSTEMMEM,
                *g_D3DDevice, NULL, &g_matBuffer, NULL,
                &g_numMaterials, &g_model))) return;
       
           g_matList = new D3DMATERIAL9[g_numMaterials];
           g_textureList  = new LPDIRECT3DTEXTURE9[g_numMaterials];
          
           D3DXMATERIAL* mat = (D3DXMATERIAL*)g_matBuffer->GetBufferPointer();
          
           for(DWORD i = 0; i <g_numMaterials; i++)
           {
                   g_matList = mat.MatD3D;
                   //g_matList.Ambient=g_matList.Diffuse;
                   if(FAILED(D3DXCreateTextureFromFile(*g_D3DDevice,
                           mat.pTextureFilename,
                           &g_textureList))) g_textureList = NULL;
      }
}

渲染:

void model::show()
{
        for(DWORD i = 0; i < g_numMaterials; i++)
        {
                (*g_D3DD)->SetMaterial(&g_matList);
                (*g_D3DD)->SetTexture(0, g_textureList);
               
                g_model->DrawSubset(i);
    }
}

22

主题

98

帖子

98

积分

注册会员

Rank: 2

积分
98
QQ
 楼主| 发表于 2009-4-7 14:05:00 | 显示全部楼层

Re:求助direct3D加载X文件的问题

刚才发现是加载纹理失败了,可是我不知道为什么会失败...哪位高手能帮帮小弟?

1

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2009-4-7 15:58:00 | 显示全部楼层

Re: 求助direct3D加载X文件的问题

有可能是纹理路径不对。
建议把模型放在根目录下试试。

22

主题

98

帖子

98

积分

注册会员

Rank: 2

积分
98
QQ
 楼主| 发表于 2009-4-7 16:38:00 | 显示全部楼层

Re:求助direct3D加载X文件的问题

谢谢楼上!我把路径改了之后纹理是有了,但还是有几个面不知道为什么不能被difuse光照亮,我试着改了下ambient光,发现ambient是什么颜色它就是什么颜色,如果把ambient设成白色的话大致能正常显示,但是颜色变的非常不自然.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 17:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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