Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Более сложные модели освещения

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

Рис. 9.7. Преломленный и отраженный лучи Рис. 9.8. Преломление в призме

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

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

При наличии в пространственной сцене прозрачных или полупрозрачных объектов надо учитывать, что изображение других объектов будет отличаться от обычной проекции на картинную плоскость (рис. 9.8). Эти эффекты хорошо знакомы всем, кто сталкивался с различными линзами. Для построения изображения таких сцен целесообразно использовать алгоритмы с обратной трассировкой лучей.

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

При поверхность непрозрачна, при - полностью прозрачна. Для полупрозрачных тел необходимо учитывать их объемную структуру.

Методы построения изображений сцен с прозрачными и полупрозрачными объектами будут более подробно рассмотрены в следующей лекции.

Устранение ступенчатости (антиэлайзинг)

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

Рис. 9.9. Распределение весов при увеличении разрешения в 4 раза

Рис. 9.10. Распределение весов при увеличении разрешения в 16 раз

Для предотвращения сильных искажений в этом случае можно, во- первых, повышать разрешение растра, что позволяет отображать всё более мелкие детали объектов. Но у этого подхода есть свои чисто физические ограничения. Второй подход заключается в том, что растр рассчитывается с более высоким разрешением, а изображается с более низким - путем усреднения атрибутов пикселей первого более детального растра с определенными весами. Если веса одинаковы, то мы получаем равномерное усреднение, как показано на рис. 9.9. Лучших результатов можно достигнуть, если использовать разные веса у пикселей первого растра. На рис. 9.10 показано распределение весов при детализации пикселя экранного растра.

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

Рассмотрим применение этого метода на примере раскраски многоугольника. Ребро многоугольника строится с использованием алгоритма Брезенхема, описанного в лекции 8. Здесь в этот алгоритм будут внесены изменения, включающие параметр максимального числа уровней интенсивностей. Определяя принадлежность пикселя многоугольнику, мы будем использовать в качестве ошибки e долю площади, принадлежащей идеальной фигуре (рис. 9.11).


Рис. 9.11. Отсекаемая отрезком площадь пикселя

Рассмотрим опять случай, когда отрезок направлен в положительный квадрант координатной плоскости под углом, меньшим . Идеальный отрезок при заданном значении целочисленной координаты может пересекать один или два пикселя. В предыдущей версии алгоритма выбирался пиксель, центр которого располагался ближе к отрезку. Теперь интенсивность для обоих пикселей будет задаваться в зависимости от степени близости каждого из них. Инициализация пикселя будет использовать интенсивность в качестве параметра. Предполагается, что отрезок начинается с угла первого пикселя, исходя из чего и задается начальная интенсивность. Блок-схема алгоритма приведена на рис. 9.12.

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

(9.9)

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

Рассмотрим в качестве свертываемой функции и ядра следующие функции:


Рис. 9.12. Блок-схема модифицированного алгоритма Брезенхема

Тогда, в силу того, что подынтегральное выражение обращается в ноль при и при , получаем

Учитывая вид функции , получаем, что свертка будет отлична от нуля только на интервале . Значения свертки в некоторых точках приведены в таблице 9.1.

Таблица 9.1. Значения свертки в узлах
  1/2   3/2  
  1/8 1/2 3/8  

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


Рис. 9.13. Фигуры, соответствующие значениям свертки из таблицы 9.1

На рис. 9.13 приведен вид пересечения для всех пяти случаев из таблицы 9.1. Если сравнить эти результаты с рис. 9.11, то видно, что значения свертки при дают площадь той части пикселя, что находится внутри многоугольника (если считать ), а при - сумму площадей двух пересекаемых пикселей.

В заключение проиллюстрируем результат применения алгоритма устранения ступенчатости на примере изображения, полученного с помощью программы Corel Draw. Эта программа представляет собой развитый графический редактор, позволяющий строить объекты векторной графики. На рис. 9.14 показано изображение простых графических примитивов, предварительно переведенное в растровую форму, на котором при большом увеличении заметно сглаживание с применением оттенков серого цвета.

Рис. 9.14. Сглаженные изображения

<== предыдущая лекция | следующая лекция ==>
Закраска методом Фонга | Трапециевидное тело составлено аксонами вторых слуховых сенсорных нейронов и их ядрами
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 482; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.