Введение в программирование трехмерных игр с DX9

       

Слева изображена треугольная грань


Рисунок 6.3. Слева изображена треугольная грань в трехмерном пространстве, а справа — двухмерный треугольный фрагмент текстуры, который должен быть наложен на данную грань


Для этого мы еще раз модифицируем нашу структуру данных вершины и добавим в нее пару координат текстуры, которые будут определять соответствие между вершиной и точкой текстуры.

struct Vertex { float _x, _y, _z; float _nx, _ny, _nz; float _u, _v; // координаты текстуры

static const DWORD FVF; }; const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;

Обратите внимание, что к описанию формата вершины мы добавили константу D3DFVF_TEX1, которая говорит о том, что наша структура данных вершины содержит пару координат текстуры.

Теперь для каждого треугольника, образованного тремя объектами Vertex также указывается соответствующий треугольный фрагмент текстуры, заданный с помощью координат текстуры.

ПРИМЕЧАНИЕ

Хотя мы задаем соответствие фрагмента текстуры и треугольной грани в трехмерном пространстве, наложение текстур не выполняется до этапа растеризации, на котором треугольная грань в трехмерном пространстве уже преобразована в пространство экрана.

Содержание раздела