Использование алгоритмов машинной графики для разработки модели прозрачных и отражающих объектов. Визуальная оценка реалистичности изображения, эффектов отражения и преломления. Поиск отраженного и преломленного лучей. Описание интерфейса программы.
В наши дни компьютеры используются во многих сферах деятельности. Особо можно выделить обработку информации, связанную с изображениями. Машинная графика - это область деятельности, в которой компьютеры используются для синтеза изображений и для обработки визуальной информации.Из излучающих объектов (источников освещения) исходят лучи света. Таких лучей по различным направлениям испускается бесчисленное множество. Те лучи, которые пересекаются с объектами, поглощаются, отражаются или преломляются.Алгоритм излучательности рассматривает частный случай решения уравнения освещенности, когда материалы являются диффузными.Так как источники освещения испускают очень большое количество лучей, алгоритм прямой трассировки не эффективен. При обратной трассировки лучи отслеживаются не от источников освещения, а от точки наблюдения. При реализации метода вводятся различные ограничения: А) Источники освещения могут только испускать лучи, но не могут отражать, поглощать и преломлять.В качестве базового алгоритма для построения реалистичного изображения был выбран алгоритм обратной трассировки лучей.При пересечение луча с поверхностью объекта определяются направления отраженного и преломленного лучей (если объект обладает соответствующими свойствами). Падающий луч, отраженный и нормаль к поверхности в точке касания лежат в одной плоскости, угол падения равен углу отражения. Будем считать, что задан радиус-вектор S, направленный на источник света, а также известен радиус-вектор нормали N. Поскольку векторы нормали, падающего луча и отраженного луча находятся в одной плоскости, то можно записать R1 S1=N`, где N` - это вектор, соответствующий диагонали ромба и совпадающий по направлению с нормалью.Для определения направления преломленного луча используется закон Снеллиуса: «отношение синусов углов падения и отражения равно отношению абсолютных коэффициентов преломления сред». Пусть заданы два единичных вектор: S1-это радиус-вектор, направленный на источник, и N1 - радиус-вектор нормали к границе раздела двух сред. Требуется найти единичный радиус-вектор преломленного луча T1. Найдем вначале вектор NT. Осталось найти выражение для вектора B.Согласно модели Уиттеда цвет некоторой точки объекта определяется суммарной интенсивностью Ia - интенсивность фоновой подсветки, Id - интенсивность, учитываемая для диффузного рассеивания, Is - интенсивность, учитываемая для зеркальности, Ir - интенсивность излучения, пришедшая по отраженному лучу, It - интенсивность излучения, пришедшая по преломленному лучу. Если между источником света и точкой пересечения луча с объектом находится непрозрачный объект, то считается, что данная точка находится в тени.При превышении глубины рекурсии перейти на шаг 12. Ищем точку пересечения луча с ближайшим объектом. Перебираем все источники освещения и проверяем, лежит ли между объектом и источником другой объект. А) Между точкой пересечения и источником освещения лежит другой объект - заносим нулевое значение в переменную “shade”. Б) Точка пересечения не перекрывается от источника освещения ни одним из объектов - заносим в переменную “shade” значение «1».В данной работе присутствует два вида примитивов, используемых в построении сцены.Векторное произведение - это вектор перпендикулярный к плоскости, которая образуется двумя векторами. Достаточно найти нормаль один раз, при инициализации сцены, вычислять нормаль каждый раз нет смысла, т.к. в любой точке треугольника нормали одинаковы, и это сократит вычислительные затраты.Для вычисления нормали к точке на сфере, необходимо вычесть координаты центра сферы, из координат точки поиска.Для ускорения поиска пересечения рекомендуется использовать метод оболочек. Если луч пересек оболочку, то необязательно, что этот луч пересечет и объект.Поиск пересечения с треугольником состоит из двух этапов: поиск пересечения луча с плоскостью треугольника и определение нахождения точки внутри него. A, B, C совпадают с координатами нормали к этой плоскости. Координаты нормали плоскости совпадают с координатами нормали треугольника. По аналогии с нормалью треугольника, свободный член в ходе работы программы не изменяется, поэтому вычисли его при инициализации сцена. Если знаменатель дроби равен нулю, значит луч параллелен плоскости, в которой лежит треугольник, следовательно, точки пересечения нет.A Vt, (2.17) которое можно записать в виде: x = x1 at, y = y1 bt, (2.18) z = z1 ct со сферой, заданной уравнением: (x-x0)2 (y-y0)2 (z-z0)2 = r2 (2.19) нужно подставить в уравнение сферы вместо x, y и z соответствующие уравнения луча. После раскрытия всех скобок и приведения подобных мы получим квадратное уравнение относительно параметра t. Если дискриминант квадратного уравнения меньше нуля, то луч и поверхность второго порядка общих точек пересечения не имеют. Для нахождения координат точек пересечения луча и поверхности достаточно подставить найденные значения параметра t в уравнения луча (2.17).Для выполнения работы был выбран язык C в среде программирования Microsoft Visual St
План
Содержание
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. Исследовательская часть
Заключение
Литература
Введение
В наши дни компьютеры используются во многих сферах деятельности. Самая важная функция компьютера - обработка информации. Особо можно выделить обработку информации, связанную с изображениями. Машинная графика - это область деятельности, в которой компьютеры используются для синтеза изображений и для обработки визуальной информации. В настоящее время 3D-моделирование является важнейшей областью машинной графики, так как построение трехмерного изображения, близкого к реальному, является достаточно сложной задачей.
Построить такое изображение можно используя различные алгоритмы. Например, прямую трассировку лучей, обратную трассировку лучей, алгоритм излучательности (radiosity). В ряде случаев используют алгоритм z-буфера, так как по быстродействию он опережает вышеперечисленные алгоритмы. Однако по качеству изображения он хуже рекурсивных алгоритмов.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы