Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Простая модель освещения






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

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

I = Ilkdcosθ 0 < = θ < = π /2

где I - интенсивность отраженного света, Il - интенсивность точечного источника, kd - коэффициент диффузного отражения (0 < = kd < = 1), θ - угол между направлением света и нормалью к поверхности. Если θ > π /2, то источник света расположен за объектом. Коэффициент диффузного отражения kd зависит от материала и длины волны света, но в простых моделях освещения обычно считается постоянным.

машинной графике они заменяются на коэффициент рассеяния - константу, которая входит в формулу в линейной комбинации с членом Ламберта:

I = Iaka + Ilkdcosθ 0 < = θ < = π /2

где Ia - интенсивность рассеянного света, ka - коэффициент диффузного отражения рассеянного света (0 < = ka < = 1).. Но если центр проекции лежит близко к объекту, то 1/d2 изменяется очень быстро, т. е. у объектов, лежащих примерно на одинаковом расстоянии от источника, разница интенсивностей чрезмерно велика. Как показывает опыт, большей реалистичности можно добиться при линейном затухании. В этом случае модель освещения выглядит так:

I = Iaka + Ilkdcosθ

d + K

где K - произвольная постоянная.

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

 

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

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

OpenGL, каждый геометрический объект описывается как упорядоченный набор вершин. Вершины задаются командой

glVertex[2 3 4][s i f d](координаты)

mode – вид примитива, может принимать следующие значения:

GL_POINTS – каждая вершина задает точку. Вершина n задает точку n. Всего будет выведено N точек;

GL_LINES – две вершины образуют отрезок прямой линии. Вершины 2n-1 и 2n задают линию n. Всего будет выведено N/2 линий. Если число вершин нечетно, то последняя игнорируется;

GL_POLYGON – вершины от 1 до N задают один многоугольник.

Остальные команды работают по той же схеме.

glRotate[f d](angle, x, y, z) - рассчитывает матрицу поворота на угол angle относительно вектора, определяемого тройкой (x, y, z), с точкой привязки в начале координат.

glTranslate[f d] (x, y, z) – рассчитывает матрицу переноса на вектор, определяемый тройкой (x, y, z), с точкой привязки в начале координат

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.