Методы раскрашивания поверхностей метод Гуро, Фонга, трассировка лучей, преломление света

Тема: Методы раскрашивания поверхностей (метод Гуро, Фонга, трассировка лучей, преломление света)


СОДЕРЖАНИЕ



ВВЕДЕНИЕ……………………………………………………………………....3

МОДЕЛИ ОТРАЖЕНИЯ СВЕТА…………………………………………4

Зеркальное отражение света……………………………………………..4

Диффузное отражение…………………………………………………....5

МЕТОД ГУРО…………………………………………………………………7

МЕТОД ФОНГА……………………………………………………………..10

ПРЕЛОМЛЕНИЕ СВЕТА……………………………………………………12

Модель идеального преломления……………………………………….12

ТРАССИРОВКА ЛУЧЕЙ……………………………………………………14










ВВЕДЕНИЕ

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

Глаз адаптируется к средней яркости рассматриваемой сцены, поэтому при смене фона изменяется восприятие сцены. Например, однородно окрашенная область на более темном фоне будет казаться более яркой, чем на светлом. Кроме того, она будет восприниматься как более обширная (рис. 9.1).



Рис. 9.1. Эффекты восприятия изображения

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

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

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


МОДЕЛИ ОТРАЖЕНИЯ СВЕТА

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

Зеркальное отражение света

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

	

θθ

θθ

α

Поверхность

Источник света

Нормаль

Отраженный луч

Наблюдатель

	Рис.1. Зеркальное отражение света

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

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

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

	Падающий луч, попадая на слегка шероховатую поверхность реального зеркала, порождает не один отраженный луч, а несколько лучей, рассеиваемых по различным направлениям. Зона рассеивания зависит от качества полировки и может быть описана некоторым законом распределения. Как правило, форма зоны рассеивания симметрична относительно линии идеального зеркально отраженного луча. К числу простейших, но достаточно часто используемых, относится эмпирическая модель распределения Фонга, согласно которой интенсивность зеркально отраженного излучения пропорциональна (cosα)p, где α – угол отклонения от линии идеально отраженного луча. Показатель p находится в диапазоне от 1 до 200 и зависит от качества полировки.

	Запишем это таким образом:

	

	Is=I Ks (cosα)p,	       			                          (1)

	Где I- интенсивность излучения источника, Ks – коэффициент пропорциональности.

Диффузное отражение

Этот вид отражения присущ матовым поверхностям. Матовой можно считать такую поверхность, размер шероховатостей которой уже настолько велик, что падающий луч рассеивается равномерно во все стороны. Такой тип отражения характерен, например, для гипса, песка, бумаги. Диффузное отражение описывается законом Ламберта, согласно которому интенсивность отраженного света пропорциональна косинусу угла между направлением на точечный источник света и нормалью к поверхности (рис.2).

	

	Id=I Kd cosθ,	       			                          (2)

	Где I - интенсивность источника света, Kd – коэффициент, который учитывает свойства материала поверхности. Значение Kd находится в диапазоне от 0 до 1. Интенсивность отраженного света не зависит от расположения наблюдателя.

	

θθ

Поверхность

Источник света

Нормаль

	

	Рис.2 Матовая поверхность

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

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

	

	Iотр=I( Ks (cosα)p+ Kd cosθ),					       (3)

	где константы Ks, Kd определяют отражательные свойства материала.

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

	

	Iотр= IaKa +I(Ks (cosα)p+ Kd cosθ),				       (4)

	где Ia – интенсивность рассеянного света,Ka – константа.

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

	

	Iотр= IaKa +I*(Ks (cosα)p+ Kd cosθ)/(R+k),			       (5)

	где R – расстояние от центра проекции до поверхности, k – константа.

	

	Для определения цвета закрашивания точек объектов в соответствии с данной моделью наиболее просто выполняется расчет в градациях серного цвета (например, для белого источника света и серых объектов). В данном случае интенсивность отраженного света соответствует яркости. Сложнее обстоит дело с цветными источниками света, освещающими цветные поверхности. Например, для модели RGBсоставляются три формулы расчета интенсивности отраженного света для различных цветовых компонент. Коэффициенты  Ka, Kd различны для разных компонент– они выражают собственный цвет поверхности. Поскольку цвет отраженного зеркального луча равен цвету источника, то коэффициент Ks будет одинаковым для всех компонент цветовой модели. Цвет источника света выражается значениями интенсивности I для соответствующих цветовых компонент.


МЕТОД ГУРО

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

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

- вычисляются нормали к каждой грани;

- определяются нормали в вершинах. Нормаль в вершине определяется усреднением нормалей примыкающих граней (рис.3);

- на основе нормалей в вершинах вычисляются значения интенсивностей в вершинах согласно выбранной модели отражения света;

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



b

с

a

N 3

N 2

N 1

N a

Рис.3 Нормаль в вершине

Вектор нормали в вершине (а) равен

Na=(N1 + N2  + N3)/3	     				      (6)

Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пиксела) удобно выполнять во время цикла заполнения полигона. Рассмотрим заполнение контура грани горизонталями в экранных координатах (рис.4).



Интерполированная интенсивность I в точке (X,Y) определяется исходя из пропорции

(I-I1)/(X-X1)= (I2-I1)/(X2-X1)			      (7)

Отсюда

I=I1+(I2-I1)(X-X1)/(X2-X1)                                   (8)

Значения интенсивностей I1, I2 на концах горизонтального отрезка представляют сбой интерполяцию интенсивности в вершинах:



 I1=Ib+(Ic-Ib)(Y-Yb)/(Yc-Yb)                                 (9)

                      I2=Ib+(Ia-Ib)(Y-Yb)/(Ya-Yb)





Рис.4. Заполнение контура грани


МЕТОД ФОНГА

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

- определяются нормали к граням;

- по нормалям определяются нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали;

- по направлению векторов нормали определяется цвет точек грани в соответствии с выбранной моделью отражения.

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

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



Рис. 9.6. Три способа закрашивания

Этот метод позволяет устранить ряд недостатков метода Гуро, но не все. В частности, эффект полос Маха в отдельных случаях в методе Фонга бывает даже сильнее, хотя в подавляющем большинстве случаев аппроксимация Фонга дает лучшие результаты. На рис. 9.6 приведены результаты закрашивания поверхности вращения, аппроксимированной многогранником, который составлен из треугольных граней: a) - плоское закрашивание, b) - закрашивание по методу Гуро, c) - закрашивание по методу Фонга. Первый из вариантов дает изображение ребристой поверхности с очень контрастными переходами от одной грани к другой. Вторая модель дает более гладкое изображение, но в районе бликов отчетливо наблюдаются линии ребер, хотя и сглаженные. Третий вариант получился наиболее гладким, зеркальные блики имеют достаточно реалистичную форму.

Итак, метод Фонга дает правильное закрашивание. Если интерполировать векторы нормалей передней грани, то по центру будут интерполированные нормали, параллельные лучам света.

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


ПРЕЛОМЛЕНИЕ СВЕТА

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

Модель идеального преломления

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

n1sin α1= n2sin α2,	    					   (10)

где n1 и n2 – абсолютные показатели преломления соответствующих сред.

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

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

Принято считать, что для вакуума абсолютный показатель преломления равен 1. Для воздуха он составляет 1,00029, для воды 1,33, для стекла разных сортов: 1,52 (легкий крон), 1,65 (тяжелый крон). Показатель преломления зависит от состояния вещества, например от температуры. На практике обычно используют отношение показателей преломления двух сред (n1 / n2), называемое относительным показателем преломления.

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

Чем меньше длина волны, тем больше отклоняется луч при преломлении. Благодаря этому свойству преломления мы и наблюдаем радугу. Фиолетовый (длина волны λ=0,4 мкм) луч отклоняется больше всего, а красный (λ=0,7 мкм) – меньше всего. Например, для стекла показатель преломления в видимом спектре изменяется от 1,53 до 1,51.

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

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


ТРАССИРОВКА ЛУЧЕЙ

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

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

- излучают;

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

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

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

Выше уже описаны наиболее часто упоминаемыми видами отражения – зеркальным и диффузным. Реже в литературе упоминается обратное, антизеркальное отражение, у которого максимум интенсивности отражения соответствует направлению на источник. Обратным зеркальным отражением обладают некоторые виды растительности на поверхности Земли, наблюдаемые с высоты, например, рисовые поля.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Согласно модели Уиттеда цвет некоторой точки объекта определяется суммарной интенсивностью

I(λ)= KaIa(λ)С(λ) + KdId(λ)С(λ)+ KsIs(λ) + KrIr(λ) + KtIt(λ),                     (11)

Где λ- длина волны, С(λ)- заданный исходный цвет точки объекта, Ka, Kd, Ks, Kr, Kt –коэффициенты, учитывающие свойства конкретного объекта параметрами фоновой подсветки диффузного рассеивания, зеркальности, отражения и прозрачности, Ia(λ) – интенсивность фоновой подсветки, Id(λ)- интенсивность, учитываемая для диффузного рассеивания, Is(λ) - интенсивность, учитываемая для зеркальности, Ir(λ) – интенсивность излучения, приходящего по отраженному лучу, It(λ) -  интенсивность излучения, приходящего по преломленному лучу.

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

Достоинства:

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

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

		Все преобразования координат (если таковые есть) линейны, поэтому достаточно просто работать с текстурами.

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

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

	Недостатки:

		Проблемы с моделированием диффузного отражения и преломления.

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

	





2