ID3DXMesh::OptimizeInplace 메서드

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

구문

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

매개 변수

Flags [in]

형식: DWORD

수행할 최적화 유형을 지정하는 하나 이상의 D3DXMESHOPT 플래그 조합입니다.

pAdjacencyIn [in]

형식: const DWORD*

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

pAdjacencyOut [out]

형식: DWORD*

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

pFaceRemap [out]

형식: DWORD*

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

ppVertexRemap [out]

형식: LPD3DXBUFFER*

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

반환 값

형식: HRESULT

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

설명

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

참고

메시가 해당 꼭짓점 버퍼를 다른 메시와 공유하는 경우 플래그에 D3DXMESHOPT_IGNOREVERTS 설정되지 않으면 이 메서드가 실패합니다.

 

요구 사항

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

추가 정보

ID3DXMesh

ID3DXMesh::Optimize