|
|
1.该模型在D3D的Tutorials的MESH例子里使用时显示正常.
证明模型没问题.
2.我在我的程序里使用D3D的tiger.x文件时,纹理显示也是有问题,证明是程序的问题.
3.在载入模型的程序里顶点声明如下:
int CModel: oadXFile(char* name)
{
HRESULT hr;
LPD3DXMESH pMeshSysMem = NULL;
if (FAILED (D3DXLoadMeshFromX(name, D3DXMESH_SYSTEMMEM,
m_pd3dDevice, NULL, NULL, NULL, NULL, &pMeshSysMem)))
MessageBox(NULL, "Failed to LoadMeshFromX ", "ERROR", MB_OK|MB_SETFOREGROUND|MB_TOPMOST);
D3DVERTEXELEMENT9 decl[]=
{
// stream, offset, type, method, semantic type (for example normal), ?
{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
{0, 12, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
{0, 24, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0},
D3DDECL_END()
};
hr = D3DXComputeNormals(pMeshSysMem,NULL);
if(FAILED(hr))
return E_FAIL;
hr = pMeshSysMem->CloneMesh(D3DXMESH_MANAGED, decl, m_pd3dDevice, &m_pMesh);
//m_pMesh定为渲染时用的模型数据指针.
return S_OK;
}
以上程序是从DEMO里COPY过来的,shader程序也是.
不过用到我的.X模型上就有问题了.纹理乱了,看下图:

左边的是程序里渲染的,纹理乱了.
右边的正常的状态,是3DSMAX里渲染的.
应该是上面那段载入模型的代码有问题。``
大家帮忙看看这问题啊`` [em4] |
|