Отображение трехмерной сцены

Вершина Л1 (400, -200, 3000) после приведения пирамиды к каноническому объему не отсекается по границам объема: хэ = (400-10/4)/3000 = 1/3, у9 = (-200 10 /3) /3000 = -2/9, гэ = Ю / 9 - (10000 / 9) / 3000 = 20 / 27.

Координаты вершин от В до F попробуйте получить самостоятельно.

Дальнейшие преобразования координат вершин (хэ, уэ, zj в систему рабочей области окна определяются методами SetVi ewport() и Present (), которые были детально рассмотрены при обсуждении операции кадрирования.

Отображение трехмерной сцены

Изученный материал позволяет построить сцену из нескольких объектов, подобную той, которая приведена на рис 24.4. При помощи простых моделей движения можно имитировать перемещение по сцене на автомобиле или облет на вертолете.

Пример сцены

Рис. 24.4. Пример сцены

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

Отображение средствами DirectX

Полученные выше матрицы геометрических преобразований используются в проекте DX9_Proj_Minim для воспроизведения треугольников (см. рис. 24.1) компьютерными средствами. Текст модуля приведен в листинге 24.3.

Геометрические преобразования

Листинг 24.3

#include <Windows.h>
#include <d3dx9math.h>
#include "My3D.h"
extern LPDIRECT3D9 D3D"opengl4_347.html">⇐ Предыдущая| |Следующая ⇒