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이면 각 삼각형이 자체 차트에 있을 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보