Реалистические изображения
Принципы создания, модели, алгоритмы
Учет физических и психологических факторов
2 типа рецепторов: палочки и колбочки. Палочки – чувствительны к низким уровням освещенности. Колбочки – различаю цвета и мелкие детали. Предел чувствительности к яркости 1010 Чувствительность к относительной яркости - ~ 100 – 150 (2.2 логарифмической единицы)
Простая модель освещения
Диффузное отражение света
I – интенсивность отраженного света Il – интенсивность точечного источника kd – коэффициент диффузного отражения 0 kd 1 - угол между направлением света и нормалью к поверхности 0 /2
0 /2 Ia- интенсивность рассеянного света ka- коэффициент диффузного отражения рассеянного света 0 ka 1
d - расстояния от источника до объекта k – произвольная постоянная
Зеркальное отражение света
Эмпирическая модель Фонга.
- кривая отражения представляющая отношение зеркально отраженного света к падающему, как функцию угла падения i и длины волны - .
n – степень, аппроксимирующая пространственное распределение зеркально отраженного света
- функция закраски
- нормаль к поверхности
- направление на источник
- вектор, определяющий направление отраженного луча
Тогда модель освещенности для одного источника
В случае нескольких (m) источников света:
Пример простой модели освещения
Вектор нормали
Вектор падающего света
Вектор наблюдения
Вектор отражения = ?
Анализируем вектор падающего света …
Вектор отражения =
Пусть на сцене находится один объект, d=0, k=1. Интенсивность источника в 10 раз больше, чем рассеянного света, т.е.
Поверхность объекта блестящая металлическая, свет, в основном, отражается зеркально, т.е.
.
.
При изменении положения наблюдателя
Нахождение нормали к поверхности
Пусть заданы уравнения плоскостей полигональных граней, тогда нормаль к их общей вершине равна среднему значению нормали по всем многоугольникам, сходящимся в этой вершине.
Возьмем усеченную пирамиду:
В точке V1 направление приближенной нормали будет определяться уравнениями плоскостей многоугольников , окружающих V1.
где
- коэффициенты уравнения плоскостей многоугольников
Если уравнения плоскостей не заданы, то нормаль к вершине можно определить, усредняя векторное произведение всех ребер пересекающихся в вершине. Тогда:
Величина вектора зависит от количества и площади конкретных многоугольников, а также количества и длины конкретных ребер.
Пример.
Координаты вершин:
V1 (-1; -1; 1) V2 ( 1; -1; 1) V3 ( 1; 1; 1) V4 (-1; 1; 1) V5 (-2; -2; 0 V6 ( 2; -2; 0) V7 ( 2; 2; 0 V8 (-2; 2; 0)
Запишем уравнения плоскостей для граней P0, P1, P4:
Найдем приближенную нормаль в точке V1, усредняя нормали к окружающим многоугольникам
Абсолютная величина нормали может быть записана как
Единичная нормаль
Другой способ: Найдем выражение нормали через векторное произведение ребер, сходящихся в вершине V1.
В этом случае, усредняя векторное произведение, получим нормаль в точке V1:
Абсолютная ее величина:
Единичная нормаль:
Т.е. нормали, полученные двумя способами, различны как по величине, так и по направлению, освещение будет отличаться,
результат будет различным.
Определение вектора отражения.
Если свет падает вдоль оси z:
Тогда, - единичная составляющая вектора отражения по оси Х, - единичная составляющая вектора отражения по оси Y, - единичная составляющая вектора нормали по оси Х, - единичная составляющая вектора нормали по оси Y.
- угол между единичной нормалью и осью Z, то составляющая нормали по оси Z:
Угол между единичным вектором отражения и осью
Так как
Мы получили составляющие векторы отражения по оси Y через составляющие нормали по оси Y и Z.
Если свет падает от нескольких источников ………..
Методы закраски
Закраска методом Гуро.
Закраска методом Фонга.
Прозрачность
Преломление рассчитывается по закону Снеллиуса: падающие и преломленные лучи лежат в одной плоскости, а углы падения и преломления связаны формулой:
Тени
Тень состоит из 2-х частей: тень и полутень. Тень – центральная резко очерченная темная часть. Полутень – окружающая ее более светлая часть.
Фактура
ФФактурой называется детализация строения поверхности. ООбычно рассматривается 2 вида детализации: -- на гладкую поверхность наносится заранее заданный узор. При этом поверхность все равно будет казаться гладкой. Наложение узора на гладкую поверхность производится функцией отображения. -
- на поверхности создаются неровности, шероховатости. Они реализуются путем внесения возмущений в параметры, задающие поверхность.
Задача сводится к преобразованию системы координат.
Если рисунок задан в фактурном пространстве в прямоугольной системе координат ,
а поверхность в другой прямоугольной системе координат
то для нанесения рисунка на поверхность надо найти или задать функцию отображения одного пространства на другое.
или
Обычно функция отображения линейна:
где коэффициенты выводятся из соотношения между двумя известными точками в системе координат.
Задача: нанести эту сетку на кусок поверхности, заданный октантом
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.