D3DXUVAtlasCreate 函式
建立網格的 UV atlas。
語法
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) ,其中包含用來計算 atlas 的物件幾何。 網格至少必須包含位置資料和 2D 紋理座標。
-
dwMaxChartNumber [in]
-
類型: UINT
要分割網格的圖表數目上限。 請參閱有關資料分割模式的備註。 使用 0 來告訴 D3DX 應該根據延展將 atlas 參數化。
-
fMaxStretch [in]
-
類型: FLOAT
允許的延展量。 0 表示不允許延展,1 表示可以使用任意數量的延展。
-
dwWidth [in]
-
類型: UINT
紋理寬度。
-
dwHeight [in]
-
類型: UINT
紋理高度。
-
fGutter [in]
-
類型: FLOAT
地圖上兩個圖表之間的最小距離,以紋素為單位。 裝訂邊一律會依寬度縮放;因此,如果在 512x512 紋理上使用 2.5 的裝訂邊,則兩個圖表之間的最小距離是 2.5 / 512.0 紋素。
-
dwTextureIndex [in]
-
類型: DWORD
以零起始的紋理座標索引,可識別要使用的紋理座標集。
-
pdwAdjacency [in]
-
類型:const DWORD*
相鄰資料陣列的指標。 每個臉部有 3 個 DWORD,表示哪些三角形彼此相鄰, (請參閱 ID3DXBaseMesh::GenerateAdjacency) 。
-
pdwFalseEdges
-
類型:const DWORD*
每個臉部 3 個 DWORDS 的陣列。 每個臉部都會指出邊緣是否為 false。 非 false 邊緣以 -1 表示,false 邊緣會以任何其他值表示。 這會啟用四邊形網格的參數化,其中每個四邊的中間邊緣將不會剪下。
-
pfIMTArray [in]
-
類型: FLOAT*
整合式計量張量陣列的指標,描述如何延展三角形 (請參閱 IntegratedMetricTensor) 。
-
pCallback [in]
-
類型: LPD3DXU加值稅LASCB
回呼函式的指標 (請參閱適用于監視進度的 LPD3DXU加值稅LASCB) 。
-
fCallbackFrequency [in]
-
類型: FLOAT
指定 D3DX 呼叫回呼的頻率;合理的預設值為 0.0001f。
-
pUserContent [in]
-
類型: LPVOID
傳遞至回呼函式之使用者定義值的指標;通常由應用程式用來傳遞資料結構的指標,以提供回呼函式的內容資訊。
-
dwOptions [in]
-
類型: DWORD
指定產生的圖表品質。 請參閱 D3DXU加值稅LAS。
-
ppMeshOut [in]
-
類型: LPD3DXMESH*
使用 atlas (建立網格的指標,請參閱 ID3DXMesh) 。
-
ppFacePartitioning [out]
-
類型: LPD3DXBUFFER*
最終臉部分割資料的陣列指標。 每個元素每個臉部都包含一個 DWORD (請參閱 ID3DXBuffer) 。
-
ppVertexRemapArray [out]
-
類型: LPD3DXBUFFER*
重新對應頂點陣列的指標。 如果頂點在重新對應) 期間分割,則每個陣列元素會識別每個最終頂點都來自 (的原始頂點。 每個陣列元素在每個頂點都包含一個 DWORD。
-
pfMaxStretchOut [out]
-
類型: FLOAT*
atlas 演算法所產生之最大延展值的指標。 範圍介於 0.0 和 1.0 之間。
-
pdwNumChartsOut [out]
-
類型: UINT*
atlas 演算法所建立圖表數目的指標。 如果 dwMaxChartNumber 太低,此參數會傳回建立 atlas 所需的最小圖表數目。
傳回值
類型: HRESULT
如果函式成功,則傳回值會D3D_OK;否則,此值會D3DERR_INVALIDCALL。
備註
D3DXUVAtlasCreate 可以分割網格幾何兩種方式:
- 根據圖表數目
- 根據允許的延展上限。 如果允許的延展上限為 0,則每個三角形可能位於自己的圖表中。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱