Usar interpolación de vértices (Direct3D 9)
Para determinar si Direct3D admite interpolación de vértices, compruebe la marca de D3DVTXPCAPS_TWEENING en el miembro VertexProcessingCaps de la estructura D3DCAPS9 . En el ejemplo de código siguiente se usa el método IDirect3DDevice9::GetDeviceCaps para determinar si se admite la interpolación.
// 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.
Para usar la interpolación vectorial, primero debe configurar un tipo de vértice personalizado que use un segundo normal o una segunda posición. En el ejemplo de código siguiente se muestra una declaración de ejemplo que incluye un segundo punto y una segunda posición.
struct TEX_VERTEX
{
D3DVECTOR position;
D3DVECTOR normal;
D3DVECTOR position2;
D3DVECTOR normal2;
};
//Create a vertex buffer with the type TEX_VERTEX.
El siguiente paso es establecer la declaración actual. En el ejemplo de código siguiente se muestra cómo hacerlo.
// 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()
};
Para obtener más información sobre la creación de un tipo de vértice personalizado y un búfer de vértices, consulta Creating a Vertex Buffer (Direct3D 9) (Crear un búfer de vértices [Direct3D 9]).
Nota
Cuando la interpolación de vértices está habilitada, una segunda posición o una segunda normal debe estar presente en la declaración actual.
Temas relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de