共用方式為


使用頂點 Tweening (Direct3D 9)

若要判斷 Direct3D 是否支援頂點 tweening,請檢查 D3DCAPS9 結構的 VertexProcessingCaps 成員中的 D3DVTXPCAPS_TWEENING 旗標。 下列程式碼範例會使用 IDirect3DDevice9::GetDeviceCaps 方法來判斷是否支援 tweening。

// 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.

若要使用向量 tweening,您必須先設定使用第二個標準或第二個位置的自訂頂點類型。 下列程式碼範例示範包含第二個點和第二個位置的範例宣告。

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)

注意

啟用頂點 tweening 時,目前宣告中必須有第二個位置或第二個標準。

 

頂點 Tweening