к оглавлению

Основные алгоритмы компьютерной графики

РЕАЛИСТИЧНОЕ ПРЕДСТАВЛЕНИЕ СЦЕН

    0.11.1  Модели освещения
    0.11.2  Модели закраски
    0.11.3  Прозрачность
    0.11.4  Тени
    0.11.5  Фактура
    0.11.6  Трассировка лучей
    0.11.7  Излучательность

Где нужен реализм:
· в конструировании,
· в архитектуре,
· в биологии и медицине,
· в науке (компьютерное моделирование),
· в масс-медиа,
· в тренажерах, играх.

Основные направления:
· синтез реалистичных изображений,
· реалистическое оживление синтезированных объектов.

С точки зрения приложений в науке и промышленности наиболее важно первое направление. Ключевая проблема - реалистическое представление освещенности:

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

Механизм диффузного и зеркального отражения света

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

Ir = Ip ·Pd ·cos(f),

где Ir - интенсивность отраженного света, Ip - интенсивность точечного источника, 0 Ј Pd Ј 1 - коэффициент диффузного отражения, зависящий от материала поверхности и длины волны, 0 Ј f Ј p/2 - угол между направлением света и нормалью к поверхности.

В реальных сценах, кроме света от точечных источников, присутствует и рассеянный свет, который упрощенно учитывается с помощью коэффициента рассеяния:

I = Ir ·Pr + Ip ·Pd ·cos(f),

где Ir - интенсивность рассеянного света, 0 Ј Pr Ј 1 - коэффициент диффузного отражения рассеянного света.

Субъективно достаточно реалистичный учет расстояния от центра проекции до объекта обеспечивается линейным затуханием:

I = Ir·Pr + Ip·Pd·cos(f)
d + K
,

где d - расстояние от центра проекции до объекта, а K - произвольная константа.

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

Свет, отраженный от идеального зеркала, виден только если угол между направлениями наблюдения и отражения равен нулю. Для неидеальных отражающих поверхностей используется модель Фонга [27]:

Is = Ip ·W(l, f) ·cosn(a),

где W(l, f) - кривая отражения, зависящая от длины волны l света источника и угла падения f,     -p/1 Ј a Ј p/2 - угол между направлениями наблюдения и отражения, 1 Ј n Ј 200 - показатель степени, определяющий убывание интенсивности при изменении угла.

Часто W(l, f) заменяется константой Ks, такой чтобы полученная картина была субъективно приемлема.

Суммарная модель освещения имеет вид:

I = Ir ·Pr + Ip
d+K
(Pd ·cos(f) + W(l, f) ·cosn(a)).

Или при использовании вместо W(l, f) константы Ks:

I = Ir·Pr + Ip
d+K
(Pd ·cos(f) + Ks ·cosn(a)).

Если использовать нормированные вектора направлений падения L, нормали N, отражения R и наблюдения V, то модель освещения для одного источника принимает вид:

I = Ir ·Pr + Ip
d+K
(Pd·L·N + Ks ·(R·V)n).

Если источник света находится бесконечности, то для данного плоского многоугольника L·N равно константе, а R·V меняется в пределах многоугольника. Для поверхностей, представленных например в виде бикубических кусков, каждое произведение меняется в пределах куска. Так как эти вычисления требуется производить для каждого пиксела строки, то вычислительные затраты могут быть очень велики. Фонг предложил алгоритм пошагового вычисления по рассмотренной модели, существенно снижающий затраты.

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

0.11.2  Модели закраски

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

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

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

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

0.11.3  Прозрачность

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

I = k·Iб + (1-k)·Iд,

где 0 Ј k Ј 1 - характеризует прозрачность ближнего многоугольника. Если k = 1, то он непрозрачен. Если же k = 0, то ближний многоугольник полностью прозрачен; Iб - интенсивность для пиксела ближнего многоугольника, Iд - дальнего.

0.11.4  Тени

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

0.11.5  Фактура

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

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

Такой метод влияет на раскраску поверхности, но оставляет ее гладкой. Неровности могут моделироваться возмущениями нормали поверхности. Другой способ, используемый при синтезе картин - метод фрактальной геометрии.

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

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

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

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

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

0.11.7  Излучательность

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


Рисунок 86

Рис. 0.4.22: Излучательность

Ei = [Энергия/ ед.площади ·ед.времени] - эмиссия,

Pi - безразмерный коэффициент отражения,

Bi - полный уровень света, исходящего от поверхности

Fij - форм-фактор - часть энергии, исходящая от одной поверхности и достигающая другой

Если поверхности сцены разделены на n элементов, имеющих постоянную излучательность, то взаимодействие потоков света в сцене описывается системой уравнений:

щ
ъ
ъ
ъ
ъ
ъ
ы
1-P1·F11
-P1·F12
ј
-P1·F1n
1-P2·F21
-P2·F22
ј
-P2·F2n
ј
1-Pn·Fn1
-Pn·Fn2
ј
-Pn·Fnn
щ
ъ
ъ
ъ
ъ
ъ
ы
щ
ъ
ъ
ъ
ъ
ъ
ы
B1
B2
ј
Bn
щ
ъ
ъ
ъ
ъ
ъ
ы
= щ
ъ
ъ
ъ
ъ
ъ
ы
E1
E2
ј
En
щ
ъ
ъ
ъ
ъ
ъ
ы
.
Так как форм-фактор определяет часть энергии, исходящей от одной поверхности и достигающей другой, то сумма всех форм-факторов элемента меньше 1.

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

Bi0 = Ei,

и последующих приближений вида:

Bik+1 = Ei + Pi еj = 1n Fij Bjk.

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

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


Рисунок 87

Рис. 0.4.23: Вычисление излучательности вершин

Формирование результирующего изображения выполняется после выбора требуемой точки наблюдения и проецирования сцены на картинную плоскость. Видно, что этот метод не зависит от точки наблюдения. При выводе определяется какой фрагмент отображается в каждом пикселе экрана. При этом используются z-буфер и кадровый буфер. Пересечение линии, соединяющей глаз и пиксел с плоскостью фрагмента, позволяет найди координату точки, отображаемую в текущий пиксел. Координата пересечения (x, y, z) преобразуется в координаты (u, v) на фрагменте. После этого значения излучательностей вершин используются при билинейной интерполяции трех значений излучательностей в пределах каждого фрагмента (рис. 0.7.55).


Рисунок 88

Рис. 0.4.24: Билинейная интерполяция излучательностей по значениям в вершинах

Наиболее трудоемкая часть метода излучательности - вычисление форм факторов.

Для двух неперекрытых элементарных площадок i и j форм-фактор определяет часть световой энергии, исходящей из одной площадки на другую, и имеет вид:

FdAi,dAj = cos(fi) ·cos(fj)
p·r2

где r - расстояние между элементами dAi и dAj, fi и fj - углы между нормалями к элементам и соединяющим их отрезком (рис. 0.7.56).


Рисунок 89

Рис. 0.4.25: Форм-фактор для двух элементарных площадок

Интегрируя по площади dAj получаем форм-фактор конечного элемента площади Aj относительно элементарной площадки dAi:

FdAi,Aj = у
х


Aj 
cos(fi) ·cos(fj)
p·r2
·dAj

Выражение для форм-фактора между двух конечных неперекрытых площадок определяется как средняя площадь:

Fij = FAi,Aj = 1
Ai
у
х


Ai 
у
х


Aj 
cos(fi) ·cos(fj)
p·r2
·dAj ·dAi

Взаимное перекрытие может быть учтено с помощью функции Hij, принимающей значение от 0 до 1 в зависимости от степени перекрытия площадки Aj площадкой Ai:

Fij = FAi,Aj = 1
Ai
у
х


Ai 
у
х


Aj 
cos(fi) ·cos(fj)
p·r2
· Hij ·dAj ·dAi

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

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

к оглавлению

Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution