- •Компьютерная графика
- •0915 “Компьютерная инженерия”
- •Чернигов чгту 2008
- •Задание бкс по безье
- •Сплайны
- •3 Алгоритмы вычислительной геометрии. Геометрия на плоскости План раздела
- •Отсечение отрезков по окну
- •Отсечение многоугольника по окну
- •Задача триангуляции
- •Условие Делоне
- •Алгоритм триангуляции Делоне
- •4 Трехмерная вычислительная геометрия план раздела
- •Описание плоскости через точку и нормаль
- •Описание плоскости через три инцидентные ей точки
- •Описание плоскости через вершины полигона
- •Точка встречи плоскости и прямой
- •5 Описание перемещений и деформаций объектов план раздела
- •Перенос, масштабирование и поворот двумерной точки Обычный линейный перенос…
- •Масштабирование координат
- •Поворот (вокруг начала координат)
- •Неоднородность описаний
- •Как перемещение описать умножением?
- •Однородные координаты
- •Формальный подход
- •Но, к счастью…
- •Пример: отображение окна в окно Постановка задачи
- •Решение
- •Октарные и бинарные деревья
- •Дополнительные условия
- •Проверка правильности задания граничного представления
- •Итоги раздела
- •7 Понятие о видеоконвейере
- •Исходное состояние
- •Результат шага 1
- •Что видит и чего не видит наблюдатель?
- •Результат шага 2
- •Результат шага 3
- •Результат:
- •8 Видовое преобразование
- •План раздела
- •Исходное состояние
- •Вычисление базиса ск камеры
- •Стратегия видового преобразования
- •Принцип относительности движений
- •9 Особенности отсечения по видимому объему
- •План раздела
- •Суть действия «отсечения»
- •Различные формы видимых объемов
- •Выпуклые оболочки граней
- •Метод Коэна-Сазерленда в применении к трехмерному случаю
- •Результат быстрой селекции граней
- •Объекты, которые отсекаются в трехмерном случае
- •Общая схема действий по отсечению
- •Как задается видимый объем
- •Дополнительные проблемы отсечения при центральном проецировании
- •Повышение эффективности проверок при центральном проецировании
- •10 Удаление невидимых граней, ребер и вершин
- •План раздела
- •Общая классификация методов удаления невидимого
- •Алгоритмическая основа удаления невидимых примитивов
- •Неустранимое противоречие
- •Классификация методов удаления невидимых примитивов
- •Замечание о трудоемкости методов
- •Алгоритм робертса
- •«Матрица тела»
- •Учет видового преобразования
- •Алгоритм z-буфера
- •Алгоритм заполнения z-буфера
- •Пример работы с z-буфером
- •Достоинства алгоритма z-буфера
- •Простота и универсальность.
- •Он нечувствителен к сложности сцены.
- •Недостаток алгоритма z-буфера
- •Повышенный расход оперативной памяти.
- •11Построение проекций план раздела
- •Общая классификация проекций Понятие «проекция»
- •12Рендеринг по освещенности план раздела
- •Модели локального освещения объектов
- •Ограничения локальной модели освещения объектов сцены
- •Рассеянное освещение
- •Диффузное отражение света
- •Зеркальное отражение света
- •«Краевой эффект» Маха(Mach Bound Effect)
- •Модель затенения Гуро (h.Gouraud)
- •Модель затенения Фонга (Phong)
- •Модификации модели затенения Фонга
- •Иллюстрация методов шейдинга для сравнения
- •Алгоритмы получения высокореалистических изображений общие замечания
- •Классическая прямая трассировка лучей
- •Обратная трассировка лучей
- •Вторичные лучи обратной трассировки
- •Дерево вторичных лучей обратной трассировки
- •Достоинства и недостатки метода обратной трассировки световых лучей
- •Распределенная (стохастическая) трассировка лучей (рстл)
- •О сэмплинге
- •Так почему трассировка здесь называется «распределенная»?
- •И просто несколько красивых картинок…
- •13 Растровые изображения План раздела
- •Растровый документ: Представление слоями
- •Смешение цветов в слоях
- •Алгоритм брезенхема – предпосылки-1
- •Предпосылки-2
- •Проблемы яркости отрезка
- •Компенсация алиасинга яркостью
- •Растеризация окружности – подходы
- •Заливка областей постоянным цветом
- •Классификация областей
- •Классификация областей Итог и примеры
- •Простейший рекурсивный алгоритм заливки
- •Примерный вид текстурированной грани
- •Неочевидные применения текстур
- •Быстрый приближенный «шейдинг по способу Фонга»
- •Быстрое приближенное построение отражений
- •А. Теория цвета и цветоизмерение свет и цвет
- •Феномен составных цветов
- •«Уравновешивание» цветов
- •Странности сине-зеленого цвета
- •«Отрицательный» красный цвет
- •Диаграммы уравновешивания цветов
- •Измерение цвета
- •Цветовой охват
- •Б. Воспроизведение цветов
- •Технология светоизлучения (суммирующая)
- •Реализация модели rgb
- •«Цветовой куб» модели rgb
- •Изохромы
- •Технология цветопоглощения (вычитающая)
- •Субтрактивная цветовая модель cmyk
- •Как задается цвет в модели cmyk
- •Проблемы преобразования цвета
- •«Техническая» цветовая модель l*a*b
- •Использование модели l*a*b
- •«Художественная» цветовая модель hsl
- •Проблемы правильной передачи цвета
- •16Сжатие графических файлов план раздела
- •Перечисление методов точного сжатия
- •Кодирование однородных серий
- •44 44 44 11 11 11 11 11 01 33 Ff 22 22 - исходная последовательность байтов
- •Алгоритм лемпела–зива-велча ( Lempel- Ziev-Welch, lzw )
- •Битовые коды переменной длины (метод хаффмана)
- •Методы энтропийнного сжатия
- •Индексирование цвета
- •7. Седьмое преобразование:
- •Проектор экранный микрозеркальный (устройство)
- •Дискретное микрозеркальное устройство
- •B. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Алгоритм робертса
Он относится к алгоритмам объектного типа.
Л.Г.Робертс был аспирантом Линкольновской лаборатории МИТ, работал по теме «Техническое зрение роботов». Опубликовал описание алгоритма в 1963-1964 гг. в изданиях МИТ.
ОГРАНИЧЕНИЯ АЛГОРИТМА РОБЕРТСА
Чтобы алгоритм Робертса работает корректно, необходимо выполнение следующих предварительных условий:
|
1. Тело ограничено ПЛОСКОСТЯМИ. 2. Тело ВЫПУКЛО. 3. Нормали всех граней направлены ВНУТРЬ ТЕЛА.
|
«Матрица тела»
Робертс предложил описывать выпуклый объект матрицей
a, b, c, d – коэффициенты уравнений плоскостей граней тела.
Эти коэффициенты соответствуют исходному состоянию сцены в видеоконвейере, т.е. плоскости описаны в ОБЪЕКТНОЙ (исходной) СИСТЕМЕ КООРДИНАТ.
Учет видового преобразования
Проблема: грань в объектной СК имеет параметры a, b, c, d.
Произведено ВИДОВОЕ ПРЕОБРАЗОВАНИЕ с матрицей М (координаты вершин выражены в СК наблюдателя).
КАКИЕ ПАРАМЕТРЫ a’, b’, c’, d’ БУДЕТ ИМЕТЬ ТА ЖЕ ГРАНЬ В СИСТЕМЕ КООРДИНАТ НАБЛЮДАТЕЛЯ?
Выведем соотношение, которое позволит это вычислить.
В объектных координатах произвольная грань описывается матрицей
, а принадлежащая ей вершина имеет однородные координаты
Раз вершина принадлежит грани, то ее координаты удовлетворяют уравнению плоскости грани:
Та же вершина в координатах наблюдателя описывается матрицей
, а грань, которой она принадлежит:
Факт принадлежности вершины грани существует по-прежнему, поэтому справедливо
Нам известна матрица видового преобразования М, поэтому
Приравнивая (2) и (1) и подставляя (3) в (2), получаем:
Сокращая V, приходим к соотношению
Решаем его относительно Fe:
(4)
Итак, чтобы получить уравнение плоскости в СК наблюдателя, необходимо произвести обращение матрицы видового преобразования и воспользоваться формулой (4).
ТАК КТО ЖЕ ВСЕ-ТАКИ НЕВИДИМ?!.
Вернемся к исходной проблеме, которую решает алгоритм Робертса. Расчетная схема объекта и луча зрения имеет вид:
Видно, что орт k луча зрения составляет разные углы с нормалями к граням. Нетрудно сообразить, что с учетом выпуклости объекта невидимыми гранями являются те, нормали которых составляют тупой угол с k.
Для формализации этого условия рассмотрим скалярное произведение
Итак, при α>90° cos α < 0, значит с< 0.
Итак, по Робертсу критерием невидимости грани является отрицательность значения с в столбце матрицы тела, который описывает эту грань.
Пример
Алгоритм z-буфера
Опубликован Кэтмулом в 1975 г.
Этот алгоритм относится к категории экранных. Идея алгоритма Z-буфера состоит в следующем.
В оперативной памяти, кроме буфера кадра, создается еще одна матрица. У нее число строк и столбцов равно числу строк и столбцов пикселов буфера кадра.Ячейки матрицы и пикселы буфера кадра попарно соответствуют друг другу. Но в ячейке этой матрицы будет храниться значение глубины (координаты Ze) точки, цвет которой изображен в соответствующем пикселе буфера кадра. Эта матрица и называется «Z-буфер»ю
Алгоритм заполнения z-буфера
Плоскости граней объектов сцены перебираются по очереди. Луч-проектор проводится через центр буфера кадра до рассматриваемой плоскости. В пиксел кадра записывается цвет точки плоскости, а в соответствующую ячейку Z-буфера – глубина этой точки.
Тонкость состоит в том, что при закраске новых плоскостей в пиксел кадра заносится новый цвет ТОЛЬКО В ТОМ СЛУЧАЕ, если НОВАЯ ГЛУБИНА ТОЧКИ МЕНЬШЕ той, что уже содержится в ячейке Z-буфера. Соответственно новая меньшая глубина переписывается в ячейке Z-буфера. Формально на псевдокоде можно записать такой цикл:
Для каждого пиксела[x,y] буфера кадра
Begin
If Z[x,y] < zbuf[x,y] then begin
Цвет[x,y] := ЦветТочкиСцены[x,y];
zbuf[x,y] := Z[x,y];
end;
End;
Для большей ясности рассмотрим работу алгоритма Z-буфера на плоской модели.