首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

图形学 Direct3D的3D模型处置2 - 邻接三角形的信息及优化

2013-10-27 
图形学 Direct3D的3D模型处理2 - 邻接三角形的信息及优化用法:DWORD* adjacencyInfo new DWORD[Mesh-Ge

图形学 Direct3D的3D模型处理2 - 邻接三角形的信息及优化

用法:

DWORD* adjacencyInfo = new DWORD[Mesh->GetNumFaces() * 3];Mesh->GenerateAdjacency(0.001f, adjacencyInfo);

 

优化:

顶点和索引合理安排可以更加有效的渲染mesh模型。

Direct3D函数:

HRESULT ID3DXMesh::Optimize(    DWORD Flags,    CONST DWORD *pAdjacencyIn,    DWORD *pAdjacencyOut,    DWORD *pFaceRemap,    LPD3DXBUFFER *ppVertexRemap,    LPD3DXMESH *ppOptMesh);
 

 

应用:

// 读取未优化的mesh信息DWORD* adjacencyInfo = new DWORD[Mesh->GetNumFaces() * 3];Mesh->GenerateAdjacency(0.0f, adjacencyInfo);// 用来保存新的优化了的mesh邻接三角形信息DWORD* optimizedAdjacencyInfo = new DWORD[Mesh->GetNumFaces() * 3];ID3DXMesh* meshOut = 0;//新的mesh模型Mesh->Optimize(D3DXMESH_MANAGED | D3DXMESHOPT_COMPACT |D3DXMESHOPT_ATTRSORT | D3DXMESHOPT_VERTEXCACHE,adjacencyInfo, optimizedAdjacencyInfo, 0, 0, &meshOut);

下面的函数是直接优化原mesh模型:

HRESULT ID3DXMesh::OptimizeInplace(    DWORD Flags,    CONST DWORD *pAdjacencyIn,    DWORD *pAdjacencyOut,    DWORD *pFaceRemap,    LPD3DXBUFFER *ppVertexRemap

这里并没有太多深入其原理。只是讲用法。

 

Reference:

Direct3D龙书

 

热点排行