您的位置:首页 > 其它

Direct3D 9学习笔记(11)网格(Mesh)2

2012-08-20 14:03 411 查看
 

七.网格优化





参数解释:





示例:

//
// Optimize the mesh to generate an attribute table.
//

std::vector<DWORD> adjacencyBuffer(Mesh->GetNumFaces() * 3);
Mesh->GenerateAdjacency(0.0f, &adjacencyBuffer[0]);

hr = Mesh->OptimizeInplace(
D3DXMESHOPT_ATTRSORT |
D3DXMESHOPT_COMPACT  |
D3DXMESHOPT_VERTEXCACHE,
&adjacencyBuffer[0],
0, 0, 0);






八.属性表













九.邻接信息













示例:

void dumpAdjacencyBuffer(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Adjacency Buffer:" << std::endl;
outFile << "-----------------" << std::endl << std::endl;

// three enttries per face
std::vector<DWORD> adjacencyBuffer(mesh->GetNumFaces() * 3);

mesh->GenerateAdjacency(0.0f, &adjacencyBuffer[0]);

for(int i = 0; i < mesh->GetNumFaces(); i++)
{
outFile << "Triangle's adjacent to triangle " << i << ": ";
outFile << adjacencyBuffer[i * 3    ] << " ";
outFile << adjacencyBuffer[i * 3 + 1] << " ";
outFile << adjacencyBuffer[i * 3 + 2] << std::endl;
}

outFile << std::endl << std::endl;
}


十.网格克隆

HRESULT CloneMesh(
[in]           DWORD Options,
[in]           const D3DVERTEXELEMENT9 *pDeclaration,
[in]           LPDIRECT3DDEVICE9 pDevice,
[out, retval]  LPD3DXMESH *ppCloneMesh
);




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: