Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Освещение в реальном мире и в OpenGL



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

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

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

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

В OpenGL может также присутствовать фоновое рассеянное освещение, существующее независимо от каких-либо источников света (аналогия для его объяснения – это свет, претерпевший так много отражений, что источник определить невозможно).

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

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

Излучаемый, рассеянный, диффузно отраженный и зеркально отраженный свет

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

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

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

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

Зеркальный свет распространяется по избранному направлению и отражается от поверхности тоже по некоторому определенному направлению. Лазерный луч, падающий на высококачественное зеркало, характеризуется практически 100-процентным зеркальным отражением. Большая зеркальная компонента у блестящих металлов и пластиков, а у мела и ковра она практически отсутствует. Зеркальную компоненту можно представить себе как блеск поверхности.

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





Дата публикования: 2015-10-09; Прочитано: 221 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...