Программа «Просмотр ландшафта»

 

Main – модуль, в котором происходит связывание всех компонентов программы. В не содержатся следующие функции:

 

// загрузка настроек, таких как путь к карте высот, карте освещенности и текстуре ландшафта и неба, из файла

void LoadSettings(char *FileName)

        

 

// В этом событии указываются действии, совершаемые в момент старта программы

bool appPreInit()

 

// В этом событии указывается последовательность действий при визуализации каждого кадра (несколько раз в секунду)

bool appRender()

 

 

// В этом событии указываются действия, совершаемые при закрытии программы (освобождение ресурсов)

void appShutdown()

// Обработчик нажатий клавиш

bool ProcessKey(HWND hWnd,WPARAM wParam)

 

Terrain – Описывает непосредственно геометрию ландшафта (вершины, индексы, нормали), текстуры ландшафта, неба, воды.

Также этот класс отвечает за визуализацию всех этих объектов.

       DynamicCamera – Реализация камеры, ее передвижения, вращения, а также связь с ландшафтом (передвижение по нему).

       Font – модуль для инициализации и вывода текста на экран

       Render – модуль для реализации визуализации в 3-мерном и 2-мерном режимах

       Image – модуль для загрузки и обработки изображений

       Texture – модуль для загрузки изображений и инициализаций структур

       Vector – модуль для работы с векторами (сложение, вычитание, скалярное произведение, векторное произведение)

       Matrix – модуль для работы с матрицами (умножение, транспонирование, нахождение обратной). Матрицы используются для реализации композиции трансформаций (перемещение, вращение, поворот), для реализации геометрических алгоритмов

       Base – модуль для включения основных стандартных библиотек

       Win32 – модуль, связанный с включением библиотек среды Windows

 

Представление исходных данных

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

В данной работе был выбран полигональный способ аппроксимации пространственных фигур. Сущность полигональной модели состоит в том, что каждое тело представляется в виде определенного набора граней-многоугольников, с определенной точностью приближающих форму исходного тела. В качестве грани-многоугольника был выбран треугольник, так как это наиболее простой многоугольник, его точки всегда лежат в одной плоскости и любой более сложный многоугольник можно разбить на несколько треугольников. Но ускорения вычислений я не стал вводить тип треугольник в моей программе. Вместо этого есть массив вершин и массив индексов, которые и указывают на определенные треугольники (0, 1, 2 – первый треугольник; 1, 2, 3 – второй треугольник и т.д.)

Разработанные типы данных и форматы файлов подробно описаны в последующих разделах.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: