D3DXSplitMesh 함수

메시를 지정된 크기보다 작은 메시로 분할합니다.

구문

void D3DXSplitMesh(
  _In_        LPD3DXMESH   pMeshIn,
  _In_  const DWORD        *pAdjacencyIn,
  _In_  const DWORD        MaxSize,
  _In_  const DWORD        Options,
  _Out_       DWORD        *pMeshesOut,
  _Out_       LPD3DXBUFFER *ppMeshArrayOut,
  _Out_       LPD3DXBUFFER *ppAdjacencyArrayOut,
  _Out_       LPD3DXBUFFER *ppFaceRemapArrayOut,
  _Out_       LPD3DXBUFFER *ppVertRemapArrayOut
);

매개 변수

pMeshIn [in]

형식: LPD3DXMESH

원본 메시를 나타내는 ID3DXMesh 인터페이스에 대한 포인터입니다.

pAdjacencyIn [in]

형식: const DWORD*

메시의 각 면에 대해 간소화할 세 개의 인접 항목을 지정하는 얼굴당 3개의 DWORD 배열에 대한 포인터입니다.

MaxSize [in]

형식: const DWORD

결과 메시의 최대 꼭짓점 수입니다.

옵션 [in]

형식: const DWORD

새 메시에 대한 옵션 플래그입니다.

pMeshesOut [out]

형식: DWORD*

반환된 메시의 수입니다.

ppMeshArrayOut [out]

형식: LPD3DXBUFFER*

새 메시에 대한 ID3DXMesh 인터페이스 배열을 포함하는 버퍼입니다. n 메시로 분할된 원본 메시의 경우 ppMeshArrayOut 은 n ID3DXMesh 포인터의 배열입니다.

ppAdjacencyArrayOut [out]

형식: LPD3DXBUFFER*

새 메시에 대한 인접 배열(DWORD)의 배열을 포함하는 버퍼입니다. ID3DXBuffer를 참조하세요. 이 매개 변수는 선택 사항입니다.

ppFaceRemapArrayOut [out]

형식: LPD3DXBUFFER*

새 메시에 대한 얼굴 다시 매핑 배열(DWORD) 배열을 포함하는 버퍼입니다. ID3DXBuffer를 참조하세요. 이 매개 변수는 선택 사항입니다.

ppVertRemapArrayOut [out]

형식: LPD3DXBUFFER*

새 메시에 대한 꼭짓점 다시 매핑 배열의 배열을 포함하는 버퍼입니다. ID3DXBuffer를 참조하세요. 이 매개 변수는 선택적 요소입니다.

반환 값

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

설명

이 함수의 일반적인 용도는 메시를 32비트 인덱스(65535개 이상 꼭짓점)로 분할하는 것입니다. 각 메시에는 16비트 인덱스가 있습니다.

인접, 꼭짓점 다시 매핑 및 얼굴 다시 매핑 배열은 각 배열에 n 개의 DWORD 포인터가 포함된 DWORD와 포인터에서 참조하는 DWORD 데이터가 있는 DWORD입니다. 예를 들어 메시 2의 얼굴 3에 대한 얼굴 다시 매핑 정보를 얻기 위해 얼굴 다시 매핑 데이터가 ppFaceRemapArrayOut 변수에 반환되었다고 가정하면 다음 코드를 사용할 수 있습니다.

   
const DWORD **face_remaps = 
    static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];

요구 사항

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

추가 정보

메시 함수