Łączenie indeksowanych wierzchołków (Direct3D 9)

Indeksowane mieszanie wierzchołków rozszerza obsługę mieszania wierzchołków w Direct3D, umożliwiając używanie macierzy do tego celu. Te macierze są określane przy użyciu indeksu macierzy. Te indeksy są dostarczane na podstawie na wierzchołek i odwołują się do palety obejmującej do 256 macierzy. Każdy indeks ma 8 bitów, a każdy wierzchołek może mieć maksymalnie cztery indeksy, co pozwala na mieszanie czterech macierzy na wierzchołek. Indeksy są pakowane do DWORD. Ponieważ indeksy są określane dla każdego wierzchołka, do 12 macierzy może oddziaływać na pojedynczy trójkąt, a każda macierz w palecie może oddziaływać na wierzchołki jednego wywołania rysowania. Takie podejście ma następujące zalety.

  • Umożliwia, aby więcej macierzy wpływało na pojedynczy trójkąt.
  • Umożliwia przekazywanie większej liczby zblendowanych trójkątów w jednym wywołaniu rysowania.
  • Umożliwia niezależne mieszanie wierzchołków względem indeksów trójkątów. Dzięki temu progresywne siatki działają w połączeniu z mieszaniem wierzchołków.

Jedną z wad tego podejścia jest to, że nie działa z prymitywami o zakrzywionych powierzchniach, gdy tessellation występuje przed przetwarzaniem wierzchołków.

Na poniższym diagramie pokazano, jak cztery macierze mogą mieć wpływ na wierzchołek. Każdy wierzchołek ma maksymalnie cztery indeksy, więc cztery macierze można łączyć na każdy wierzchołek. Diagram używa macierzy indeksowanych na poziomie 0, 2, 5 i 6.

diagram łączenia indeksowanych wierzchołków przy użyciu 4 z 256 dostępnych macierzy

Na poniższym diagramie pokazano, jak maksymalnie 12 macierzy może wpływać na trójkąt. Używając indeksów określonych dla każdego wierzchołka, na trójkąt może wpływać do 12 macierzy.

diagram łączenia indeksowanych wierzchołków dla trójkąta przy użyciu 12 z 256 dostępnych macierzy

Poniższe równanie określa ogólny przypadek wpływu macierzy na wierzchołek.

równanie łączenia wierzchołków przez indeksację

Model V to pozycja wierzchołka przestrzeni modelu wejściowego. Index0..Index3 to indeksy macierzy dla wierzchołków zapakowane w DWORD. M[] to tablica macierzy świata, do której indeksuje się. b₀..b₂ są wagami mieszania. Vworld to pozycja wierzchołka w przestrzeni świata wyjściowego.

Aby uzyskać więcej informacji na temat łączenia indeksowanych wierzchołków, zobacz Using Indexed Vertex Blending (Direct3D 9).

Łączenie Geometrii