При включенном расчете освещенности детали его применения зависят от типа вершин. Вершины, содержащие экранные координаты, и в этом случае используют цвет вершин без преобразования. При отсутствии в трехмерной вершине нормалей ее цвет получается черным. Если нормали вершин треугольника равны (0.0, 0.0, 1.0), то при освещении созданным выше источником треугольник также получается черным. Если же нормали равны (0.0, 0.0, -1.0), то треугольник имеет максимальную яркость. Созданный источник светит вдоль положительного направления оси Z, поэтому при значении (0.0, 0.0, -1.0) грань ориентирована перпендикулярно падающему свету. Нормаль равна (0.0, 0.0, 1.0) для той стороны грани, которая отвернута от источника. Черным цвет будет получаться для всех граней, у которых угол между направлением нормали и направлением на источник света больше 90°, поэтому кроме направленного света обычно предусматривают наличие в сцене источника рассеянного освещения.

Цвет вычисляется корректно, если направление света и значения нормалей заданы векторами единичной длины. Для нормализации векторов можно использовать вызов функции D3DXVec3Normal i ze((D3DXVECT0R3*) &1 ight. Di recti on, &SourceVec). В качестве второго параметра функции передается указатель на исходный вектор, а первый параметр она использует для записи нормализованного вектора. Его же она возвращает в качестве результата своей работы. Чтобы вызвать функцию нормализации, надо в установках компоновщика подключить библиотеку d3dx9.lib.

I Геометрические I преобразования В процессе формирования изображения постоянно возникает необходимость вычислять новые координаты вершин объектов при их перемещении в пространстве или масштабировании изображения. Аналогичные преобразования выполняются при переводе объектов из мировой системы координат в систему координат наблюдателя. В библиотеках трехмерной графики эти задачи решаются методами проективной геометрии и сводятся к умножению вектора однородных координат на матрицу, определяющую необходимое преобразование. API Windows предоставляет аналогичные возможности для геометрических преобразований на плоскости.


⇐ Предыдущая| |Следующая ⇒