Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Разработка модели преломляющих и отражающих объектов

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Использование алгоритмов машинной графики для разработки модели прозрачных и отражающих объектов. Визуальная оценка реалистичности изображения, эффектов отражения и преломления. Поиск отраженного и преломленного лучей. Описание интерфейса программы.
Краткое сожержание материала:

Размещено на

Размещено на

Курсовая работа по курсу: «Машинная графика»

«Разработка модели преломляющих и отражающих объектов»

Москва 2012г.

Техническое задание

Основание для разработки - курсовая работа по курсу «Машинная графика».

Цель разработки - разработка модели прозрачных и отражающих объектов с использованием алгоритмов машинной графики.

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

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

Функциональные характеристики:

1. Перемещение камеры.

2. Наличие теней.

3. Наличие объекта с преломлением.

4. Наличие объекта с отражением.

5. Возможность оценки временных характеристик.

Содержание

1. Введение

1.1 Алгоритм прямой трассировки лучей

1.2 Алгоритм излучательности

1.3 Алгоритм обратной трассировки лучей

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

2.1 Поиск отражённого луча

2.2 Поиск преломлённого луча

2.3 Освещение и тени

2.4 Алгоритм

2.5 Вычисление нормалей

2.5.1 Вычисление нормали к полигону

2.5.2 Вычисление нормали к сфере в заданной точке

2.6 Поиск пересечения с объектами

2.6.1 Поиск пересечения с полигоном

2.6.2 Поиск пересечения со сферой

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

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

3.2 Структура программы

3.2.1 Список модулей программы

3.2.2 Структуры и классы программы

3.3 Описание интерфейса программы

4. Исследовательская часть

Заключение

Литература

1. Введение

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

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

1.1 Алгоритм прямой трассировки лучей

Данный алгоритм разработан давно, однако используется он редко. Это связано с большими вычислительными затратами.

Из излучающих объектов (источников освещения) исходят лучи света. Эти лучи называют первичными. Таких лучей по различным направлениям испускается бесчисленное множество. Те лучи, которые пересекаются с объектами, поглощаются, отражаются или преломляются. В результате этого возникают вторичные лучи. Лучи, не пересекающие объекты, уходят в свободное пространство.

В данном алгоритме необходим перебор всех лучей и проверка на попадание луча на объект и в камеру. Из-за большого количества лишних операций, связанных с тем, что не все лучи попадут в камеру, этот метод является одним из самых долгих.

1.2 Алгоритм излучательности

Алгоритм излучательности рассматривает частный случай решения уравнения освещенности, когда материалы являются диффузными. Материал называется

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

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

1.3 Алгоритм обратной трассировки лучей

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

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

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

Б) Для объектов со свойствами преломления не учитывается зависимость коэффициента преломления от длины волны.

В) Вводится максимальный уровень глубины рекурсии трассировки.

Эта работа посвящена методу обратной трассировки лучей.

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

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

2.1 Поиск отражённого луча

При пересечение луча с поверхностью объекта определяются направления отражённого и преломлённого лучей (если объект обладает соответствующими свойствами). Падающий луч, отражённый и нормаль к поверхности в точке касания лежат в одной плоскости, угол падения равен углу отражения.

Будем считать, что задан радиус-вектор S, направленный на источник света, а также известен радиус-вектор нормали N. Требуется найти вектор отражённого луча. Обозначим его R.

Отражение луча

Рис. 2.1

Рассмотрим единичные вектора R1 и N1. Поскольку векторы нормали, падающего луча и отражённого луча находятся в одной плоскости, то можно записать

R1+S1=N`,

где N` - это вектор, соответствующий диагонали ромба и совпадающий по направлению с нормалью. Длина вектора N` равна 2 cos.

Так как вектор N` по направлению совпадает с N1, то

N` = N12 cos,

или

R1+S1=N12 cos

Отсюда найдём единичный вектор отражённого луча:

R1=N12 cos- S1= N/|N|2 cos-S/|S|

Найдём cos, используя скалярное произведение векторов N и S:

cos = N*S/(|N|*|S|)

Подставим это значение в выражение для R1:

R1 = N*2*N*S/(|N2|*|S|) - S/|S|

Полагая, что искомый вектор отражённого луча будет иметь такую же длину, что и вектор падающего луча, то есть R=|S|R1, получим

R = N*2*N*S/|N2|-S (2.1)

2.2 Поиск преломлённого луча

Для определения направления преломлённого луча используется закон Снеллиуса: «отношение синусов углов падения и отражения равно отношению абсолютных коэффициентов преломления сред».

Пусть заданы два единичных вектор: S1- это радиус-вектор, направленный на источник, и N1 - радиус-вектор нормали к границе раздела двух сред. Также должны быть известны два коэффициента преломления для данных сред n1 и n2.

Преломление луча

Рис. 2.2

Требуется найти единичный радиус-вектор преломлённого луча T1. Искомый вектор равен сумме двух векторов:

T1 = NT+B

Найдём вначале вектор NT. Он противоположен по направлению вектору нормали, а его длина равна |T1|cosб2 = cosб2 (так как по условию задачи T1 - единичный). Отсюда следует, что NT = -N1cosб2

Необходимо найти cosб2. Запишем закон преломления n1sinб1 = n2sinб2 в виде:

sinб2 = nsinб1,

где n = n1/n2.

Воспользуемся тождеством cos2+sin2 = 1.

Тогда:

Другие файлы:

Создание 3D-модели лабиринта с вертикальными стенами
Разработка структур данных. Иерархия объектов в пространстве. Пользовательские типы данных, преимущества, недостатки подхода. Разработка графических а...

Разработка базы данных "Междугородние пассажирские перевозки"
Выделение объектов предметной области и взаимосвязей между ними. Разработка ER-модели на логическом уровне с использованием системы Erwin Data Modeler...

Разработка алгоритмов поиска оптимального маршрута для БЛА при наблюдении им подвижных наземных объектов
Обзор существующих методов и подходов к планированию групповых действий. Разработка модели одиночных и групповых действий беспилотного летающего аппар...

Разработка нейросетевой программы прогнозирования стоимостных показателей объектов
Функциональные возможности программного продукта. Требования к программным и аппаратным средствам. Обоснование выбора наилучшей модели для прогнозиров...

Создание имитационной модели Банка в системе SIMULINK
Создание модели банка, в котором два кассира сидят в помещение, а два обслуживают клиентов, подъезжающих на автомобилях. Описание атрибутов объектов....