Compartilhar via


Combinação de vértice indexada (Direct3D 9)

A mesclagem de vértice indexada estende o suporte à mesclagem de vértice no Direct3D para permitir que matrizes sejam usadas para mesclagem. Essas matrizes são referenciadas usando um índice de matriz. Esses índices são fornecidos por vértice e se referem a uma paleta de até 256 matrizes. Cada índice é de 8 bits e cada vértice pode ter até quatro índices, o que permite que quatro matrizes sejam combinadas por vértice. Os índices são empacotados em um DWORD. Como os índices são especificados por vértice, até 12 matrizes podem afetar um único triângulo e qualquer matriz na paleta pode afetar os vértices de uma chamada de desenho. Essa abordagem tem as seguintes vantagens.

  • Ele permite que mais matrizes afetem um único triângulo.
  • Ele permite que mais triângulos combinados sejam passados na mesma chamada de desenho.
  • Ele torna a mesclagem de vértice independente dos índices de triângulo. Isso permite que as malhas progressivas funcionem em conjunto com a mesclagem de vértice.

Uma desvantagem dessa abordagem é que ela não funciona com primitivos de superfície curva quando o mosaico ocorre antes do processamento de vértice.

O diagrama a seguir demonstra como quatro matrizes podem afetar um vértice. Cada vértice tem até quatro índices, portanto, quatro matrizes podem ser combinadas por vértice. O diagrama usa as matrizes indexadas em 0, 2, 5 e 6.

diagrama de mesclagem de vértice indexada usando 4 das 256 matrizes disponíveis

O diagrama a seguir demonstra como até 12 matrizes podem afetar um triângulo. Usando índices especificados por vértice, até 12 matrizes podem afetar o triângulo.

diagrama de mesclagem de vértice indexada para um triângulo usando 12 das 256 matrizes disponíveis

A equação a seguir determina o caso geral de como as matrizes afetam um vértice.

equação de mesclagem de vértice indexada

O modelo V é a posição do vértice de espaço do modelo de entrada. Index0.. Index3 são os índices de matriz por vértice empacotados em um DWORD. M[] é a matriz de matrizes mundiais em que são indexadas. b₀.. b₂ são os pesos de mistura. Vworld é a posição de vértice de espaço do mundo de saída.

Para obter mais informações sobre a mesclagem de vértice indexada, consulte Using Indexed Vétex Blending (Direct3D 9).

Mesclagem geometry