Индексированное смешивание вершин (Direct3D 9)
Индексированное сочетание вершин расширяет поддержку смешения вершин в Direct3D, чтобы разрешить использование матриц для смешивания. Эти матрицы называются с помощью индекса матрицы. Эти индексы предоставляются на основе каждой вершины и относятся к палитре из до 256 матриц. Каждый индекс равен 8 битам, и каждая вершина может иметь до четырех индексов, что позволяет смешивать по четыре матрицы для каждой вершины. Индексы упаковываются в DWORD. Так как индексы задаются на основе вершин, до 12 матриц может повлиять на один треугольник, и любая матрица в палитре может повлиять на вершины одного вызова рисования. Этот подход имеет следующие преимущества.
- Это позволяет большему числу матриц влиять на один треугольник.
- Он позволяет передавать более смешанные треугольники в одном вызове рисования.
- Это делает смешивание вершин независимым от индексов треугольников. Это позволяет прогрессивным сеткам функционировать в сочетании со смешиванием вершин.
Одним из недостатков этого подхода является то, что он не работает с примитивами кривых поверхностей, когда тесселяции возникают перед обработкой вершин.
На следующей схеме показано, как четыре матрицы могут повлиять на вершину. Каждая вершина имеет до четырех индексов, поэтому для каждой вершины можно смешать четыре матрицы. На схеме используются матрицы, индексированные по 0, 2, 5 и 6.
На следующей схеме показано, как до 12 матриц может повлиять на треугольник. Использование индексов, указанных для каждой вершины, на треугольник может воздействовать до 12 матриц.
Следующее уравнение определяет общий случай того, как матрицы влияют на вершину.
модели V — это позиция вершины входной модели. Index0.. Index3 — это индексы матрицы вершин, упакованные в DWORD. M[] — это массив матриц мира, по которому производится индексация. b₀..b₂ — это веса смешивания. Vв мировом пространстве — это позиция вершины выходного пространства.
Дополнительные сведения об объединении индексированных вершин см. в Использование индексированного смешивания вершин (Direct3D 9).
Связанные разделы