- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
10 Удаление невидимых граней, ребер и вершин
Это третья операция видеоконвейера, которая преследует цель, подобную цели отсечения по видимому объему: исключить из списка обрабатываемых примитивов те, которые не будут видны. Разница теперь в том, что рассматриваются примитивы, находящиеся внутри видимого объема, и удаляются те, которые заслоняются другими непрозрачными примитивами. В итоге от каждого объекта остается только повернутая к наблюдателю «половинка скорлупки», на визуализацию которой и будут далее тратиться время и память.
План раздела
Общая классификация методов удаления невидимых объектов.
Алгоритм Робертса.
Алгоритм Z-буфера.
Общая классификация методов удаления невидимого
Предмет обсуждения
Модель ОДНОГО трехмерного тела всегда содержит грани объекта, расположенные СО СТОРОНЫ НАБЛЮДАТЕЛЯ (видимые) и грани за линией видимости (невидимые). Правильное отображение видимых и невидимых граней сильно повышает верное восприятие изображения, даже при скромных средствах визуализации, например, выводе «проволочного» изображения.
Пример:
«Проволочное» изображение НЕОДНОЗНАЧНО (левая картинка). Но если выводить только видимые ребра, то даже в проволочном каркасе неоднозначность устраняется.
Сложная сцена может состоять из многих объектов, при этом одни объекты могут заслонять собою другие.
ИТАК, обозначились две проблемы:
ПРОБЛЕМА 1. Как отделить в каждом отдельно взятом объекте видимые грани от невидимых? Разумно выводить только видимые грани и ребра.
ПРОБЛЕМА 2. В каком порядке выводить объекты сцены и их части, чтобы получить правильное изображение?
В данном разделе обсуждаются подходы и приемы, которые помогают преодолеть эти проблемы.
Алгоритмическая основа удаления невидимых примитивов
Этой основой являются разные методы сортировки. Для простоты сравнений каждый примитив сцены рассматривается как его выпуклая оболочка. Оболочки сортируются вдоль осей X, Y и Z. По результатам сортировки можно сравнительно легко выделить пары примитивов, которые гарантированно НЕ ЗАСЛОНЯЮТ друг друга (оболочки таких пар не перекрываются вдоль X и Y) и сосредоточиться на более детальном анализе расположения тех пар, у которых оболочки полностью или частично перекрываются.
Неустранимое противоречие
В научной литературе описано много методов, которые решают обсуждаемую здесь задачу. Но одни методы дают высокое качество, но требуют больших ресурсов и трудны алгоритмически. Другие методы, напротив, дают быстрое решение, но картинка получается некачественная. И это противоречие неустранимо, оно характерно для всех алгоритмов удаления невидимых граней и ребер:
Быстро, но с низкой детальностью картинки |
|
С картинкой высокой четкости, но с большими затратами времени. |
Классификация методов удаления невидимых примитивов
ОБЪЕКТНЫЕ МЕТОДЫ
Алгоритмы этих методов работают с объектными координатами примитивов и точек.
ЭКРАННЫЕ МЕТОДЫ
Алгоритмы этих методов работают с координатами ПИКСЕЛОВ, которые изображают на экране точки сцены.
Замечание о трудоемкости методов
В теоретическом программировании трудоемкость алгоритмов сравнивают по количеству наиболее типовых повторяющихся действий в них. Поскольку в основе методов удаления невидимого лежит сортировка, типовое действие тут – сравнение положения двух объектов. То есть можно приближенно считать, что трудоемкость метода удаления невидимых примитивов ПРИМЕРНО ПРОПОРЦИОНАЛЬНА КОЛИЧЕСТВУ ВЫПОЛНЯЕМЫХ СРАВНЕНИЙ.
Что характерно для ОБЪЕКТНЫХ МЕТОДОВ?
Положение КАЖДОГО ПРИМИТИВА сцены сравнивается по очереди с положениями ВСЕХ ОСТАЛЬНЫХ ПРИМИТИВОВ. Примитивов сцены N. Значит, количество сравнений при этом примерно равно N2.
Что характерно для ЭКРАННЫХ МЕТОДОВ?
Положение КАЖДОГО ПИКСЕЛА ПЛОСКОСТИ ПРОЕКЦИЙ сравнивается с положениями КАЖДОГО ПРИМИТИВА СЦЕНЫ.
Если количество пикселов вьюпорта равно М, то количество сравнений примерно равно М*N.
ТАК ЧТО ЖЕ МЕНЬШЕ - М*N или N2 ?
Понятно, что при М < N (сцена с большим количеством примитивов) произведение M*N меньше, что означает предпочтительность экранных алгоритмов. Справедливо и обратное – при небольшом количестве примитивов сцены предпочтительнее объектные алгоритмы.
Объективности ради следует заметить, что этот теоретический вывод на практике часто не реализуется по причине быстрого удешевления компьютерной памяти (см. ниже замечания по Z-буферу).