Mistura de vértice indexado (Direct3D 9)
A mistura de vértices indexada estende o suporte à mistura de vértices no Direct3D para permitir o uso de matrizes no processo de mistura. Estas matrizes são referidas usando um índice matricial. Estes índices são fornecidos numa base por vértice e referem-se 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 misturadas por vértice. Os índices são embalados num 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 um draw call. Esta abordagem tem as seguintes vantagens.
- Permite que mais matrizes afetem um único triângulo.
- Ele permite que mais triângulos misturados sejam passados na mesma chamada de sorteio.
- Torna a mistura de vértices independente dos índices de triângulos. Isso permite que malhas progressivas funcionem em conjunto com a mistura de vértices.
Uma desvantagem dessa abordagem é que ela não funciona com primitivos de superfície curva quando a tesselação ocorre antes do processamento do vértice.
O diagrama a seguir demonstra como quatro matrizes podem afetar um vértice. Cada vértice tem até quatro índices, de modo que quatro matrizes podem ser misturadas por vértice. O diagrama usa as matrizes indexadas em 0, 2, 5 e 6.
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.
A equação a seguir determina o caso geral de como as matrizes afetam um vértice.
V modelo é a posição do vértice do espaço do modelo de entrada. Índice0..Índice3 são os índices de matriz por vértice agrupados numa DWORD. M[] é a matriz de matrizes mundiais nas quais são indexadas. b₀.. b₂ são os pesos de mistura. Vno espaço mundial é a posição do vértice no espaço mundial de saída.
Para obter mais informações sobre a mistura de vértices indexados, consulte Usando a mistura de vértices indexados (Direct3D 9).
Tópicos relacionados