Direct3D для Visual C++ Урок 6. Изменение формата вершин
На позапрошлом уроке мы рисовали треугольник. Фактически он у нас находился в двумерном пространстве - т. е. на плоскости. На этом уроке (и на паре следующих) мы перенесем его в трехмерное пространство.
Для этого нам сначала надо изменить формат вершин. Этом мы и займемся на этом уроке.
Найдите фрагмент нашего кода со старый форматом вершин:
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // Координаты вершины.
DWORD color; // Цвет вершины.
};
и измените его на новый формат:
struct CUSTOMVERTEX
{
FLOAT x, y, z; // Координаты вершины.
DWORD color; // Цвет вершины.
};
Как вы видите, мы просто убрали переменную rhw из нашей структуры.
Раз мы теперь имеем другую структуру для вершин, то мы должны поменять и метод InitVB. Например, вот таким образом:
Основное изменение тут в том, что мы убрали по одному числу из каждой вершины (точно также, как и из формата вершин).
Кроме того, везде надо вместо D3DFVF_XYZRHW поставить D3DFVF_XYZ (это, разумеется, именно потому, что у нас теперь никакого rhw в структуре вершин нет). Это нам надо сделать в двух местах: во-первых, в уже измененном методе InitVB: