Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3 КГ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
997.89 Кб
Скачать

Визуализация

Изображения без невидимых линий и поверхностей в большинстве случаев пе­редают форму объекта достаточно хорошо. Однако для некоторых приложений желательно иметь возможность строить более реалистичные изображения. Осо­бенно важную роль реалистичность играет в «виртуальной реальности» — отно­сительно новой технологии, позволяющей имитировать на компьютере реальные ситуации. Например, вы можете занести в компьютер сведения о внутреннем и внешнем виде проектируемого здания, а затем пройтись по нему и вокруг него, чтобы прочувствовать, как оно будет выглядеть на самом деле. Это средство мо­жет оказаться очень полезным для принятия решения о вложении денег в по­стройку здания.

Для имитации реальной сцены нужно воспроизвести эффекты, создаваемые све­том, падающим на поверхности объектов. Этот процесс называется визуализаци­ей или тонированием {rendering). Вообще говоря, все, что мы видим, — это отра­жение света от поверхностей, а по этому отраженному свету мы определяем форму, текстуру и цвет объекта. В усовершенствованных графических библиоте­ках обычно имеются некоторые средства визуализации. Для их применения дос­таточно задать фасетированную модель объекта, условия освещенности и свой­ства поверхностей (например, блестящие или тусклые). Однако для правильного использования технологий визуализации необходимо иметь представление об их основах. Даже задать правильные значения параметров функций визуализации без достаточно хорошего знания техники визуализации непросто. Поэтому в на­стоящем разделе мы коротко опишем две основные технологии визуализации: затушевывание (shading) и трассировку лучей (ray tracing). Подробное описание технологий визуализации можно найти в большинстве книг по компьютерной графике.

Затушевывание

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

Поверхность объекта может быть освещена светом, исходящим непосредственно от источников, то есть прямым светом (direct illumination), а также светом, отра­женным от других поверхностей, дающим окружающее освещение (ambient illumi­nation). Свет, отраженный данной точкой объекта, получается сложением отра­женных лучей двух типов (рис. 3.21).

Рисунок 3.21 - Прямое и окружающее освещение

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

Ra=KdIa (3.5)

Здесь 1aинтенсивность окружающего освещения, a Kd — коэффициент отраже­ния поверхности. У белых поверхностей коэффициент отражения близок к еди­нице, а у черных — к нулю. Наблюдатель будет воспринимать одну и ту же ин­тенсивность отраженного окружающего освещения вне зависимости от своего положения, поскольку это освещение образуется благодаря отражению от всех поверхностей и распределяется равномерно по всем направлениям.

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

Диффузное отражение (diffuse reflection) состоит в том, что поверхность погло­щает свет, а затем переизлучает его равномерно во всех направлениях (рис. 3.22). Интенсивность диффузного отражения (как и отражения окружающего освеще­ния) не зависит от положения наблюдателя. Особенности структуры поверхности, такие как текстура и цвет, становятся видимыми именно благодаря диффузному отражению. Для грубых поверхностей отражение является преимущественно диффузным, а не зеркальным.

Зеркальное отражение (specular reflection) — это прямое отражение света поверхностью. Данный тип отражения характерен для блестящих поверхностей, таких как зеркала. Блестящие поверхности отражают почти весь падающий свет и по­тому обладают повышенной яркостью (рис. 3.23). Интенсивность зеркального отражения воспринимается по-разному в зависимости от положения наблюдате­ля относительно сцены.

Рисунок 3.22 - Диффузное отражение Рисунок 3.23 - Зеркальное отражение

Опишем процедуру расчета интенсивностей диффузного и зеркального отраже­ния. Когда мы сделаем это, интенсивность отражения света от точечного источ­ника можно будет приближенно описать как сумму отражений указанных двух типов. Интенсивность диффузного отражения прямо пропорциональна косину­су угла падения. Углом падения в данной точке называется угол между вектором нормали к поверхности и вектором, направленным из точки к источнику света (рис. 3.24).

Рисунок 3.24 - Определение угла падения

Это соотношение называется законом косинусов Ламберта. Его легко проверить, представив падающий пучок в виде конечного числа параллельных линий, нахо­дящихся на одинаковом расстоянии друг от друга (рис. 3.25).

Рисунок 3.25 - Иллюстрация к закону Ламберта

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