|
|

楼主 |
发表于 2005-8-4 18:27:00
|
显示全部楼层
Re:关于D3DX: D3DXCleanMesh的困惑
今天把这个问题解决了,所以再上来一下,原来GenerateAdjacency中得到的数据并非乱码,而是0xffffffff,意思是这个面的这个边上没有临接面.所以输出数据是对的.
再说说D3DXCleanMesh,当我换了DX9.0c SDK后,把
if( FAILED( hr = D3DXCleanMesh( pMesh, Adj, &pTempMesh, Adj, NULL ) ) )
换成
if( FAILED( hr = D3DXCleanMesh(D3DXCLEAN_SIMPLIFICATION, pMesh, Adj, &pTempMesh, Adj, NULL ) ) )
立刻通过了,我一查才发现,原来我的机子上的D3D runtime一直是9.0c的
D3DXCleanMesh的调用函数在9.0和9.0c上不同,9.0c会多一个参数(D3DXCLEAN_SIMPLIFICATION)用于指明该接口以何种方式清理MESH.我之前用D9.0的SDK却用了D9.0C的RUNTIIME,所以出现这个问题.这也是DEBUG INFORMATION里提到的"Output Adjacency must be specified"的原因.
我这样的理解对吗?照理DIRECTX的COM结构应该可以避免版本冲突啊?
不管怎么说,LOD成功了,十分开心. |
|