다음을 통해 공유


꼭짓점 트위닝 사용(Direct3D 9)

Direct3D가 꼭짓점 트위닝을 지원하는지 확인하려면 D3DCAPS9 구조체의 VertexProcessingCaps 멤버에서 D3DVTXPCAPS_TWEENING 플래그에 대해 검사. 다음 코드 예제에서는 IDirect3DDevice9::GetDeviceCaps 메서드를 사용하여 트윈이 지원되는지 확인합니다.

// This example assumes that m_pD3DDevice is 
// a valid pointer to a IDirect3DDevice9 interface.
//
D3DCAPS9 d3dCaps;

m_pD3DDevice->GetDeviceCaps( &d3dCaps );
if( 0 != (d3dCaps.VertexProcessingCaps & D3DVTXPCAPS_TWEENING) )
    // Vertex tweening is supported.

벡터 트윈을 사용하려면 먼저 두 번째 법선 또는 두 번째 위치를 사용하는 사용자 지정 꼭짓점 형식을 설정해야 합니다. 다음 코드 예제에서는 두 번째 점과 두 번째 위치를 모두 포함하는 샘플 선언을 보여 있습니다.

struct TEX_VERTEX
{
    D3DVECTOR position;
    D3DVECTOR normal;
    D3DVECTOR position2;
    D3DVECTOR normal2;
};

//Create a vertex buffer with the type TEX_VERTEX.

다음 단계는 현재 선언을 설정하는 것입니다. 아래 코드 예제에서는 이 작업을 수행하는 방법을 보여줍니다.

// Create the shader declaration.
D3DVERTEXELEMENT9 decl[] = 
{
    { 0, 0,  D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
    { 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 },
    { 0, 24, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 1 },
    { 0, 36, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 1 },
    D3DDECL_END()
};

사용자 지정 꼭짓점 형식 및 꼭짓점 버퍼를 만드는 방법에 대한 자세한 내용은 꼭짓점 버퍼 만들기(Direct3D 9)를 참조하세요.

참고

꼭짓점 트위닝을 사용하도록 설정하면 현재 선언에 두 번째 위치 또는 두 번째 법선이 있어야 합니다.

 

꼭짓점 트위닝