解析d3d Xfile文件出错了!!!

http://hi.baidu.com/zyb_debug/blog/item/f70d834dbd626ff0d62afc0a.html
复习了下mesh,在max上建了个模型,然后在程序中我想看看效果。

半个小时候,我无语了。

3dsmax中的 茶壶

 

 

下面是我程序中的茶壶

关键代码

 1 hr  =  D3DXLoadMeshFromXA(
 2     " teapot.X " ,
 3    D3DXMESH_MANAGED,
 4    DXUTGetD3D9Device(),
 5     & adjBuffer,
 6     & mtrlBuffer,
 7     0 ,
 8     & numMtrls,
 9     & mesh);
10
11 if  (FAILED(hr))
12 {
13   ::MessageBoxA(0,"load mesh failed",0,0);
14   return false;
15}

16
17
18 if  (mtrlBuffer  !=   0   &&  numMtrls  !=   0 )
19 {
20   D3DXMATERIAL* mtrls = (D3DXMATERIAL*) mtrlBuffer->GetBufferPointer();
21   for(int i = 0;i<numMtrls;i++)
22   {
23    mtrls[i].MatD3D.Ambient = mtrls[i].MatD3D.Diffuse;
24    Mtrls.push_back(mtrls[i].MatD3D);
25     if (mtrls[i].pTextureFilename != 0)
26     {
27      IDirect3DTexture9* tex = 0;
28      HRESULT hr = D3DXCreateTextureFromFileA(
29       DXUTGetD3D9Device(),mtrls[i].pTextureFilename,&tex);
30      Textures.push_back(tex);
31     }

32     else
33     {
34      Textures.push_back(0);
35     }

36
37   }

38}

39
40 // render的时候
41
42 for  ( int  i  =   0 ;i < Mtrls.size();i ++ )
43 {
44
45   DXUTGetD3D9Device()->SetMaterial(&Mtrls[i]);
46   DXUTGetD3D9Device()->SetTexture(0,Textures[i]);
47
48  
49   mesh->DrawSubset(i);
50}

51
Posted on 2009-08-15 14:03 zyb_debug 阅读(842) 评论(3)   编辑  收藏 引用

你可能感兴趣的:(解析d3d Xfile文件出错了!!!)