X文件能够加载但是不能够渲染 有几种可能的问题啊?
时间:2011-08-06
来源:互联网
只有个白色的透明的物体,这个x文件没有纹理文件,只有材质
一下是自己写的模型类里面的两个函数,真的不知道问题出在哪里。。希望大虾帮忙。。
CXModel的成员表为:
LPDIRECT3DDEVICE9 m_device;
ID3DXMesh* Mesh;
D3DMATERIAL9* Mtrls;//材质数组
LPDIRECT3DTEXTURE9* Textures;//纹理指针数组
DWORD m_numMtrls;//材质数目
C/C++ code
一下是自己写的模型类里面的两个函数,真的不知道问题出在哪里。。希望大虾帮忙。。
CXModel的成员表为:
LPDIRECT3DDEVICE9 m_device;
ID3DXMesh* Mesh;
D3DMATERIAL9* Mtrls;//材质数组
LPDIRECT3DTEXTURE9* Textures;//纹理指针数组
DWORD m_numMtrls;//材质数目
C/C++ code
bool CXModel::LoadXFile(char *file) { HRESULT hr = 0; //加载x文件 ID3DXBuffer* adjBuffer = 0;//邻接信息 ID3DXBuffer* mtrlBuffer = 0; DWORD numMtrls = 0; D3DXMATERIAL* mtrls=0; hr = D3DXLoadMeshFromX( file, D3DXMESH_MANAGED, m_device, &adjBuffer, &mtrlBuffer, 0, &numMtrls, &Mesh); m_numMtrls=numMtrls; if(FAILED(hr)) { ::MessageBox(0, TEXT("加载x模型失败"), 0, 0); return false; } if( mtrlBuffer != 0 && numMtrls != 0 )//如果材质缓存不为空 { Mtrls=new D3DMATERIAL9[numMtrls]; Textures=new LPDIRECT3DTEXTURE9[numMtrls]; mtrls = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer(); for(int i = 0; i < numMtrls; i++) { //mtrls[i].MatD3D.Ambient = mtrls[i].MatD3D.Diffuse; Mtrls[i]=mtrls[i].MatD3D ; if( mtrls[i].pTextureFilename != 0 ) { IDirect3DTexture9* tex = 0; D3DXCreateTextureFromFile( m_device, mtrls[i].pTextureFilename, &tex); Textures[i]= tex ; } else { Textures[i]= 0 ; } } } Release<ID3DXBuffer*>(mtrlBuffer); // // Optimize the mesh. // hr = Mesh->OptimizeInplace( D3DXMESHOPT_ATTRSORT | D3DXMESHOPT_COMPACT | D3DXMESHOPT_VERTEXCACHE, (DWORD*)adjBuffer->GetBufferPointer(), 0, 0, 0); Release<ID3DXBuffer*>(adjBuffer); if(FAILED(hr)) { ::MessageBox(0, TEXT("优化网格失败"), 0, 0); return false; } return true; } void CXModel::Render(CVector3 pos) { CMatrix4x4 mat; this->GetWorldMatrixFromPos(pos,mat); m_device->SetTransform(D3DTS_WORLD,(D3DXMATRIX*)(&mat)->matrix); for(int i = 0; i < m_numMtrls; i++) { m_device->SetMaterial( &Mtrls[i] ); m_device->SetTexture(0, Textures[i]); Mesh->DrawSubset(i); } }
作者: woaitmac1314 发布时间: 2011-08-06
场景中,透明的物体需要最后渲染。
作者: dizuo 发布时间: 2011-08-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28