Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Media_Dizayn.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.68 Mб
Скачать

13. Аппроксимация света на модели Фонга.

Существует несколько алгоритмов закраски. Закраска Гуро и Фонга наиболее популярны. При этом метод Фонга требует больших вычислительных затрат, однако он позволяет разрешить многие проблемы метода Гуро.

Модель Фонга.

Is = Il ( , ) cosn

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

Общая модель закраски.

Мы видим тело, как бы разрубленное на куски, поэтому необходимо проделать аппроксимацию (сгладить), то есть завуалировать переходы.

Закраска фигуры (Фонг) - завуалирование граней.

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

Рассмотрим этот метод на примере:

  1. Суть метода в апроксимации нормалей. Пусть нам известны уравнения плоскостей для трёх многоугольников, и сходятся они в одной вершине. Три плоскости собираются в V. Усредняем нормаль в вершине V.

nv = (a1 + a2 + a3)i + (b1 + b2 + b3)j + (c1 + c2 + c3)k P0: z - 1 = 0; P1: -y + z - 2 = 0; P2: -x + z - 2 = 0 nv = -i - j + 3k - усреднённая нормаль в точке n (используется для вычисления интенсивности пиксела). |n| = ((-1)2 + (-1)2 +32)0.5 = 110.5 - абсолютная величина нормали. е = nv / |n| = -0.3i - 0.3j + 0.9k - единичная или нормированная нормаль.

  1. Вычисляем нормаль в каждой пикселе строки.Для закраски необходимы векторы нормали в точках A, B и C. Аппроксимируем их усреднением нормалей к окружающим плоскостям. Для того, чтобы изобразить объект методом построчного сканирования, нужно в соответствии с моделью освещения рассчитывать интенсивность каждого пиксела вдоль сканирующей строки. Сначала определяется интенсивность вершин многоугольника, а затем с помощью интерполяции вычисляется интенсивность каждого пиксела на сканирующей строке. Нормаль в точке Q находится линейной интерполяцией между А и В: nQ = U nA + (1 - U) nB; 0<=U<=1; U = AQ/AB

Нормаль в точке R находится линейной интерполяцией между B и C: nR = nB + (1 - ) nC; = BR/BC

Нормаль в точке P находится линейной интерполяцией между Q и R: nP = t nQ + (1 - t) nR; 0<=t<=1; t = QP/QR

Далее вы можете почитать сравнение метода Фонга и Гуро с иллюстрациями, а также посмотреть 3D глоссарий, применяемый в наше время (с цветными красочными иллюстрациями).

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

14. Модели цвета.

Объект цветной, если он отражает и пропускает в узком диапазоне длин волн и поглощает все остальные длины волн.

Параметры цвета:

  • тон;

  • насыщенность;

  • светлость.

Тон определяет различие цветов и связан с длиной волны. Насыщенность - степень ослабленности данного цвета белым цветом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]