Смекни!
smekni.com

Построение реалистических изображений поверхности океана с 3-х мерной лодки которая плавает (стр. 6 из 6)

– Настройки

· Разрешение – установка размеров получаемого изображения.

· Параметры – установка параметров сцены.

· Положение камеры – установка положения и ориентации камеры

– Построение

· Построение – прорисовка одиночного кадра сцены.

· Движение – циклическая прорисовка кадров при движении лодки

– Выход – завершение работы программы.

3.3.2 Диалог установки размера изображения

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

Внешний вид диалогового окна с установленными по умолчанию значениями показан на рис. 3.7.


3.3.3 Диалог установки параметров сцены

Диалоговое окно параметров сцены

Рис. 3.8 Для задания параметров сцены используется диалог представленный на рис. 3.8, который содержит три вкладки: «Общие», «Лодка», «Вода». Они предназначены для задания общих параметров сцены, для задания параметров лодки, и для задания параметров водной поверхности соответственно.

На закладке «Общие», можно изменять дату и время и широту местности для изменения положения солнца, параметры ветра, фоновую освещенность и цвет неба.

Для задания параметров лодки используется вкладка «Лодка» (см. рис. 3.9)

Вкладка «Лодка»


Рис. 3.9 Кроме габаритных параметров, для лодки можно задавать цвет материала и цвет паруса, для этого нужно нажать кнопку «Выбрать» напротив соответствующей надписи – откроется стандартный диалог выбора цвета. Выбранный цвет отображается в прямоугольнике слева от кнопки.

Можно также выбрать текстуру, которая будет накладываться на лодку и парус, для этого нужно установить флажки «Текстура лодки» и «Текстура паруса» и выбрать файлы текстур в формате BMP.

Для редактирования свойств материала лодки используется диалоговое окно редактора материала, показанное на рис. 3.10.

Как можно видеть из рисунка, данное диалоговое окно позволяет устанавливать все параметры, указанные в классе CSurface.

Вкладка «Вода»

Рис. 3.11 Для водной поверхности можно задать только ее цвет с помощью кнопки «Выбрать».

Для того, чтобы изменения вступили в силу, нужно нажать кнопку «ОК». Нажатие кнопки «Отмена» оставит все параметры такими, какими они были до изменения.

3.3.4 Диалог установки параметров камеры

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


Из рисунка видно, что в диалоговом окне можно установить точку, в которой расположена камера, а также задать вектор, вдоль которого будет направлен луч наблюдения.

3.4 Условия применения программы

Минимальные требования к аппаратным средствам и программному обеспечению ЭВМ:

Операционная система MicrosoftWindows

Процессор IntelPentium 133 МГц;

Оперативная память 8 МБ;

SVGA-видеокарта, видеопамять 1 МБ;

1 МБ свободного места на диске .

3.5 Обращение к программе

Передача управления программе осуществляется посредством запуска исполняемого файла grapher.exe.

3.6 Входные и выходные данные

Входные данные: общие параметры объектов сцены.

Выходные данные: изображение сцены.

3.7 Сообщения

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

Таблица 3.7 «Сообщение программы»

Сообщение Описание
«Пожалуйста введите число от A до B» Требуется ввести действительное число из интервала [A;B] для заданного параметра.
«Пожалуйста, введите целое число от A до B» Требуется ввести целое число из интервала [A;B] для заданного параметра.
«Пожалуйста, введите число» Данный параметр может быть только числом. Сообщение возникает когда окно ввода не содержит знаков или содержит символы кроме цифр.

4. ЭКСПЕРИМЕНТАЛЬНО-ИССЛЕДОВАТЕЛЬСКИЙ РАЗДЕЛ

4.1 Описание экспериментов

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

· Без использования текстур

· С использованием текстур

Эксперименты проводились на компьютере IntelPentiumIII 566 МГц, 196 Мб ОП, графическая карта 3dfxVodoo3 4 Мб.

4.2. Результаты экспериментов

Из полученного графика, изображенного на рис. 4.1, можно заметить:

· С ростом количества пикселей вычислительные затраты возрастают линейно, что имеет большое значение при построении изображений больших размеров.

· Текстурирование и фактурирование требуют весьма небольших затрат времени.

5. ЗАКЛЮЧЕНИЕ

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

· Возможность задания сцены с различными размерами и положением лодки, положением солнца и освещенностью, а также произвольно задавать расположение и направление луча камеры.

· Поддержку наложения на трехмерные объекты текстуры и фактуры.

· Улучшение качества изображения с использованием алгоритма стохастического суперсэмплинга.

· Русскоязычный интерфейс пользователя.

По результатам работы программы были сделаны выводы:

· Алгоритм обратной трассировки лучей обеспечивает высокую степень реалистичности изображения, однако скорость выполнения вычислений на однопроцессорных системах оставляет желать лучшего. Тем не менее, скорее всего, данный алгоритм будет широко использоваться на параллельных вычислительных машинах, таких как кластеры, а также MISD- и MIMD-машинах.

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

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

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


6. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Роджерс Д. Алгоритмические основы машинной графики / Пер. с англ. –М.:Мир, 1989. – 512 с.,ил.

2. Авдеева С.М., Куров А.В. Алгоритмы трехмерной машинной графики: учебное пособие. – М.: Издательство МГТУ им. Н.Э.Баумана, 1996. – 60 с., ил.

3. Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения. – М.: Диалог-МИФИ, 1995. – 288 с.

4. Prosise, Jeff. Programming Windows with MFC – 2nd ed. – Washington - Microsoft Press,1999. – 112 с., ил.

5. Страуструп Б. Язык программирования C++, спец. изд. / Пер. с англ. – М.: СПб.: Издательство Бином – Невский Диалект, 2002. – 1099 с., ил.

6. Воронцов-Вельяминов Б.А. Очерки о Вселенной.-М.: Наука, 1964.- 552с., ил.

7. Watt, Mark. Ligth-Water Interaction using Backward Beam Tracing // Computer Graphics, Volume 24, Number 4, August 1990 – London, Digital Pictures, 1990 – 23-32

8. Борн М., Вольф Э. Основы оптики.- М.: Наука, 1970, 885 с.

9. Hugo Elias. Perlin Noise // СайтVirgin.net ISP:

URL: http://freespace.virgin.net/hugo.elias/models/m_perlin.htm


Приложение 1

Обозначения, использованные в диаграммах классов:

Класс:

Наследование класса B от класса A:

Агрегация классом А одного экземпляра класса В:

Включение классом А экземпляра класса В по указателю или ссылке: