48124 (Построение изображений ландшафта в реальном времени)

2016-07-30СтудИзба

Описание файла

Документ из архива "Построение изображений ландшафта в реальном времени", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48124"

Текст из документа "48124"

Факультет «Информатика и системы управления»

Кафедра «Программное обеспечение ЭВМ и информационные технологии»

Курсовой проект

по машинной графике

Расчётно-пояснительная записка

Тема:

«Построение изображений ландшафта в реальном времени»

Оглавление

1. Введение

2. Конструкторская часть

2.1 Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики

2.1.1 Равномерная сетка высот

2.1.2 Сглаживание ландшафта

2.1.3 Трехмерные аффинные преобразования

2.1.4 Проецирование

2.1.5 Отображение в окне

2.1.6 Алгоритм Z-буфера

2.1.7 Освещение

2.1.7.1 Однотонная закраска (метод гранения)

2.1.7.2 Метод Гуро

2.1.7.3 Метод Фонга

2.1.7.4 Анализ методов Гуро и Фонга

2.1.8 Последовательность действий при визуализации сцены

2.2 Типы, структуры данных и функции, использованные при реализации программного комплекса

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

2.2.2 Программа «Редактор карт»

2.2.2.1 Изообласти высоты

2.2.2.2 Равномерная сетка высот и ландшафт

2.2.2.3 Тип и структура файла для хранения карт изообластей

2.2.2.4 Распределение программы по модулям

2.2.2.5 Связи между модулями программы

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

2.2.3.1 Процедуры манипуляции изображением ландшафта

2.2.3.2 Z-буфер

2.2.3.3 Буфер кадра

2.2.3.4 Процедуры визуализации ландшафта

2.2.3.2 Тип и структура файла для хранения ландшафта

2.2.3.3 Распределение программы по модулям

2.2.3.4 Связи между модулями программы

3. Технологическая часть

3.1 Выбор языка программирования

3.2 Описание программного комплекса

3.2.1 Программа «Редактор карт»

3.2.1.1 Общие сведения

3.2.1.2 Интерфейс программы

3.2.1.3 Работа программы

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

3.2.2.1 Общие сведения

3.2.2.2 Интерфейс программы

3.2.2.3 Работа программы

3.2.3 Системные требования

4. Экспериментально-исследовательская часть

4.1 Исследование № 1

4.2 Исследование № 2

4.3 Исследование № 3

5. Заключение

6. Список литературы

1. Введение

Решение задачи построения поверхности на основе карты изолиний или изообластей высот является одним из этапов создания геоинформационной системы (компьютерная система, которая хранит в базе данных описание и обеспечивает анализ объектов, расположенных на поверхности Земли). Описание поверхности изолиниями высоты часто используется, например, в картографии. В данной работе решается задача построения изображения ландшафта на основе карты изообластей высот в реальном времени.

В свою очередь задача построения изображения ландшафта на основе карты изообластей включает в себя следующие задачи:

  • преобразование данной карты в равномерную сетку высот;

  • триангуляция полученной сетки высот;

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

Требование к скорости построения изображений ландшафта (для комфортной работы необходима производительность порядка 30 кадров в секунду [1]) определяет выбор алгоритма машинной графики, используемого для визуализации сцены – алгоритм Z-буфера в наибольшей степени отвечает этому требованию, так как он является наиболее простым в своей группе и требует наименьшего количества вычислительных ресурсов.

Кроме этого, в данной работе затронуты другие алгоритмы машинной графики: преобразование координат, проецирование, освещение.

При работе с освещением реализованы следующие алгоритмы заполнения плоских граней (в данной работе - треугольников):

  • метод гранения (однотонной закраски с учетом ориентации нормали к плоскости грани);

  • метод Гуро – метод закрашивания граней трехмерных объектов, который использует билинейную интерполяцию интенсивности цвета в вершинах граней;

  • метод Фонга – метод, основанный на билинейной интерполяции векторов нормалей в вершинах граней.

Цель данной работы – реализовать перечисленные алгоритмы в разрабатываемом программном комплексе.

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


2. Конструкторская часть


2.1 Выбор, обоснование и описание используемых
алгоритмов и понятий машинной графики


2.1.1 Равномерная сетка высот

Существует большое количество моделей описания поверхностей. Наиболее распространенными из них являются:

  • аналитическая модель – для описания поверхности используются математические формулы, например функции от двух аргументов z = f(x, y);

  • векторная полигональная модель – для описания пространственных объектов используются такие элементы, как вершины, векторы, полилинии, полигоны, полигональные поверхности;

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

  • неравномерная сетка – в этой модели поверхность описывается в виде множества отдельных точек, принадлежащих поверхности.

В данной работе в качестве модели описания поверхности (ландшафта) используется равномерная сетка высот. Эта модель описывает координаты отдельных точек поверхности способом, показанным на рисунке:

Рис. 2.1.1.1. Общий вид равномерной сетки высот

Каждому узлу сетки с индексами (i, j) приписывается значение высоты Zij. Индексам (i, j) отвечают определенные значения координат (x, y). Расстояние между узлами одинаковое – dX по оси X и dY по оси Y.

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

Следует отметить, что не каждая поверхность может быть представлена с помощью этой модели, так как если в каждом узле записывается только одно значение высоты, то это означает, что поверхность описывается однозначной функцией z = f(x, y). Кроме того, невозможно моделирование вертикальных граней.

В случае представления ландшафта в виде равномерной сетки высот эти ограничения являются незначительными и вполне допустимыми. Равномерная сетка часто используется для описания рельефа земной поверхности [2].

Следует выделить следующие положительные черты модели равномерной сетки:

  • простота описания поверхностей;

  • возможность быстро узнать высоту любой точки поверхности простой интерполяцией.

Но эта модель также имеет и недостатки:

  • для описания сложных поверхностей необходимо большое количество узлов, которое может быть ограничено объемом памяти компьютера;

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

Но в данной работе равномерная сетка используется опосредованно – сразу же при получении она разбивается на треугольники (производится ее триангуляция), поскольку реализация необходимых в процессе работы алгоритмов машинной графики для этого примитива наиболее проста. Разбиение на треугольники производится путем проведения диагонали из точки (i, j) в точку (i – 1, j + 1).


2.1.2 Сглаживание ландшафта

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

Его суть заключается в следующем. В процессе сглаживания в цикле производится усреднение высот 4 соседних пикселей. Для повешения качества и эффективности сглаживания, оно производится в 4 последовательных циклах – “слева направо”, “справа налево”, “сверху вниз” и “снизу вверх”.

Рис. 2.1.2.1. Циклы сглаживания ландшафта

Пиксели для усреднения высот выбираются следующим образом: на K-ой итерации цикла производится усреднение высот пикселей с индексами (i – 1, j - 1), (i – 1, j), (i, j - 1) и (i, j), на (K + 1)-ой же, в зависимости от номера цикла, усредняются высоты следующих пикселей:

  • в I цикле – пиксели тех же двух строк с индексами столбцов, увеличенными на 1;

  • во II цикле – пиксели тех же двух строк с индексами столбцов, уменьшенными на 1;

  • в III цикле – пиксели тех же столбцов со строчными индексами, увеличенными на 1;

  • в IV цикле – пиксели тех же столбцов со строчными индексами, уменьшенными на 1.

Ниже приведена иллюстрация, демонстрирующая результаты сглаживания тестового ландшафта:

Рис. 2.1.2.2. Результаты сглаживания – без сглаживания, 1 цикл, 10 циклов.


2.1.3 Трехмерные аффинные преобразования

В процессе работы программы может возникать необходимость преобразования объектов сцены – их сдвига, масштабирования, поворота.

Для трехмерного пространства любое аффинное преобразование может быть представлено последовательностью простейших операций [3].

Ниже приводятся уравнения и матрицы преобразований:

  • сдвиг точки вдоль координатных осей на dx, dy, dz:

;

  • масштабирование относительно начала координат с коэффициентами kx, ky, kz:

;

  • поворот относительно осей x, y, z на угол :

    • ось x:

  • ось y:

  • ось z:


2.1.4 Проецирование

В настоящее время наиболее распространены устройства отображения, которые синтезируют изображение на плоскости, например – экране монитора. Устройства, которые создают по-настоящему объемные изображения, пока достаточно редки. Но все чаще появляются сведения о подобных разработках, например, об объемных мониторах [2].

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

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

Пусть мировые координаты будут трехмерными декартовыми координатами. Для синтеза изображения на плоскости достаточно, казалось бы, двумерной экранной системы координат, однако из-за использования алгоритма Z-буфера (этот алгоритм будет описан далее), они должны быть трехмерными.

В компьютерной графике распространены параллельная и центральная (перспективная) проекции.

Рис. 2.1.4.1. Параллельная и центральная проекции

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

В данной работе для визуализации сцены использовалась аксонометрическая (разновидность параллельной) проекция, для нее все лучи располагаются под прямым углом к плоскости проецирования.

Как правило, расположение плоскости проецирования задается с помощью двух углов - и .

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее