Курсовая работа: Построение реалистичного изображения методом обратной трассировки лучей
Выводы по методу обратной трассировки.
Положительные черты:
1. Универсальность метода, его применимость для синтеза изображений достаточно сложных пространственных схем. Воплощает многие законы геометрической оптики. Просто реализуются разнообразные проекции.
2. Даже усеченные варианты данного метода позволяют получить достаточно реалистичные изображения. Например, если ограничиться только первичными лучами (из точки проецирования), то это дает удаление невидимых точек. Трассировка уже одного-двух вторичных лучей дает тени, зеркальность прозрачность.
3. Все преобразования координат линейны, поэтому достаточно просто работать с текстурами.
Недостатки:
1. Проблемы с моделированием диффузного отражения и преломления.
2. Для каждой точки изображения необходимо выполнять много вычислительных операций. Трассировка относится к числу самых медленных алгоритмов синтеза изображений.
2. Конструкторская часть
Алгоритмы
Обратная трассировка лучей
Рис. 2.1.1. Блок-схема рекуррентного алгоритма обратной трассировки лучей.
В этой программе алгоритм обратной трассировки реализован рекуррентным образом. Функция расчета интенсивности первичного луча рекуррентно вызывает саму себя для нахождения интенсивностей отраженного и преломленного лучей.
Алгоритм:
Для расчета цвета каждого пиксела буфера кадра выполняются следующие действия:
1. Найти координаты пиксела в мировой системе координат.
2. Найти координаты первичного луча.
3. Запуск функции вычисления интенсивности первичного луча.
4. Найти пересечения луча со всеми примитивами сцены и выбрать ближайшее.
5. Если пересечение не найдено, значит, луч ушел в свободное пространство.
Для расчета цвета принимаем полную интенсивность равной фоновой интенсивности. Перейти на шаг 12. Если пересечение найдено, перейти на шаг 6.
6. Рассчитываем «локальную» интенсивность цвета объекта, которому принадлежит точка пересечения. Под «локальной» интенсивностью понимается интенсивность с учетом интенсивности диффузно отраженного света и интенсивность бликов.
7. Если материал отражает свет только диффузно, то считаем интенсивности отраженного и преломленного света нулевыми. Перейти на шаг 12. Иначе перейти на шаг 8.
8. Если достигнута максимальная глубина рекурсии, то принять интенсивности отраженного и преломленного света нулевыми. Перейти на шаг 12. Иначе перейти на шаг 9.
9. Вычислить вектор отраженного луча. Запуск рекурсии для нахождения интенсивности отраженного луча.
10. Вычислить вектор преломленного луча. Запуск рекурсии для нахождения интенсивности преломленного луча.
11. Вычисление полной интенсивности цвета. Полная интенсивность включает в себя интенсивность рассеянного света, локальную интенсивность и интенсивности отраженного и преломленного лучей.
12. Возврат в точку вызова функции вычисления интенсивности луча.
Если шел расчет первичного луча, то в буфер кадра помещается пиксел вычисленного цвета. Переходим к расчету следующего пиксела буфера кадра Если шел расчет отраженного (преломленного) луча, то вычисленная интенсивность будет принята как интенсивность отраженного (преломленного) луча на предыдущем шаге рекурсии.
Построение теней
СПЛОШНЫЕ ТЕНИ