다음을 통해 공유


ID3DXMesh::Optimize 메서드

그리기 성능을 최적화하기 위해 다시 정렬된 얼굴과 꼭짓점을 사용하여 새 메시를 생성합니다.

구문

HRESULT Optimize(
  [in]            DWORD        Flags,
  [in]      const DWORD        *pAdjacencyIn,
  [in, out]       DWORD        *pAdjacencyOut,
  [in, out]       DWORD        *pFaceRemap,
  [out]           LPD3DXBUFFER *ppVertexRemap,
  [out]           LPD3DXMESH   *ppOptMesh
);

매개 변수

Flags [in]

형식: DWORD

수행할 최적화 유형을 지정합니다. 이 매개 변수는 D3DXMESHOPT 및 D3DXMESH에서 하나 이상의 플래그 조합으로 설정할 수 있습니다(D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY 및 D3DXMESH_WRITEONLY 제외).

pAdjacencyIn [in]

형식: const DWORD*

소스 메시의 각 면에 대한 세 개의 인접 항목을 지정하는 얼굴당 3개의 DWORD 배열에 대한 포인터입니다. 가장자리에 인접한 면이 없으면 값이 0xffffffff. 설명 부분을 참조하세요.

pAdjacencyOut [in, out]

형식: DWORD*

최적화된 메시의 각 면에 대한 세 개의 인접 항목을 지정하는 얼굴당 3개의 DWORD 배열에 대한 포인터입니다. 가장자리에 인접한 면이 없으면 값이 0xffffffff.

pFaceRemap [in, out]

형식: DWORD*

최적화된 메시의 각 면에 해당하는 원래 메시 얼굴을 식별하는 DWORD 배열입니다. 이 인수에 제공된 값이 NULL이면 얼굴 다시 매핑 데이터가 반환되지 않습니다.

ppVertexRemap [out]

형식: LPD3DXBUFFER*

ID3DXBuffer 인터페이스에 대한 포인터의 주소입니다. 이 인터페이스에는 새 꼭짓점이 이전 꼭짓점으로 매핑되는 방법을 지정하는 각 꼭짓점의 DWORD가 포함되어 있습니다. 이 다시 매핑은 새 꼭짓점 매핑을 기반으로 외부 데이터를 변경해야 하는 경우에 유용합니다.

ppOptMesh [out]

형식: LPD3DXMESH*

최적화된 메시를 나타내는 ID3DXMesh 인터페이스에 대한 포인터의 주소입니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

이 메서드는 새 메시를 생성합니다. 최적화를 실행하기 전에 애플리케이션은 ID3DXBaseMesh::GenerateAdjacency를 호출하여 인접 버퍼를 생성해야 합니다. 인접 버퍼에는 가장자리 목록 및 서로 인접한 얼굴과 같은 인접 데이터가 포함됩니다.

이 메서드는 메시의 새 클론을 생성하는 동안 최적화를 수행할 수 있다는 점을 제외하고 ID3DXBaseMesh::CloneMesh 메서드와 매우 유사합니다. 출력 메시는 입력 메시의 모든 생성 매개 변수를 상속합니다.

요구 사항

요구 사항
헤더
D3DX9Mesh.h
라이브러리
D3dx9.lib

추가 정보

ID3DXMesh

ID3DXMesh::OptimizeInplace