본문 바로가기

예전/3D

OptimizeInplace


최적화

좀더 효과적으로 메쉬를 렌더링하기 위해서는 버텍스와 인덱스를 재구성 하는 작업이 필요하다. (메쉬최적화)

HRESULT ID3DXMesh::OptimizeInplace( 

DWORD Flags, 

CONST DWORD *pAdjacencyIn, // 최적화되지 않은 메쉬의 인접 배열로의 포인터 

DWORD* pAdjacencyOut, // 이 배열은 반드시 ID3DXMesh::GetNumFaces()*3수의 요수를 가지고 있어야 한다. 필요없다면 0을 넣는다. 

DWORD* pFaceRemap, // 최적화 되면서 원래의 i번째면이 어디로 이동했는지 알려주는 면 인덱스를 포함한다. 이 배열은 ID3DXMesh::GetNumFaces()의 크기를 가져야한다. 

LPD3DXBUFFER* ppVertexRemap // 최적화 되면서 원래의 i번째 점이 어디로 이동했는지 알려주는 버텍스 인덱스를 포함한다. ID3DXMesh::GetNumVertices() 만큼의 항목을 포함해야 한다. 

);


Flags (D3DXMESHOPT_VERTEXCACHE와 D3DXMESHOPT_STRIPREORDER은 함께 사용할 수 없다.)

D3DXMESHOPT_COMPACT 메쉬에서 이용되지 않은 인덱스와 버텍스를 제거한다.

D3DXMESHOPT_ATTRSORT 속성으로 삼각형을 정렬하고 속성 테이블을 생성한다. 이 플래그는 DrawSubset()의 효율을 높여준다.

D3DXMESHOPT_VERTEXCACHE 버텍스 캐시의 히트율을 높인다.

D3DXMESHOPT_STRIPREORDER 삼각형 스트립이 가능한 길어지도록 인덱스를 재구성 한다.

D3DXMESHOPT_IGNOREVERTS 버텍스를 무시하고 인덱스 정보만을 최적화한다.



'예전 > 3D' 카테고리의 다른 글

SetSamplerState  (0) 2013.02.24
[3D] AABB(Axis Aligned Bounding Box)  (0) 2013.02.21
[3D] 수면 파동  (0) 2013.01.18
[3D] 수면을 해보자  (3) 2013.01.15
[3D] Fog (안개)  (1) 2013.01.14