다음을 통해 공유


ID3DXTextureGutterHelper::ResampleTex 메서드

이 Gutterhelper의 매개 변수화에 텍스처를 다시 샘플링합니다.

구문

HRESULT ResampleTex(
  [in]  LPDIRECT3DTEXTURE9 pTextureIn,
  [in]  LPD3DXMESH         pMeshIn,
  [in]  D3DDECLUSAGE       Usage,
  [in]  UINT               UsageIndex,
  [out] LPDIRECT3DTEXTURE9 pTextureOut
);

매개 변수

pTextureIn [in]

형식: LPDIRECT3DTEXTURE9

pMeshIn의 원래 매개 변수화에 해당하는 텍스처입니다. 이 텍스처는 pTextureOut을 만드는 데 사용됩니다.

pMeshIn [in]

형식: LPD3DXMESH

원래 및 새 매개 변수화를 포함하는 메시입니다. 새 매개 변수화를 D3DDECLUSAGE_TEXCOORD 인덱스 0에 저장해야 합니다.

사용량 [in]

형식: D3DDECLUSAGE

pMeshIn에서 원래 매개 변수화를 포함하는 꼭짓점 선언의 구성 요소를 식별하는 꼭짓점 데이터 사용량(UsageIndex와 함께 사용). D3DDECLUSAGE를 참조하세요.

UsageIndex [in]

형식: UINT

pMeshIn에서 원래 매개 변수화를 포함하는 꼭짓점 선언의 구성 요소를 식별하는 0부터 시작하는 인덱스(사용량과 함께 사용). 새 매개 변수화에는 D3DDECLUSAGE_TEXCOORD 및 인덱스 0의 조합이 필요합니다. 다른 사용/인덱스 조합이 사용될 수 있습니다.

pTextureOut [out]

형식: LPDIRECT3DTEXTURE9

다시 샘플링된 텍스처입니다.

반환 값

형식: HRESULT

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

설명

이 함수의 경우 매개 변수화는 메시의 삼각형을 텍스처의 삼각형에 매핑하는 텍스처 좌표 집합입니다. 새 매개 변수화는 여백 도우미 인터페이스에 포함된 텍스처 좌표 집합이며 원래 매개 변수화는 입력 메시에 포함된 텍스처 좌표 집합입니다.

텍스처 좌표는 0에서 1 사이이며 새 매개 변수화는 꼭짓점 선언에서 텍스처 좌표 인덱스 0으로 선언되어야 한다고 가정합니다. 원래 텍스처와 리샘플링된 텍스처는 너비와 높이가 같아야 합니다.

예를 들어 텍스처 다시 샘플링을 준비하려면 다음을 수행합니다.

  • D3DXCreateTextureFromFile과 같은 함수를 사용하여 원래 텍스처 인터페이스(아래 pOriginalTex)를 만듭니다.
  • 다시 샘플링된 텍스처에 대한 새 텍스처 인터페이스를 만듭니다(아래 pResampledTex). 이 텍스처의 크기는 여백 도우미 텍스처의 크기(너비 및 높이)와 일치해야 합니다.
  • D3DXCreateTextureGutterHelper를 호출하여 다음과 같이 새 매개 변수화를 가져옵니다.
// Given:
// pMesh points to a mesh that contains the original and new texture coordinates
ID3DXTextureGutterHelper * pGutterHelper;
    
// Mesh vertex declaration
D3DVERTEXELEMENT9 decl[] = {
    {0,  0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0},
    // contains new set of texcoords
    {0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0}, 
    // contains original set of texcoords
    {0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1}, 
    D3DDECL_END()
};
    
// Create a gutter helper with the new parameterization
hr = D3DXCreateTextureGutterHelper(width, height, pMesh, 1, &pGutterHelper);  
    
// Resample the texture
hr = pGutterHelper->ResampleTex(pOriginalTex, pMesh, D3DDECLUSAGE_TEXCOORD, 
           1, pResampledTex); 
    
// Release the gutter helper interface when done with it

한 가지 일반적인 시나리오는 UVAtlas를 사용하여 텍스처 아틀라스를 만든 다음 ResampleTex를 사용하여 텍스처를 새 매개 변수화로 다시 샘플링하는 것입니다. 아틀라스에 대한 자세한 내용은 UVAtlas 사용(Direct3D 9)을 참조하세요.

요구 사항

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

추가 정보

ID3DXTextureGutterHelper

D3DXUVAtlasCreate