Поделиться через


Обработка координат текстур (Direct3D 9)

На следующей схеме показан путь, полученный координатами текстуры от их источника, через обработку и к растеризатору.

схема пути для координат текстуры от источника к растеризатору

Существует два источника, из которых система может рисовать координаты текстуры. Для заданного этапа текстуры можно использовать координаты текстуры, включенные в формат вершины (D3DFVF_TEX1 по D3DFVF_TEX8), или же можно использовать координаты текстуры, автоматически создаваемые Direct3D. Дополнительные сведения о последнем случае см. в разделе Автоматически создаваемые координаты текстуры (Direct3D 9). Если для текущего этапа текстуры D3DTSS_TEXTURETRANSFORMFLAGS задано значение D3DTTFF_DISABLE (значение по умолчанию), входные координаты не преобразуются. Если D3DTSS_TEXTURETRANSFORMFLAGS> задано любое другое значение, матрица преобразования для этого этапа применяется к входным координатам.

Перечислимый тип D3DTEXTURETRANSFORMFLAGS определяет допустимые значения для состояния этапа текстуры D3DTSS_TEXTURETRANSFORMFLAGS. За исключением флага D3DTTFF_DISABLE, который обходит преобразование координат текстуры, значения, определенные в этом перечислении, настраивают количество выходных координат, которые система передает растеризатору. Флаги D3DTTFF_COUNT1 D3DTTFF_COUNT4 указывают системе передать один, два, три или четыре элемента из выходных координат в растеризатор.

Флаг D3DTTFF_PROJECTED является специальным: он сообщает системе, что координаты текстуры предназначены для проецируемых текстур. Объедините флаг D3DTTFF_PROJECTED с другим элементом D3DTEXTURETRANSFORMFLAGS , чтобы указать растеризатору разделить все элементы на последний элемент перед растеризацией. Например, если явно используются координаты текстуры из трех элементов или преобразование приводит к созданию трехэлейной координаты текстуры, можно объединить флаги D3DTTFF_COUNT3 и D3DTTFF_PROJECTED, чтобы заставить растеризатор разделить первые два элемента на последние, создавая координаты текстуры, необходимые для работы с двумерной текстурой.

Примечание

За исключением карт кубических сред и текстур объемов, растеризаторы не могут обращаться к текстурам с помощью координат текстур с более чем двумя элементами. Если указать больше элементов, чем можно использовать для обработки текущей текстуры для этого этапа, лишние элементы игнорируются. Это также применяется при использовании двухd-координат текстуры для трехмерной текстуры.

 

Дополнительные сведения содержатся в следующих разделах.

Координаты текстуры