Название: Интерактивная компьютерная графика(А.В. Чернышев,М.Э. Рояк)

Жанр: Информатика

Просмотров: 1275


Лабораторная работа

 

Построение изображений

методом трассировки лучей

 

Цель работы

Ознакомиться с основными аспектами метода трассировки лучей.

Теоретическая часть

Метод трассировки лучей используется для получения высокореалистичных изображений с учетом отражений и преломлений света.

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

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

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

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

Критерии прекращения рекурсии: заданный уровень рекурсии или заданный вес луча.

Задание наблюдателя

Наблюдатель (камера) задается своими:

– положением (точка Eye);

– ориентацией (векторы u,v,w);

– углом зрения ();

– форматным отношением поля зрения , где W – полуширина, а H – полувысота экрана;

– N – расстоянием до экрана.

Поскольку , то

 – координаты (r,c)-пикселя.

Уравнение луча, проходящего из камеры через (r,c)-пиксель:

При этом:

при t<0 – объект за наблюдателем,

при 0<t<1 – объект за плоскостью отсечения.

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

Пересечение луча с объектом

Выгодно иметь F(x,y,z) в наиболее простом виде (каноническом), чтобы было проще решать уравнение F(x(t), y(t), z(t))=0. Тогда вместо пересечения исходного луча с преобразованным объектом ищут пересечение обратно преобразованного луча с каноническим объектом:

где M – некоторое преобразование.

Так, для сферы:

Для плоскости:

.

Для конического цилиндра:

 (s=1 – цилиндр, s=0 – конус).

Для боковой поверхности:

 

Для нижнего основания:

 

Для верхнего основания:

 

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

Охватывающие оболочки (экстенты)

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

Различают экстенты по системе координат, в которой они задаются:

проекционные (двумерные в экранной плоскости);

трехмерные в канонической системе координат;

трехмерные в глобальной системе координат.

 

Модель освещения Кука-Торренса

Интенсивность отраженного света:

,

где

 – коэффициент Френеля,  – коэффициент преломления материала,  – распределение Бекмана,

.

Коэффициенты преломления для некоторых металлов:

Металл

F0 (красный)

F0 (зеленый)

F0 (синий)

Золото

0.989

0.876

0.349

Серебро

0.950

0.930

0.880

Медь

0.755

0.490

0.095

Железо

0.530

0.505

0.480

Рельефная текстура (bump mapping)

Пусть имеется параметрически заданная поверхность . Необходимо изобразить поверхность

,

где  – текстурная функция,  – вектор нормали к поверхности.

Для этого нужно знать нормаль в каждой точке поверхности :

,

где

,

.

Варианты заданий

Тип

объектов

Возможности трассировщика

Текстурирование

Охватывающие оболочки

Модель освещения

1

1

2

1

1

1

2

1

3

1

1

1

3

1

1

2+3

1

1

4

2

1

1

1

2

5

2

2

1

1

1

6

3

1

1

1+2

1

7

3

1

1

1+3

1

8

3

1

1

1+4

1

9

2

3

2

1

1

10

2

1

2

1

2

11

3

2

1

4

1

12

1+2+3

1

1

4

3

Типы объектов.

Базовые: сфера и конический цилиндр.

Составные из сфер, цилиндров и прямоугольных параллелепипедов.

Сеточные.

Возможности трассировщика.

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

Трассировка первичных лучей и расчет теней.

Трассировка первичных и вторичных (отражения и преломления) лучей.

Текстурирование.

Без текстур.

Стандартное наложение изображения на объект (текстура модулирует диффузную составляющую отраженного света).

Рельефная текстура.

Охватывающие оболочки.

Не используются.

Проекционные.

Трехмерные в канонической системе координат.

Трехмерные в глобальной системе координат.

Модель освещения.

Фонга.

Кука-Торренса.