Построение изображений ландшафта в реальном времени
Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики. Типы, структуры данных и функции, использованные при реализации программного комплекса. Тип и структура файла для хранения ландшафта. Связи между модулями программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.06.2009 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3.2.2.2.1 Инструментальная форма «Положение ландшафта»
Рис. 3.2.2.2.1.1. Инструментальная форма «Положение ландшафта»
Данная форма предназначена для управления положением ландшафта в пространстве. Она содержит следующие элементы управления:
· поле ввода "Приращение координат" - предназначено для задания величины шага перемещения ландшафта в экранной системе координат;
· поле ввода "Изменение масштаба" - задание величины процентного изменения коэффициента масштабирования;
· поле ввода "Приращение угла" - задание величины шага поворота ландшафта (задается в градусах);
· поле ввода "Центр вращение" - ввод трех координат центра вращения ландшафта в системе координат ландшафта;
· кнопки группы "Переместить" предназначены для перемещения и масштабирования ландшафта. Эти же действия можно выполнять с помощью мыши или клавиатуры. Мышь: перемещение осуществляется при удерживаемой клавише Shift, для масштабирования используется колесико мыши; Клавиатура: стрелочные клавиши для перемещения, клавиши '+', '-' для масштабирования;
· кнопки группы "Повернуть" используются для вращения ландшафта относительно соответствующих осей. Вращение ландшафта также может производиться с помощью мыши или клавиатуры. Мышь: горизонтальное смещение - поворот относительно оси Z, вертикальное - относительно X, горизонтальное с удерживаемой клавишей Alt - относительно Y; Клавиатура: относительно X - Insert и Delete, Y - Home и End, Z - PageUp и PageDown;
· кнопка "В исходное положение" предназначена для возвращения ландшафта и источника света в то положение, в котором они находились непосредственно после загрузки.
3.2.2.2.2 Инструментальная форма «Визуальные параметры»
Рис. 3.2.2.2.21. Инструментальная форма «Визуальные параметры»
Эта форма предназначена для выбора методов и параметров визуализации ландшафта. Для этого служат следующие элементы интерфейса:
· группа "Вид ландшафта" позволяет выбрать метод построения ландшафта;
· группа "Закраска" определяет метод визуализации треугольников ландшафта;
· панель "Цвет ландшафта" определяет базовый цвет ландшафта. Выбор цвета осуществляется с помощью диалога, вызываемого щелчком по панели.
3.2.2.2.3 Инструментальная форма «Параметры источника света»
Рис. 3.2.2.2.3.1. Инструментальная форма «Параметры источника света»
Данная форма предназначена для управления источником света. Присутствуют следующие элементы интерфейса:
· поле ввода "Координаты" позволяет задавать координаты источника света в системе координат ландшафта;
· кнопки группы "Переместить" предназначены для переноса источника света вдоль соответствующих осей. Используется приращение координат, заданное на форме "Положение ландшафта". Перемещение источника возможно также и с помощью мыши и клавиатуры. Мышь (с удерживаемой клавишей Ctrl): горизонтальное перемещение - перемещение вдоль X, вертикальное - вдоль Y; Клавиатура (при удержании Ctrl): стрелочные клавиши - перемещение вдоль соответствующих осей, клавиши '+' и '-' - вдоль оси Z,
· кнопки группы "Повернуть" позволяют вращать источник света относительно соответствующих осей. Используется приращение угла с формы "Положение ландшафта". Вращение источника света предусмотрено также и с помощью клавиатуры (при удержании Ctrl): клавиши Insert и Delete, Home и End, Page Up и Page Down - вращение относительно осей X, Y и Z соответственно;
· переключатель "Показывать источник" определяет видимость источника света. Он схематично изображается в виде желтого кружочка. Кружочек сплошной, если источник находится между наблюдателем и ландшафтом, в противном случае он контурный;
· группа "Вращение по таймеру" позволяет инициировать вращение источника света относительно выбранных осей по таймеру;
3.2.2.2.4 Инструментальная форма «Статистика»
Рис. 3.2.2.2.4.1. Инструментальная форма «Статистика»
Эта форма содержит информацию о программе и текущем ландшафте. В частности, после загрузки ландшафта на нее выводится информация о времени загрузки (в миллисекундах), числе треугольников ландшафта, его линейных размерах (в пикселях), а также о распределении памяти для хранения ландшафта, Z-буфера, буфера кадра.
Кнопка "Определить" позволяет определить число кадров вывода ландшафта, рассчитываемых и выводимых за 1 секунду.
3.2.2.3 Работа программы
3.2.2.3.1 Требования к расположению файлов программы
Исполняемый файл программы - LandscapeProj.exe. В папке, где размещен этот файл, должна находиться пиктограмма LND_Icon.ico. Эта пиктограмма потребуется при регистрации расширения LND - она будет присвоена файлам с этим расширением. Остальные требования аналогичны описанным в Разделе, касающемся программы “Редактор карт”.
3.2.2.3.2 Открытие файлов ландшафтов
Открытие файлов *.lnd возможно тремя способами:
· непосредственно через меню программы с помощью специального диалога;
· двойным щелчком по файлу ландшафта (после регистрации расширения);
· путем перетаскивания файла на форму приложения. После открытия файла просмотр ландшафта осуществляется с помощью уже описанных инструментальных форм.
3.2.3 Системные требования
Системные требования программного комплекса создаются главным образом приложением «Просмотр ландшафта», так как оно намного более требовательно к системным ресурсам, чем «Редактор карт». Они таковы:
· операционная система Windows 98/Me/2000/XP/2003 Server;
· процессор c тактовой частотой 400 МГц;
· объем оперативной памяти 64 МБ;
· видеокарта, обеспечивающая графическое разрешение 1024x768 и глубину цвета 24 бита;
· 35 МБ дискового пространства.
4. Экспериментально-исследовательская часть
Тестирование проводилось на компьютере Pentium IV - 2.67 GHz/768 Mb/GeForce4 MX-440, AGP 8x, DDR 128 Mb.
Были проведены следующие исследования:
1) исследование временных характеристик алгоритмов закраски - для 3 реализованных в работе алгоритмов были произведены исследования зависимости скорости работы от числа треугольников ландшафта;
2) исследование временных характеристик загрузки различных типов LND-файлов (текстового и типизированного);
3) исследование результатов использования метода группового кодирования при создании HCL-файлов.
В качестве тестовой карты в исследованиях № 1 и 2 была взята карта “Алтай.hcl”. Размеры карты “Алтай.hcl”: 430x409x39 пикселей (X x Y x Z).
4.1. Исследование № 1
Условия теста: в «Редактор карт» была загружена выбранная карта, далее, с изменяемым от 1 до 20 пикселей, шагом разбиения карты, строились ландшафты. Во время тестов никаких манипуляций с изображением ландшафта не производилось - оно оставалось в том положении, в котором находилось непосредственно после загрузки. Результаты теста приведены в таблице:
Таблица 4.1.1. Результаты исследования № 1
Метод закраски и |
Число |
Шаг разбиения |
|||
Однотонная |
Гуро |
Фонг |
|||
3 |
3 |
3 |
350064 |
1 x 1 |
|
8 |
7 |
6 |
87720 |
2 x 2 |
|
12 |
11 |
9 |
38896 |
3 x 3 |
|
17 |
15 |
10 |
22032 |
4 x 4 |
|
21 |
18 |
12 |
14104 |
5 x 5 |
|
24 |
21 |
12 |
9792 |
6 x 6 |
|
27 |
23 |
13 |
7316 |
7 x 7 |
|
30 |
25 |
14 |
5508 |
8 x 8 |
|
33 |
27 |
14 |
4416 |
9 x 9 |
|
35 |
28 |
14 |
3526 |
10 x 10 |
|
37 |
29 |
15 |
2964 |
11 x 11 |
|
39 |
30 |
15 |
2448 |
12 x 12 |
|
40 |
31 |
15 |
2112 |
13 x 13 |
|
41 |
32 |
15 |
1860 |
14 x 14 |
|
42 |
32 |
15 |
1624 |
15 x 15 |
|
43 |
33 |
16 |
1404 |
16 x 16 |
|
44 |
34 |
16 |
1248 |
17 x 17 |
|
46 |
35 |
16 |
1104 |
18 x 18 |
|
46 |
35 |
16 |
1012 |
19 x 19 |
|
49 |
36 |
16 |
924 |
20 x 20 |
Для большей наглядности приведем графики зависимости числа кадров, обрабатываемых за 1 секунду, от шага разбиения и числа треугольников ландшафта:
Рис. 4.1.1. Результаты исследования № 1
Из приведенных выше таблицы и диаграммы можно сделать следующие выводы:
· увеличение числа треугольников ландшафта вызывает уменьшение числа кадров, обрабатываемых за 1 секунду;
· закраска по Фонгу требует наибольших вычислительных ресурсов по сравнению со всеми остальными методами, в тоже время скорость ее работы меньше всего зависит от числа треугольников ландшафта;
· при увеличении числа треугольников ландшафта разница в скорости работы рассмотренных алгоритмов уменьшается. Когда карта разбивается на треугольники с шагом 1 x 1, различие между алгоритмами становится минимальным - как по скорости работы, так и по качеству получаемого изображения (однотонная закраска выглядит менее качественно, чем закраска Фонга и Гуро).
4.2. Исследование № 2
При разработке программного комплекса формат файла LND (для хранения информации о треугольниках ландшафта) менялся. На начальной стадии разработки эти изменения касались только добавления новых полей в записи, хранимые в файле, тип файла был текстовым. Но постепенно карты ландшафтов, разрабатываемых в «Редакторе карт», становились все более сложными, они требовали все большей детализации. Поэтому возрастали объемы LND-файлов, При этом время загрузки значительно увеличивалось и становилось совершенно неудовлетворительным. В результате было принято решение изменить тип LND-файла, сделать его типизированным. После этого время загрузки LND-файлов в «Просмотр ландшафта» значительно сократилось. Следует заметить, что скорость записи информации в текстовый и типизированный файлы практически не отличается. Ниже приведены временные характеристики загрузки текстовых и типизированных LND-файлов.
Таблица 4.2.1. Результаты исследования № 2
Шаг разбиения (X x Y) |
Тип LND-файла |
||||
Текстовый |
Типизированный |
||||
Объем файла (Мб) |
Время загрузки (с) |
Объем файла (Мб) |
Время загрузки (с) |
||
1 x 1 |
0,113 |
1,469 |
0,310 |
0,016 |
|
2 x 2 |
0,140 |
2,657 |
0,390 |
0,016 |
|
3 x 3 |
0,175 |
4,609 |
0,480 |
0,031 |
|
4 x 4 |
0,233 |
7,140 |
0,640 |
0,047 |
|
5 x 5 |
0,313 |
10,828 |
0,860 |
0,047 |
|
6 x 6 |
0,451 |
19,515 |
1,240 |
0,078 |
|
7 x 7 |
0,704 |
46,968 |
1,930 |
0,125 |
|
8 x 8 |
1,210 |
157,812 |
3,410 |
0,187 |
|
9 x 9 |
2,740 |
662,781 |
7,700 |
0,437 |
|
10 x 10 |
10,90 |
4102,093 |
30,71 |
1,922 |
Для большей наглядности построены графики зависимости времени загрузки файла от его объема:
Рис. 4.2.1. Результаты исследования № 2
Из проведенного исследования можно сделать следующие выводы:
· время загрузки ландшафта из текстового файла значительно больше времени загрузки из типизированного файла (при малых объемах файлов это различие составляет десятки раз, при увеличении объемов оно достигает тысяч (!!!) раз);
· такое отличие времени загрузки, очевидно, объясняется постоянным преобразованием информации из символьного представления в числовое (работой функций Val или StrToFloat) при загрузке из текстового файла, в то время как при чтении из типизированного файла такого преобразования не требуется;
· использование типизированных файлов полностью оправдано за счет колоссального увеличения скорости загрузки ландшафтов, даже несмотря на почти троекратное увеличение объема получаемых LND-файлов.
4.3 Исследование № 3
Как уже говорилось, при создании HCL-файлов, хранящих информацию о разметке карт, используется метод группового кодирования. Этот метод уже был описан выше, поэтому в данном разделе будет приведена информация, доказывающая эффективность использования метода, и выяснена степень этой эффективности.
Демонстрация результатов использования метода была проведена на следующем наборе карт (размеры приведены в пикселях):
· Австралия.hcl (500 x 395);
· Алтай.hcl (430 x 409);
· Африка.hcl (700 x 730);
· Несжимаемый.hcl (200 x 200);
· Тест сглаживания.hcl (400 x 200);
· Южная Америка.hcl (735 x 1125).
Ниже приведена таблица, которая позволила бы выяснить степень сжатия изображения при использовании метода группового кодирования:
Таблица 4.3.1. Результаты исследования № 3
Название карты |
Размеры карты (пиксели) |
Размер BMP-файла (Кб) |
Размер HCL-файла (Кб) |
Отношение сжатия |
|
Австралия.hcl |
500 x 395 |
771 |
36 |
21:1 |
|
Алтай.hcl |
430 x 409 |
687 |
78 |
9:1 |
|
Африка.hcl |
700 x 730 |
1460 |
60 |
24:1 |
|
Несжимаемый.hcl |
200 x 200 |
117 |
156 |
1:1,3 |
|
Тест сглаживания.hcl |
400 x 200 |
312 |
10 |
31:1 |
|
Южная Америка.hcl |
735 x 1125 |
3150 |
107 |
29:1 |
Из проведенного исследования можно сделать следующие выводы:
· применение метода группового кодирования в данной работе полностью оправдано, поскольку при использовании его в отношении карт изообластей высот, наблюдаются достаточно высокие показатели сжатия (от 9:1 до 29:1, карта «Тест сглаживания» не учитывается, так как она не является реальной картой). Единственным недостатком использования этого метода является незначительное увеличение времени загрузки кодированных файлов в программу «Редактор карт» (это не демонстрировалось в данном исследовании);
· единственный случай, когда размер кодированного файла превышает размер исходного файла, наблюдается на специальном примере, призванном продемонстрировать недостаток метода.
5. Заключение
Разработанный программный комплекс отвечает всем предъявляемым к нему требованиям. Он обеспечивает возможность создания карт изообластей («Редактор карт») и построения в реальном времени на их основе трехмерных изображений ландшафтов («Просмотр ландшафта»). В нем реализованы все рассмотренные в данной работе алгоритмы машинной графики. Проведены исследования работы алгоритмов на различных наборах исходных данных. Тем не менее, существует множество путей усовершенствования описанного программного комплекса.
Во-первых, построение ландшафта возможно только на основе четко размеченной карты изообластей высот - невозможно использование, например, файла, полученного в результате сканирования некоторой карты. Но подготовка (разметка) карты изообластей вручную - очень трудоемкий процесс. Автоматизация процесса разметки значительно расширила бы возможности программного комплекса.
Во-вторых, получаемые изображения трехмерных ландшафтов выглядят не реалистично - они лишь позволяют получить представление о рельефе рассматриваемой области. Кроме того, изображение просматриваемого ландшафта не предоставляет пользователю информации о географических объектах, присутствующих в области, представляемой ландшафтом. Добавление возможности текстурирования и подписи географических объектов повысили бы информативность получаемого изображения ландшафта.
Однако, описанные проблемы очень сложны (распознавание и разметка карт), а некоторые из них выходят за рамки машинной графики.
6. Список литературы
1. Роджерс Д. Алгоритмические основы машинной графики: пер. с англ.-- М.: Мир, 1989.-- 512 с.: ил.
2. Порев В. Н. Компьютерная графика. - СПб.: БХВ-Петербург, 2002. - 432 с.: ил.
3. Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. СПб.: БХВ-Петербург, 2003. - 560с.: ил.
4. Авдеева С.М., Куров А.В. Алгоритмы трехмерной машинной графики: Учебное пособие. - М.: Изд-во МГТУ им. Н.Э. Баумана, 1996. - 60 с.: ил.
5. Архангельский А.Я. Приемы программирования в Delphi. - М.: ООО «Бином-Пресс», 2003. - 784 с.: ил.
6. http://www.xdev.ru - «Генерация трехмерных ландшафтов».
Оглавление
- 1. Введение 1
- 2. Конструкторская часть 2
- 2.1. Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики 2
- 2.1.1. Равномерная сетка высот 2
- 2.1.2. Сглаживание ландшафта 4
- 2.1.3. Трехмерные аффинные преобразования 5
- 2.1.4. Проецирование 6
- 2.1.5. Отображение в окне 7
- 2.1.6. Алгоритм Z-буфера 8
- 2.1.7. Освещение 10
- 2.1.7.1. Однотонная закраска (метод гранения) 11
- 2.1.7.2. Метод Гуро 11
- 2.1.7.3. Метод Фонга 13
- 2.1.7.4. Анализ методов Гуро и Фонга 14
- 2.1.8. Последовательность действий при визуализации сцены 15
- 2.2. Типы, структуры данных и функции,
использованные при реализации программного комплекса 16 - 2.2.1. Представление исходных данных 16
- 2.2.2. Программа «Редактор карт» 16
- 2.2.2.1. Изообласти высоты 16
- 2.2.2.2. Равномерная сетка высот и ландшафт 16
- 2.2.2.3. Тип и структура файла для хранения карт изообластей 18
- 2.2.2.4. Распределение программы по модулям 19
- 2.2.2.5. Связи между модулями программы 20
- 2.2.3. Программа «Просмотр ландшафта» 21
- 2.2.3.1. Процедуры манипуляции изображением ландшафта 21
- 2.2.3.2. Z-буфер 22
- 2.2.3.3. Буфер кадра 22
- 2.2.3.4. Процедуры визуализации ландшафта 22
- 2.2.3.2. Тип и структура файла для хранения ландшафта 23
- 2.2.3.3. Распределение программы по модулям 24
- 2.2.3.4. Связи между модулями программы 25
- 3. Технологическая часть 26
- 3.1. Выбор языка программирования 26
- 3.2. Описание программного комплекса 26
- 3.2.1. Программа «Редактор карт» 26
- 3.2.1.1. Общие сведения 26
- 3.2.1.2. Интерфейс программы 27
- 3.2.1.3. Работа программы 29
- 3.2.2. Программа «Просмотр ландшафта» 30
- 3.2.2.1. Общие сведения 30
- 3.2.2.2. Интерфейс программы 30
- 3.2.2.3. Работа программы 33
- 3.2.3. Системные требования 34
- 4. Экспериментально-исследовательская часть…. 35
- 4.1. Исследование № 1 36
- 4.2. Исследование № 2 38
- 4.3. Исследование № 3 40
- 5. Заключение 41
- 6. Список литературы 42
Подобные документы
Группы и назначение алгоритмов машинной графики верхнего и нижнего уровня. Учет свойств поверхности тела. Уравнения линий, эллипсов. Построение окружностей аппроксимацией отрезками. Отсечение нелицевых граней. Принципы построения полутоновых изображений.
презентация [10,4 K], добавлен 14.08.2013Понятие фрактала, принципы создания изображения. Разработка алгоритма и режимов генерации ландшафта. Описание программы FracLandscapes.exe. в среде разработки Delphi 10. Примеры построения ландшафта с использованием различных режимов и количества изгибов.
курсовая работа [688,9 K], добавлен 04.05.2014Трехмерное моделирование: улучшение алгоритмов рендеринга и просчета трехмерных изображений. Обоснование выбора алгоритмов. Выбор языка программирования и среды разработки. Структура данных и программного комплекса. Системные требования для работы.
курсовая работа [263,8 K], добавлен 24.06.2009Описание приложения в виде пользовательского сценария. Проектирование обмена сообщениями между модулями. Разработка общей структуры приложения. Обзор структуры файлов. Разработка получения данных со страницы. Характеристика результата работы программы.
дипломная работа [1,5 M], добавлен 22.03.2018Структура данных в динамической памяти, однонаправленные списки. Разработка программного комплекса, предназначенной для хранения и предоставления пользователям данных об улицах города. Реализация данной программы при помощи метода расширения ядра.
курсовая работа [438,3 K], добавлен 11.01.2016Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.
курсовая работа [1,5 M], добавлен 21.11.2013Построение схемы алгоритма и программы для создания графика временной функции, работающей в машинном и реальном времени. Выбор методов решения и их обоснование. Значение коэффициентов и временной функции. Реализация временных задержек в программе.
курсовая работа [6,2 M], добавлен 09.03.2012Современные алгоритмы машинной графики. Алгоритмы построения изображения. Глобальная модель освещения Уиттеда. Выбор и обоснование языка и среды программирования. Вспомогательные классы свойств трехмерных объектов. Условия применения программы.
курсовая работа [785,7 K], добавлен 24.06.2009Изучение условий поставленной задачи и используемых данных для разработки программы хранения информации о рейсах поезда. Описание разработанных функций, листинга, блок-схем алгоритмов и дерева функции. Рассмотрение сценария диалога данной программы.
курсовая работа [532,7 K], добавлен 20.07.2014Разработка программы, представляющей собой простой текстовый редактор, использующий структуру данных для промежуточного хранения редактируемого файла. Функциональное описание разработки. Внутренняя структура двоичного файла нового класса "bin_file".
курсовая работа [254,6 K], добавлен 26.01.2013