Fusión de vértices indexados (Direct3D 9)

La mezcla de vértices indizada amplía la compatibilidad de mezcla de vértices en Direct3D para permitir que las matrices se usen para la fusión. Estas matrices se conocen mediante un índice de matriz. Estos índices se proporcionan por vértice y hacen referencia a una paleta de hasta 256 matrices. Cada índice es de 8 bits y cada vértice puede tener hasta cuatro índices, lo que permite mezclar cuatro matrices por vértice. Los índices se empaquetan en una DWORD. Dado que los índices se especifican por vértice, hasta 12 matrices pueden afectar a un único triángulo y cualquier matriz de la paleta puede afectar a los vértices de una llamada a draw. Este enfoque tiene las siguientes ventajas.

  • Permite que más matrices afecten a un único triángulo.
  • Permite pasar triángulos más mezclados en la misma llamada de dibujo.
  • Hace que el vértice se combine independientemente de los índices de triángulo. Esto permite que las mallas progresivas funcionen junto con la mezcla de vértices.

Una desventaja de este enfoque es que no funciona con primitivos de superficie curvada cuando la teselación se produce antes del procesamiento de vértices.

En el diagrama siguiente se muestra cómo cuatro matrices pueden afectar a un vértice. Cada vértice tiene hasta cuatro índices, por lo que se pueden mezclar cuatro matrices por vértice. El diagrama usa las matrices indizada en 0, 2, 5 y 6.

diagrama de fusión de vértices indizado mediante 4 de 256 matrices disponibles

En el diagrama siguiente se muestra cómo pueden afectar hasta 12 matrices a un triángulo. El uso de índices especificados por vértice puede afectar al triángulo hasta 12 matrices.

diagrama de fusión de vértices indexados para un triángulo mediante el uso de 12 de 256 matrices disponibles

La ecuación siguiente determina el caso general de cómo las matrices afectan a un vértice.

ecuación de fusión de vértices indizado

El modelo V es la posición del vértice del espacio del modelo de entrada. Index0.. Index3 son los índices de matriz por vértice empaquetados en un DWORD. M[] es la matriz de matrices del mundo en las que se indexa. b₀.. bs son las ponderaciones de mezcla. Vworld es la posición del vértice del espacio del mundo de salida.

Para obtener más información sobre la mezcla de vértices indizado, vea Usar la mezcla de vértices indexados (Direct3D 9).

Fusión de geometría