Из рисунка видно, что в диалоговом окне можно установить точку, в которой расположена камера, а также задать вектор, вдоль которого будет направлен луч наблюдения.
1 МБ свободного места на диске .
Передача управления программе осуществляется посредством запуска исполняемого файла grapher.exe.
Входные данные: общие параметры объектов сцены.
Выходные данные: изображение сцены.
При редактировании параметров могут возникать следующие сообщения (см. табл. 3.7.):
Для исследования временных характеристик алгоритма обратной трассировки лучей были проведены эксперименты по увеличению размера рассчитываемого изображения при следующих условиях:
Эксперименты проводились на компьютере IntelPentiumIII 566 МГц, 196 Мб ОП, графическая карта 3dfxVodoo3 4 Мб.
Из полученного графика, изображенного на рис. 4.1, можно заметить:
· С ростом количества пикселей вычислительные затраты возрастают линейно, что имеет большое значение при построении изображений больших размеров.
· Текстурирование и фактурирование требуют весьма небольших затрат времени.
Разработанная программа позволяет получать на экране растрового дисплея реалистическое изображение трехмерной сцены моря с лодкой и учитывать различные природные явления как ветер, блики на воде, благодаря алгоритму обратной трассировки лучей и глобальной модели освещения Уиттеда. Также были разработаны алгоритмы для решения частных задач: определение положения солнца в зависимости от даты и времени наблюдения и широты местности, расчет неровностей водной поверхности с помощью шума Перлина. Программа полностью удовлетворяет требованиям технического задания, обеспечивая:
· Возможность задания сцены с различными размерами и положением лодки, положением солнца и освещенностью, а также произвольно задавать расположение и направление луча камеры.
· Поддержку наложения на трехмерные объекты текстуры и фактуры.
· Улучшение качества изображения с использованием алгоритма стохастического суперсэмплинга.
· Русскоязычный интерфейс пользователя.
По результатам работы программы были сделаны выводы:
· Алгоритм обратной трассировки лучей обеспечивает высокую степень реалистичности изображения, однако скорость выполнения вычислений на однопроцессорных системах оставляет желать лучшего. Тем не менее, скорее всего, данный алгоритм будет широко использоваться на параллельных вычислительных машинах, таких как кластеры, а также MISD- и MIMD-машинах.
· Без дополнительной оптимизации увеличение размера изображения ведет к значительному увеличению времени построения.
· Алгоритм моделирования водной поверхности с помощью фактурирования шумом Перлина показал реалистичность изображения воды при достаточно низких вычислительных затратах.
В качестве дальнейшего развития комплекса предполагается сделать шумовую функцию трехмерной для улучшения динамичности воды, а также оптимизацию программы для большого количества примитивов и разбиение водной поверхности на треугольники с помощью сетки высот.
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:
Агрегация классом А одного экземпляра класса В:
Включение классом А экземпляра класса В по указателю или ссылке: