Визуальное восприятие объектов окружающей действительности представляет собой сложный процесс, имеющий как физические, так и психологические аспекты. Во второй главе мы уже обсуждали некоторые особенности восприятия света и цвета глазом человека. К тому, что уже было сказано о спектральной чувствительности глаза, надо добавить еще несколько моментов.
(рис 9.1) Эффекты восприятия изображенияГлаз адаптируется к средней яркости рассматриваемой сцены, поэтому при смене фона изменяется восприятие сцены. Например, однородно окрашенная область на более темном фоне будет казаться более яркой, чем на светлом. Кроме того, она будет восприниматься как более обширная (рис. 9.1).
Еще одна особенность восприятия заключается в том, что граница равномерно освещенной области кажется более яркой по сравнению с внутренними частями. Это явление было обнаружено Эрнстом Махом, поэтому оно получило название эффекта полос Маха. Такие особенности необходимо учитывать, если мы стремимся к созданию реалистических изображений сцен.
При формировании изображения сцен, содержащих зеркальные и полупрозрачные поверхности, следует использовать законы геометрической оптики, преломляющие свойства материалов, эффекты смешения цветов и т.д.
Объекты окружающего пространства становятся видимыми для глаза благодаря световой энергии, которая может излучаться поверхностью предмета, отражаться или проходить сквозь нее. В свою очередь, отражение света от поверхности зависит от физических свойств материала, из которого она изготовлена, а также от характера и расположения источника света. Яркость (или интенсивность) освещения зависит от энергии светового потока, которая обуславливается, во- первых, мощностью источника света, а во-вторых, отражающими и пропускающими свойствами объекта.
Сначала мы рассмотрим модель освещения, учитывающую только отражение. Свойства отраженного света зависят главным образом от направления лучей и характеристик отражающей поверхности.
Отражение может быть двух видов: диффузное и зеркальное. Первое из них возникает в ситуации, когда свет как бы проникает под поверхность объекта, поглощается, а потом равномерно излучается во всех направлениях. Поверхность в этом случае рассматривается как идеальный рассеиватель. При этом возникает эффект матового света, а видимая освещенность того или иного участка поверхности не зависит от положения наблюдателя. Зеркальное отражение, наоборот, происходит от внешней поверхности, интенсивность его неоднородна, поэтому видимый максимум освещенности зависит от положения глаза наблюдателя.
(рис 9.2) Освещение точечным источникомСвет точечного источника отражается от поверхности рассеивателя по
закону Ламберта: интенсивность отражения пропорциональна косинусу угла
между
При таком расчете интенсивности получится очень контрастная картина, т.к. участки поверхности, на которые лучи от источника не попадают напрямую, останутся абсолютно черными. Для повышения реалистичности необходимо учитывать рассеивание света в окружающем пространстве. Поэтому вводится фоновая освещенность, зависящая от интенсивности рассеянного света $$I_F$$, и интенсивность отраженного света определяется выражением$$I= \left\{ \begin{aligned} I_F k_F+k_s I_S \cos\varphi\text{ при } 0\le\varphi\le\pi/2 \\ \\ I_F k_F \text{ в противном случае} \end{aligned} \right.$$ где $$k_F$$ - коэффициент диффузного отражения рассеянного света, $$k_S$$ - коэффициент диффузного отражения падающего света, $$0\le k_S\le 1, \; 0\le k_F \le 1.$$
В описанной модели пока никак не учитывалась удаленность источника света от поверхности, поэтому по освещенности двух объектов нельзя судить об их взаимном расположении в пространстве. Если мы хотим получить перспективное изображение, то необходимо включить затухание интенсивности с расстоянием. Обычно интенсивность света обратно пропорциональна квадрату расстояния от источника. В качестве расстояния до источника в случае перспективного преобразования можно взять расстояние до центра проекции, и если он достаточно удален, то изображение будет достаточно адекватным. Но если этот центр расположен близко к объекту, то квадрат расстояния меняется очень быстро, и в этом случае лучше использовать линейное затухание. В этом случае интенсивность отраженного света от непосредственно освещенных участков поверхности будет задаваться формулой$$I=I_F k_F + \frac{k_S I_S \cos\varphi}{d+C}$$ где $$d$$ - расстояние до центра проекции, а $$C$$ - произвольная постоянная. Если центр проекции находится на бесконечности, т. е. при параллельном проецировании, то в качестве $$d$$ можно взять расстояние до объекта, наиболее близкого к наблюдателю.
(рис 9.3) Зеркальное отражениеВ отличие от диффузного, зеркальное отражение является направленным. Идеальное зеркало отражает лучи по принципу "отраженный и падающий лучи лежат в одной плоскости, причем угол падения равен углу отражения" (имеется в виду угол между направлением луча и нормалью к поверхности). Если поверхность не идеально зеркальная, то лучи отражаются в различных направлениях, но с разной интенсивностью, а функция изменения интенсивности имеет четко выраженный максимум. Поскольку физические свойства зеркального отражения довольно сложны, то в компьютерной графике используется эмпирическая модель Фонга. Суть ее заключается в том, что для глаза наблюдателя интенсивность зеркально отраженного луча зависит от угла между идеально отраженным лучом и направлением к наблюдателю (рис. 9.3a). Кроме того, поскольку зеркальное отражение зависит еще и от длины волны, это также будем учитывать в формуле для вычисления интенсивности. Модель Фонга описывается соотношением$$I_Z=\omega(\varphi,\lambda)\cdot I_S\cos^n\psi$$ где $$\omega(\varphi,\lambda)$$ - функция отражения, $$\lambda$$ - длина волны. Степень, в которую возводится косинус угла, влияет на размеры светового блика, наблюдаемого зрителем. Графики этой функции приведены на рис. 9.4, и они как раз являются характерными кривыми поведения функции изменения интенсивности в зависимости от свойств поверхности.
(рис 9.4) Зеркальное отражениеТеперь модель освещенности, учитывающую зеркальное и диффузное
отражения, можно описать формулой$$I=I_F k_F+\frac{I_S(k_s\cos\varphi+\omega(\varphi,\lambda)\cdot\cos^n\psi)}{d+C}.$$
Используя
В алгоритмах закрашивания с использованием цветовых моделей интенсивность рассчитывается для каждого из базовых цветов, поскольку изменение интенсивности при зеркальном отражении зависит от длины волны.
Если предположить, что источник света находится на бесконечности, то лучи света, падающие на поверхность, параллельны между собой. Если к этому добавить условие, что наблюдатель находится в бесконечно удаленной точке, то эффектом ослабления света с увеличением расстояния от источника также можно пренебречь. Кроме того, такое положение наблюдателя означает еще и то, что векторы, направленные от разных точек поверхности к наблюдателю, также будут параллельны. При выполнении всех этих условий, как следует из формулы (9.6), плоская грань во всех точках имеет одинаковую интенсивность освещения, поэтому она закрашивается одним цветом. Такое закрашивание называется плоским.
Если мы аппроксимируем некоторую гладкую поверхность многогранником, то при плоском закрашивании неизбежно проявятся ребра, поскольку соседние грани с различными направлениями нормалей имеют разный цвет. Эффект полос Маха дополнительно усиливает этот недостаток. Для его устранения при использовании этого способа закрашивания можно лишь увеличить число граней многогранника, что приводит к увеличению вычислительной сложности алгоритма.
Один из способов устранения дискретности интенсивностей закрашивания был предложен Гуро. Его метод заключается в том, что используются не нормали к плоским граням, а нормали к аппроксимируемой поверхности, построенные в вершинах многогранника. После этого вычисляются интенсивности в вершинах, а затем во всех внутренних точках многоугольника выполняется билинейная интерполяция интенсивности.
Метод сочетается с алгоритмом построчного сканирования. После того как грань отображена на плоскость изображения, для каждой сканирующей строки определяются ее точки пересечения с ребрами. В этих точках интенсивность вычисляется с помощью линейной интерполяции интенсивностей в вершинах ребра. Затем для всех внутренних точек многоугольника, лежащих на сканирующей строке, также вычисляется интенсивность методом линейной интерполяции двух полученных значений. На рис. 9.5 показан плоский многоугольник с вычисленными значениями интенсивностей в вершинах.
(рис 9.5) Интерполяция интенсивностиПусть $$I_A,I_B,I_C$$ - интенсивности в вершинах $$A,B,C$$, $$x_A,x_B,x_C$$ - горизонтальные координаты этих точек. Тогда в точках пересечения сканирующей строки с ребрами многоугольника интенсивности можно вычислить по формулам интерполяции:$$I_1=t_1 I_A+(1-t_1)I_B, \quad t_1=\frac{x_1-x_B}{x_A-x_B}, \quad \\I_2=t_2 I_A+(1-t_2)I_C, \quad t_2=\frac{x_2-x_C}{x_A-x_C}.$$ После этого интенсивность в точке $$x$$ получаем путем интерполяции значений на концах отрезка:$$I=tI_1+(1-t)I_2, \quad t=\frac{x_2-x}{x_2-x_1}$$
К недостаткам метода Гуро следует отнести то, что он хорошо работает только с диффузной моделью отражения. Форма бликов на поверхности и их расположение не могут быть адекватно воспроизведены при интерполяции на многоугольниках. Кроме того, есть проблема построения нормалей к поверхности. В алгоритме Гуро нормаль в вершине многогранника вычисляется путем усреднения нормалей к граням, примыкающим к этой вершине. Такое построение сильно зависит от характера разбиения.
Фонг предложил вместо интерполяции интенсивностей произвести интерполяцию вектора нормали к поверхности на сканирующей строке. Этот метод требует больших вычислительных затрат, поскольку формулы интерполяции (9.6)–(9.7) применяются к трем компонентам вектора нормали, но зато дает лучшую аппроксимацию кривизны поверхности. Поэтому зеркальные свойства поверхности воспроизводятся гораздо лучше.
Нормали к поверхности в вершинах многогранника вычисляются так же, как и в методе Гуро. А затем выполняется билинейная интерполяция в сочетании с построчным сканированием. После построения вектора нормали в очередной точке вычисляется интенсивность.
(рис 9.6) Три способа закрашиванияЭтот метод позволяет устранить ряд недостатков метода Гуро, но не все. В частности, эффект полос Маха в отдельных случаях в методе Фонга бывает даже сильнее, хотя в подавляющем большинстве случаев аппроксимация Фонга дает лучшие результаты. На рис. 9.6 приведены результаты закрашивания поверхности вращения, аппроксимированной многогранником, который составлен из треугольных граней: a) - плоское закрашивание, b) - закрашивание по методу Гуро, c) - закрашивание по методу Фонга. Первый из вариантов дает изображение ребристой поверхности с очень контрастными переходами от одной грани к другой. Вторая модель дает более гладкое изображение, но в районе бликов отчетливо наблюдаются линии ребер, хотя и сглаженные. Третий вариант получился наиболее гладким, зеркальные блики имеют достаточно реалистичную форму.
Когда мы рассматривали алгоритмы удаления невидимых линий, предполагалось, что сцена включает только непрозрачные объекты. В простой модели освещения тоже речь шла о непрозрачных поверхностях. Теперь можно усложнить задачу, включив в модель не только отражение света, но и преломление.

(рис 9.8) Преломленный и отраженный лучи(рис 9.7) Преломление в призмеПри переходе луча из одной среды в другую его направление изменяется согласно закону Снеллиуса: преломленный луч лежит в плоскости, образуемой нормалью к плоскости и падающим лучом, а углы, образуемые лучами с нормалью, связаны формулой$$\eta_1\sin\theta_1=\eta_2\sin\theta_2,$$ где $$\eta_1,\eta_2$$ - показатели преломления двух сред (рис. 9.7). Пропускание света также может быть диффузным (если часть энергии света рассеивается средой) или направленным. В первом случае мы имеем дело с полупрозрачными телами, которые изменяют окраску видимых сквозь них объектов. Во втором случае тело является прозрачным, и оно визуально обнаруживается только благодаря искажениям объектов за счет преломления лучей.
При наличии в пространственной сцене прозрачных или полупрозрачных объектов надо учитывать, что изображение других объектов будет отличаться от обычной проекции на картинную плоскость (рис. 9.8). Эти эффекты хорошо знакомы всем, кто сталкивался с различными линзами. Для построения изображения таких сцен целесообразно использовать алгоритмы с обратной трассировкой лучей.
Для изображения полупрозрачных поверхностей без учета преломления можно ввести так называемый коэффициент прозрачности $$\kappa$$, который позволяет смешивать интенсивности для видимой поверхности и той, что расположена за ней:$$I=\kappa I_1+(1-\kappa)I_2, \quad 0\le\kappa\le 1$$
При $$\kappa=1$$ поверхность непрозрачна, при $$\kappa=0$$ - полностью прозрачна. Для полупрозрачных тел необходимо учитывать их объемную структуру.
Методы построения изображений сцен с прозрачными и полупрозрачными объектами будут более подробно рассмотрены в следующей лекции.
При построении растрового образа линий (см. лекцию 8) мы сталкиваемся с эффектом ступенчатости, связанным с дискретизацией непрерывного объекта. Искажение идеального образа происходит потому, что из всего множества точек мы выбираем только те, которые оказываются ближе всего к центру элемента растра, и инициализируем этот элемент.

(рис 9.10) Распределение весов при увеличении разрешения в 4 раза(рис 9.9) Распределение весов при увеличении разрешения в 16 разДля предотвращения сильных искажений в этом случае можно, во- первых, повышать разрешение растра, что позволяет отображать всё более мелкие детали объектов. Но у этого подхода есть свои чисто физические ограничения. Второй подход заключается в том, что растр рассчитывается с более высоким разрешением, а изображается с более низким - путем усреднения атрибутов пикселей первого более детального растра с определенными весами. Если веса одинаковы, то мы получаем равномерное усреднение, как показано на рис. 9.9. Лучших результатов можно достигнуть, если использовать разные веса у пикселей первого растра. На рис. 9.10 показано распределение весов при детализации пикселя экранного растра.
Другой метод устранения ступенчатости состоит в том, чтобы рассматривать пиксель не как точку, а как некоторую конечную область. В алгоритмах построения растровой развертки пиксель считается принадлежащим области закрашивания, если его центр находился внутри идеального образа области. Если рисунок черно-белый, то устранить эффект ступенчатости растра практически невозможно. Но при наличии оттенков полутонов можно задать интенсивность цвета пикселя в зависимости от площади его пересечения с областью.
Рассмотрим применение этого метода на примере раскраски многоугольника. Ребро многоугольника строится с использованием алгоритма Брезенхема, описанного в лекции 8. Здесь в этот алгоритм будут внесены изменения, включающие параметр максимального числа уровней интенсивностей. Определяя принадлежность пикселя многоугольнику, мы будем использовать в качестве ошибки e долю площади, принадлежащей идеальной фигуре (рис. 9.11).
(рис 9.11) Отсекаемая отрезком площадь пикселяРассмотрим опять случай, когда отрезок направлен в положительный квадрант координатной плоскости под углом, меньшим $$\pi/4$$. Идеальный отрезок при заданном значении целочисленной координаты $$i$$ может пересекать один или два пикселя. В предыдущей версии алгоритма выбирался пиксель, центр которого располагался ближе к отрезку. Теперь интенсивность для обоих пикселей будет задаваться в зависимости от степени близости каждого из них. Инициализация пикселя будет использовать интенсивность в качестве параметра. Предполагается, что отрезок начинается с угла первого пикселя, исходя из чего и задается начальная интенсивность. Блок-схема алгоритма приведена на рис. 9.12.
Устранение эффекта ступенчатости с математической точки зрения является задачей сглаживания. Приведенный здесь алгоритм, использующий площади пересечения растра и идеального образа, можно описать с помощью операции свертки функции. Сначала дадим необходимые определения. Сверткой функции $$f(x)$$ называется интеграл вида$$C(\xi)=\int\limits_{-\infty}^{+\infty}K(\xi-t)f(t)dt.$$
Функция $$K(x)$$ называется ядром свертки. В качестве ядра свертки обычно используется либо функция с конечным носителем (т.е. отличная от нуля лишь на некотором конечном интервале), либо быстро убывающая на бесконечности функция (это может являться необходимым условием существования интеграла).
Рассмотрим в качестве свертываемой функции и ядра следующие функции:$$f(x)= \left\{ \begin{aligned} x \text{ при } 0\le x\le 1 \\ 0 \text{ при } x<0 \text { и } x>1 \end{aligned} \right. , \qquad K(x)= \left\{ \begin{aligned} 1 \text{ при } 0\le x\le 1 \\ 0 \text{ при } x<0 \text { и } x>1 \end{aligned} \right. .$$
(рис 9.12) Блок-схема модифицированного алгоритма БрезенхемаТогда, в силу того, что подынтегральное выражение обращается в ноль при $$\xi-t<0$$ и при $$\xi-t>0$$, получаем$$C(\xi)=\int\limits_{\xi-1}^{\xi}f(t)dt.$$
Учитывая вид функции $$f(x)$$, получаем, что свертка будет отлична от нуля только на интервале $$0<\xi<2$$. Значения свертки в некоторых точках приведены в таблице 9.1.
| $$\xi$$ | 0 | 1/2 | 1 | 3/2 | 2 |
| $$C(\xi)$$ | 0 | 1/8 | 1/2 | 3/8 | 0 |
Очевидно, что наша свертка дает площадь пересечения треугольника, образованного свертываемой функцией с квадратом, основание которого есть отрезок $$[\xi,xi+1]$$ на оси $$OX$$.
(рис 9.13) Фигуры, соответствующие значениям свертки из таблицы 9.1На рис. 9.13 приведен вид пересечения для всех пяти случаев из таблицы 9.1. Если сравнить эти результаты с рис. 9.11, то видно, что значения свертки при $$k\le 1$$ дают площадь той части пикселя, что находится внутри многоугольника (если считать $$y_i=0$$ ), а при $$k>1$$ - сумму площадей двух пересекаемых пикселей.
В заключение проиллюстрируем результат применения алгоритма устранения ступенчатости на примере изображения, полученного с помощью программы Corel Draw. Эта программа представляет собой развитый графический редактор, позволяющий строить объекты векторной графики. На рис. 9.14 показано изображение простых графических примитивов, предварительно переведенное в растровую форму, на котором при большом увеличении заметно сглаживание с применением оттенков серого цвета.
(рис 9.14) Сглаженные изображенияДля получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.