Геометрические составляющие для — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Геометрические составляющие для

2022-10-29 34
Геометрические составляющие для 0.00 из 5.00 0 оценок
Заказать работу

НАХОЖДЕНИЯ ОТРАЖЕННОГО СВЕТА.

 

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

                                          -- нормаль m к поверхности в точке P;

                                      --вектор v, соединяющий точку P с глазом наблюдателя;

                                          -- вектор s, соединяющий точку P с источником света.

 

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

ВЫЧИСЛЕНИЕ ДИФФУЗИОННОЙ СОСТАВЛЯЮЩЕЙ

 

                                          Предположим, что свет падает от точечного источника на одну сторону микрограни (faset) поверхности. Какая-то доля света с этой стороны микрограни переизлучается во всех направлениях. А какая-то часть этой переизлучаемой доли достигает глаза с интенсивностью, обозначаемой . Как зависит  от направлений m, v и s?

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

 

 

                                          На рис. 8.10, а) в сечении показан точечный источник, освещающий микрогрань S, для случая, когда вектор m параллелен вектору s. На рис.8.10, б) микрогрань отвернута в сторону от источника света на угол . Теперь видимая площадь составляет только долю, равную , от той, что была раньше, так что яркость микрограни S уменьшится во столько же раз. Это соотношение между яркостью и ориентацией поверхности часто называют законом Ламберта (Lambert). Отметим, что для малых углов  яркость слабо зависит от угла, поскольку косинус в окрестностях нуля изменяется медленно. Однако при приближении угла  к яркость быстро снижается до нуля. Далее, нам известно, что  является скалярным произведением ортов s и m. Тогда можно получить следующее выражение для интенсивности диффузного компонента:

 

                                                     

 

где - интенсивность источника света,

   - коофициент диффузного отражения  (diffuse reflection coefficient). Отметим, что если микрогрань направлена в сторону от глаза, то это скалярное произведение отрицательно, и в этом случае мы принимаем  Следовательно, более точная формула для диффузного компонента имеет вид:

 

                                                       (8.1)

 

 

ЗЕРКАЛЬНОЕ ОТРАЖЕНИЕ

                                          Реальные объекты не рассеивают свет равномерно во всех направлениях, поэтому к модели закраски добавляется зеркальный компонент. Зеркальное отражение порождает блики, которые могут существенно увеличить реалистичность изображения, заставив объекты блестеть. В данном разделе мы рассмотрим простую модель поведения отраженного света по Фонгу (Fhong, 162). Эта модель легко реализуется, и Open GL поддерживает хорошее приближение к ней. Блики, создаваемые отраженным светом по Фонгу, придают объекту вид сделанного из пластмассы, поэтому модель Фонга хороша, когда предназначается для объектов, выполненных из блестящего пластика или стекла. С объектами, имеющими блестящую металлическую поверхность, данная модель работает хуже, однако, как мы увидим, путем тщательного подбора параметров цвета с помощью Open GL аппроксимация по-прежнему возможна. Разработаны более современные модели отражения света, которые лучше работают

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

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

 

 

На рис. 8.12, в) показано, как оценить влияние пучка. Из главы 4 нам известно, что направление

r полного отражения зависит от вектора s и нормали m к поверхности следующим образом:  (направление зеркального отражения). (8.2)

 

Для блестящих поверхностей не являющихся абсолютно зеркальными, количество отраженного света убывает с ростом модуля угла  между векторами r и v. Истинное количество этого убывания является сложной функцией от , однако в модели Фонга данная зависимость предполагается равной некоторой степени f от косинуса , то есть , где значение f подбирается экспериментально и обычно лежит в пределах от 1 до 200. На рис. 8.13 показан график изменения функции интенсивности в зависимости от угла  для различных значений f.

С ростом параметра f отражение становится все более зеркальным и все более концентрируется вдоль направления r. При f=  можно было бы смоделировать абсолютное зеркало, однако чистые отражения обычно обрабатывают другим способом, как описано в главе 14.

                                          Используя тот факт, что  равен скалярному произведению векторов u и v (после их нормирования), можно смоделировать вклад  в зеркальное отражение следующим образом:

 

                                          ,       (8.3)

где множитель  называется коэффициентом зеркального отражения  (specular reflection

coefficient). Подобно большинству коэффициентов в модели закрашивания, он обычно определяется экспериментально. (Как и в случае диффузного члена, при отрицательном скалярном произведении r * v значение  устанавливается равным нулю.)

                                                                         

                                              

 

Повышение эффективности с помощью <<промежуточного вектора>>. Вычисление члена уравнения (8.3), соответствующего зеркальному отражению, может оказаться слишком дорогостоящим, поскольку при этом требуется вначале найти вектор r, а затем нормировать его. На практике для ускорения вычислений используется альтернативный член зеркального отражения, который, вероятно, впервые был описан Блинном (Blinn, 24) и используется для ускорения вычислений. Вместо косинуса угла между векторами r и v ищется промежуточный (halfway) вектор между s и v, то есть h = s + v,как показано на рис.8.14. Если бы нормаль к поверхности была направлена вдоль вектора h, то наблюдатель увидел бы наиболее яркий зеркальный блик. Поэтому угол между векторами m и h можно использовать для измерения спада интенсивности зеркального отражения, которую видит наблюдатель. Угол  не совпадает с углом  (на самом деле угол  вдвое больше, чем угол ,если все векторы компланарны; см. упражнения), однако это различие может быть компенсировано использованием другого значения показателя f. (Зеркальный член никоим образом не основывается на физических принципах, поэтому по меньшей мере приятно, что такая его коррекция дает приемлемые результаты). Обычно принято при вычислении зеркального члена исходить из , используя при этом скалярное произведение векторов h и m:

 

                                          (скорректированный зеркальный член). (8.4)

 

 

Отметим, что при такой коррекции нет необходимости находить вектор отражения r, что экономит время вычисления. Кроме того, если и источник света, и наблюдатель очень удалены, то векторы s и v одинаковы для различных граней объекта, поэтому вектор b понадобится вычислить всего один раз.


Поделиться с друзьями:

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.023 с.