48137 (Построение реалистичного изображения методом обратной трассировки лучей)

2016-07-30СтудИзба

Описание файла

Документ из архива "Построение реалистичного изображения методом обратной трассировки лучей", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48137"

Текст из документа "48137"

Оглавление

Введение

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

Трассировка лучей

Построение теней

- Сплошные тени

- Реалистичные тени

Математические и физические предпосылки алгоритма обратной трассировки

- Освещение

- Схема расчета интенсивности. Параметры, задающие свойства тел.

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

Вычисление отраженного луча

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

Вычисление точки пересечения с примитивом

Описание типов данных. Структура программы

Краткое описание структур и классов

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

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

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

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

Зависимость времени построения от глубины рекурсии

Зависимость времени построения от количества источников

Выводы по результатам исследований

Заключение

Список литературы

Введение

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

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

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

Окружающие нас объекты обладают по отношению к свету такими свойствами:

- излучают;

- отражают и поглощают;

- пропускают сквозь себя.

Каждое из этих свойств можно описать некоторым набором характеристик.

Излучение можно охарактеризовать интенсивностью и спектром.

Свойство отражения (поглощения) можно описать характеристиками диффузного рассеивания и зеркального отражения. Прозрачность можно описать ослаблением интенсивности и преломлением.

Из точек поверхности (объема) излучающих объектов исходят лучи света. Можно назвать такие лучи первичными – они освещают все остальное. От источников излучения исходит по различным направлениям бесчисленное множество первичных лучей. Некоторые лучи уходят в свободное пространство, а некоторые попадают на другие объекты. Если луч попадает в прозрачный объект, то, преломляясь, он идет дальше, при этом некоторая часть световой энергии поглощается.

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

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

Непосредственная реализация данной лучевой модели формирования изображения представляется затруднительной. Можно попробовать построить алгоритм построения изображения указанным способом. В таком алгоритме необходимо предусмотреть перебор всех первичных лучей и определить те из них, которые попадают в объекты и в камеру. Затем выполнить перебор всех вторичных лучей, и также учесть только те, которые попадают в объекты и в камеру. И так далее. Такой алгоритм называется прямой трассировкой лучей. Главный недостаток этого метода – много лишних операций, связанных с расчетом лучей, которые затем не используются.

Обратная трассировка лучей.

Именно этому методу генерации реалистичных изображений посвящена эта работа.

Метод обратной трассировки лучей позволяет значительно сократить перебор световых лучей. Метод разработан в 80-х годах, основополагающими считаются работы Уиттеда и Кэя. Согласно этому методу отслеживание лучей производится не от источников света, а в обратном направлении – от точки наблюдения. Так учитываются только те лучи, которые вносят вклад в формирование изображения.

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

Если объект зеркальный (хотя бы частично), то строим вторичный луч – луч падения, считая лучом отражения предыдущий, первичный трассируемый луч. Для идеального зеркала достаточно затем проследить лишь очередную точку пересечения вторичного луча с некоторым объектом. У идеального зеркала идеально ровная отполированная поверхность, поэтому одному отраженному лучу соответствует только один падающий луч. Зеркало может быть затемненным, то есть поглощать часть световой энергии, но все равно остается правило: один луч падает – один отражается.

Если объект прозрачный, то необходимо построить новый луч, такой, который при преломлении давал бы предыдущий трассируемый луч.

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

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

Ограничения при реализации трассировки.

  1. Среди всех типов объектов выделим некоторые, которые назовем источниками света. Источники света могут только излучать свет, но не могут его отражать или преломлять. Будем рассматривать только точечные источники света.

  2. Свойства отражающих поверхностей описываются суммой двух составляющих – диффузной и зеркальной.

  3. В свою очередь, зеркальность также описывается двумя составляющими. Первая (reflection) учитывает отражение от других объектов, не являющихся источниками света. Строится только один зеркально отраженный луч r для дальнейшей трассировки. Вторая компонента (specular) означает световые блики от источников света. Для этого направляются лучи на все источники света и определяются углы, образуемые этими лучами с зеркально отраженным лучом обратной трассировки (r). При зеркальном отражении цвет точки поверхности определяется собственным цветом того, что отражается.

  4. При диффузном отражении учитываются только лучи от источников света. Лучи от зеркально отражающих поверхностей ИГНОРИРУЮТСЯ. Если луч, направленный на данный источник света, закрывается другим объектом, значит, данная точка объекта находится в тени. При диффузном отражении цвет освещенной точки поверхности определяется собственным цветом поверхности и цветом источников света.

  5. Для прозрачных (transparent) объектов не учитывается зависимость коэффициента преломления от длины волны. (Иногда прозрачность вообще моделируют без преломления, то есть направление преломленного луча t совпадает с направлением падающего луча.)

  6. Для учета освещенности объектов светом, рассеянным другими объектами, вводится фоновая составляющая (ambient).

  7. Для завершения трассировки вводится ограничение количества итераций (глубины рекурсии).

RADIOSITY (ИЗЛУЧАТЕЛЬНОСТЬ).

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

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

Особый здесь случай - отражение Ламберта (идеальная диффузия). Метод излучательности описывает баланс энергетического равновесия в замкнутой системе.

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

Выводы по методу обратной трассировки.

Положительные черты:

  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. Возврат в точку вызова функции вычисления интенсивности луча.

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

Построение теней


СПЛОШНЫЕ ТЕНИ

Для построения сплошных теней в алгоритме трассировки на этапе вычисления «локальной» интенсивности цвета в точке объекта проверяется «видимость» каждого источника света из этой точки.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4100
Авторов
на СтудИзбе
670
Средний доход
с одного платного файла
Обучение Подробнее