Обработка координат текстуры (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, чтобы растризатор разделял первые два элемента на последний, создавая 2D-координаты текстур, необходимые для обращения к 2D-текстуре.
Заметка
За исключением кубических карт окружающей среды и объемных текстур, растризаторы не могут обращаться к текстурам с помощью текстурных координат, состоящих более чем из двух элементов. Если указать больше элементов, чем можно использовать для решения текущей текстуры для этой стадии, лишние элементы игнорируются. Это также применяется при использовании двумерных координат текстуры для одномерной текстуры.
Дополнительные сведения содержатся в следующих разделах.
- автоматически созданные координаты текстуры (Direct3D 9)
- Преобразования координат текстур (Direct3D 9)
- Специальные Эффекты (Direct3D 9)
Связанные разделы