русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Модели отражения света и их использование при закраске


Дата добавления: 2013-12-23; просмотров: 685; Нарушение авторских прав


Алгоритм Вейлера-Айзертона

На входе и на выходе векторная модель.

1 Все полигоны сортируются по глубине и находится самый близкий к камере многоугольник.

2 Все многоугольники отсекаются этим ближайшим многоугольником и формируются два списка: внутренний (то, что внутри отсекающего многоугольника) и внешний (то, что вне отсекающего многоугольника)

3 Если внутренний список пуст, то отсекающий многоугольник ни с чем не пересекается. Добавляем его в результат, и весь алгоритм выполняется для внешнего списка.

4 Иначе, сравниваются Z отсекающего многоугольника и каждого из внутреннего списка:

○ Если там есть хотя бы один многоугольник, который ближе отсекающего, то к нему рекурсивно применяется весь алгоритм.

○ Иначе отсекающий многоугольник заносится в результат и весь алгоритм выполняется для внешнего списка

1. Зеркальное отражение света:Is=Icospα

α — угол между лучом отражения и направлением камеры.

p — степень полировки поверхности.

I — яркость источника

2. Диффузное отражение— отражение от матовых поверхностей.

Луч отражается во всех направлениях одинаково, где расположена камера — неважно: Id=Icosθ

θ — угол между нормалью к поверхности и лучом из источника.

3. Фоновое освещение (попадает в камеру независимо ни от чего): Ia=const.

4. Сумма первых двух вариантов:I = KaIa + KsIs + KdId

Ka,s,d — коэффициенты, задающие свойства поверхности.

Ia,s,d — яркости разных освещений.

 

Если источников много, то

I = KaIa+Σ[F(R)(KsIs+KdId)]

где

R — расстояние,

F(R) ϵ [0,1] — функция ослабления.

Например, F(R) = 1 / (K1 + K2R + K3R2)

Если свет не монохромный, то все предыдущие действия производятся отдельно для каждого канала R,G,B. Если вектор С=(R,G,B), то



IC=I*Cисточника*Cточки объекта

— например, при освещении синей поверхности красным светом она будет выглядеть чёрной.

53. Методы закраски: монотонная закраска, метод Гуро и метод Фонга. Имитация микрорельефа (карты нормалей)

Методы закраски:

Монотонная закраска

○ Алгоритм:

1 Вычисляем нормаль к полигону

2 Вычисляем цвет

3 Рисуем закрашенный полигон полученным цветом

Достоинства:

● Простой, как палка, не требует дополнительных вычислений.

Недостатки — связаны с вычислением нормали:

● Невозможно моделировать тела вращения.

● Метод себя плохо ведет (наказать!), если источник освещения слишком близко расположен к поверхности. Это связано с тем, что угол падения и отражения — разный, а нормали одинаковые.

Закраска методом Гуро (немонотонная)

○ Алгоритм:

1 Вычисляется нормаль к грани

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

3 Согласно закону освещения, для каждой вершины [треугольника] вычисляется интенсивность (цвет).

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

Недостатки:

● Баг метода: подносим источник света к центру прямоугольника, тогда весь прямоугольник будет залит одним цветом (поскольку в углах интенсивность освещения одинаковая), хотя центр должен быть освещён сильнее.

Закраска методом Фонга

○ Алгоритм

● Отличается тем, что путем усреднения вычисляется нормаль к каждому пикселю полигона, а уже потом вычисляется освещение. Теперь все будет честно нарисовано, но дорогой ценой (N=(Nx,Ny,Nz) — вещественный вектор).

Достоинства:

● Более качественная картинка.

Недостатки:

● Ресурсоёмкость и понижение скорости

Оптимизация метода Фонга

○ Алгоритм

● У тел вращения угол нормали меняется не сильно. Считаем (α, β) — насколько сильно отклоняется нормаль в точке отклонения от нормали ко всему полигону.

● Создаем “карту” (матрицу), позволяющую из (α, β) получить N

 

Имитация микрорельефа:

● Честное задание шершавой поверхности в виде множества полигонов

Недостаток: низкая скорость

Bump Mapping. Используется карта высот — аналог текстур, но хранящая не цвета, а поправки к координатам поверхностей (в перпендикулярном направлении).

Normal Mapping. Аналогично BM, но хранятся поправки к нормалям.

Displacement Mapping. Аналогично BM, но хранятся смещения в произвольном направлении.

Чем сложнее задаётся карта нормалей, тем тоньше получается рисунок, но и тем больше требуется ресурсов.



<== предыдущая лекция | следующая лекция ==>
Алгоритм Варнока | Метод трассировки лучей


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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