D3DXUVAtlasCreate 함수

메시에 대한 UV 아틀라스를 만듭니다.

구문

HRESULT D3DXUVAtlasCreate(
  _In_        LPD3DXMESH      pMesh,
  _In_        UINT            dwMaxChartNumber,
  _In_        FLOAT           fMaxStretch,
  _In_        UINT            dwWidth,
  _In_        UINT            dwHeight,
  _In_        FLOAT           fGutter,
  _In_        DWORD           dwTextureIndex,
  _In_  const DWORD           *pdwAdjacency,
        const DWORD           *pdwFalseEdges,
  _In_        FLOAT           *pfIMTArray,
  _In_        LPD3DXUVATLASCB pCallback,
  _In_        FLOAT           fCallbackFrequency,
  _In_        LPVOID          pUserContext,
  _In_        DWORD           dwOptions,
  _In_        LPD3DXMESH      *ppMeshOut,
  _Out_       LPD3DXBUFFER    *ppFacePartitioning,
  _Out_       LPD3DXBUFFER    *ppVertexRemapArray,
  _Out_       FLOAT           *pfMaxStretchOut,
  _Out_       UINT            *pdwNumChartsOut
);

매개 변수

pMesh [in]

형식: LPD3DXMESH

아틀라스를 계산하기 위한 개체 기하 도형을 포함하는 입력 메시( ID3DXMesh 참조)에 대한 포인터입니다. 최소한 메시에는 위치 데이터와 2D 텍스처 좌표가 포함되어야 합니다.

dwMaxChartNumber [in]

형식: UINT

메시를 분할할 최대 차트 수입니다. 분할 모드에 대한 설명을 참조하세요. 0을 사용하여 D3DX에 스트레치에 따라 아틀라스를 매개 변수화해야 한다고 알릴 수 있습니다.

fMaxStretch [in]

형식: FLOAT

허용되는 스트레칭 양입니다. 0은 스트레칭이 허용되지 않음을 의미하고, 1은 모든 양의 스트레칭을 사용할 수 있다는 것을 의미합니다.

dwWidth [in]

형식: UINT

텍스처 너비입니다.

dwHeight [in]

형식: UINT

텍스처 높이.

fGutter [in]

형식: FLOAT

아틀라스의 두 차트 사이의 최소 거리(텍셀)입니다. 여백은 항상 너비로 조정됩니다. 따라서 512x512 텍스처에서 2.5의 여백을 사용하는 경우 두 차트 사이의 최소 거리는 2.5/512.0 텍셀입니다.

dwTextureIndex [in]

형식: DWORD

사용할 텍스처 좌표 집합을 식별하는 0부터 시작하는 텍스처 좌표 인덱스입니다.

pdwAdjacency [in]

형식: const DWORD*

인접 데이터 배열에 대한 포인터입니다. 얼굴당 3개의 DWORD를 사용하여 서로 인접한 삼각형을 나타냅니다( ID3DXBaseMesh::GenerateAdjacency 참조).

pdwFalseEdges

형식: const DWORD*

얼굴당 DWORDS가 3개인 배열입니다. 각 얼굴은 가장자리가 false인지 여부를 나타냅니다. false가 아닌 에지는 -1로 표시되고 false 에지는 다른 값으로 표시됩니다. 이렇게 하면 각 쿼드의 가운데에 있는 가장자리가 잘리지 않는 쿼드 메시의 매개 변수화가 가능합니다.

pfIMTArray [in]

형식: FLOAT*

삼각형을 늘이는 방법을 설명하는 통합 메트릭 텐서 배열에 대한 포인터입니다( IntegratedMetricTensor 참조).

pCallback [in]

형식: LPD3DXUVATLASCB

진행률을 모니터링하는 데 유용한 콜백 함수( LPD3DXUVATLASCB 참조)에 대한 포인터입니다.

fCallbackFrequency [in]

형식: FLOAT

D3DX가 콜백을 호출하는 빈도를 지정합니다. 적절한 기본값은 0.0001f입니다.

pUserContent [in]

형식: LPVOID

콜백 함수에 전달되는 사용자 정의 값에 대한 포인터입니다. 일반적으로 애플리케이션에서 콜백 함수에 대한 컨텍스트 정보를 제공하는 데이터 구조에 대한 포인터를 전달하는 데 사용됩니다.

dwOptions [in]

형식: DWORD

생성된 차트의 품질을 지정합니다. D3DXUVATLAS를 참조하세요.

ppMeshOut [in]

형식: LPD3DXMESH*

아틀라스를 사용하여 만든 메시에 대한 포인터입니다( ID3DXMesh 참조).

ppFacePartitioning [out]

형식: LPD3DXBUFFER*

최종 얼굴 분할 데이터의 배열에 대한 포인터입니다. 각 요소에는 얼굴당 하나의 DWORD가 포함됩니다( ID3DXBuffer 참조).

ppVertexRemapArray [out]

형식: LPD3DXBUFFER*

다시 매핑된 꼭짓점 배열에 대한 포인터입니다. 각 배열 요소는 각 최종 꼭짓점이 제공된 원래 꼭짓점을 식별합니다(다시 매핑하는 동안 꼭짓점이 분할된 경우). 각 배열 요소는 꼭짓점당 하나의 DWORD를 포함합니다.

pfMaxStretchOut [out]

형식: FLOAT*

atlas 알고리즘에 의해 생성된 최대 스트레치 값에 대한 포인터입니다. 범위는 0.0에서 1.0 사이입니다.

pdwNumChartsOut [out]

형식: UINT*

atlas 알고리즘에서 만든 차트 수에 대한 포인터입니다. dwMaxChartNumber가 너무 낮으면 이 매개 변수는 아틀라스를 만드는 데 필요한 최소 차트 수를 반환합니다.

반환 값

형식: HRESULT

함수가 성공하면 반환 값이 D3D_OK. 그렇지 않으면 값이 D3DERR_INVALIDCALL.

설명

D3DXUVAtlasCreate는 메시 기하 도형을 두 가지 방법으로 분할할 수 있습니다.

  • 차트 수에 따라
  • 허용되는 최대 스트레치를 기준으로 합니다. 허용되는 최대 스트레치가 0이면 각 삼각형이 자체 차트에 있을 수 있습니다.

요구 사항

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

추가 정보

UVAtlas 함수

UV 아틀라스 Command-Line 도구(uvatlas.exe)