- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Пример работы с z-буфером
Сцена представлена тремя объектами _красным, голубым и серым с градиентным цветом. Буфер кадра и Z- буфер изображены однострочными матрицами внизу рисунка. Для наглядности величины глубин, которые будут сохраняться в Z-буфере, будут показываться не числами, а стрелками, при этом длина стрелки изображает числовое значение глубины.
Закрашиваем в кадре пикселы, изображающие красный примитив. Пикселы получают цвет примитива, в Z-буфер занесены глубины соответствующих точек в сцене.
Выводим голубой примитив.. Видно, что три левых точки голубого примитива оказались с меньшей глубиной, чем выведенные ранее точки красного примитива, потому что голубой примитив частично заслоняет собой красный. Эти три пиксела перекрашены с красного цвета в голубой, в Z-буфер этих ячеек занесены новые, меньшие, значения.
Переходим к выводу серого примитива. Здесь намеренно создана ситуация пересечения голубого и серого примитивов. Посмотрим, как алгоритм Z-буфера справится сней.
При выводе серого примитива в кадр попадают изображения его точек, находящихся правее пересечения с голубым примитивом – только у них глубины меньше, чем у точек голубого примитива. Соответственно в ячейки Z-буфера занесены новые меньшие значения.
Итоговая картинка показывает окончательное заполнение кадра и Z-буфера.
Как видим, алгоритм Z-буфера совершенно одинаково обрабатывает ситуации и заслонения одного примитива другим, и «протыкания» одним примитивом другого.
Достоинства алгоритма z-буфера
Простота и универсальность.
Он нечувствителен к сложности сцены.
Легко строятся сечения z=const.
Недостаток алгоритма z-буфера
Повышенный расход оперативной памяти.
Следует заметить, что при постоянно падающей цене на оперативную память компьютеров отмеченный недостаток нивелируется с каждым годом. Это приводит к тому, что алгоритм Z-буфера становится все более доминирующим. Практически во всех видеоконтроллерах сегодня присутствует специальная область памяти под Z-буфер, измеряемая сотнями мегабайт, а сама закраска с его использованием реализуется аппаратно.
ИТОГИ
При малых количествах примитивов сцены предпочтительны объектные алгоритмы удаления невидимых линий и граней, а при сложных сценах – экранные.
Как объектные, так и экранные алгоритмы удаления невидимого потребляют значительный объем компьютерных ресурсов.
Поэтому в современных компьютерах значительная часть этой работы аппаратно реализуется в видеоконтроллерах (в частности, алгоритм Z-буфера).
Как и ОТСЕЧЕНИЕ ПО ВИДИМОМУ ОБЪЕМУ, алгоритмы УДАЛЕНИЯ НЕВИДИМОГО служат повышению скорости вывода в видеоконвейере.
Все эти методы разделяют множество объектов и примитивов сцены на ВИДИМЫЕ (и только они выводятся во вьюпорт) и НЕВИДИМЫЕ, на обработку которых не тратится ни память, ни процессорное время.
11Построение проекций план раздела
Общая классификация проекций.
Виды центральных проекций.
Виды параллельных проекций.
Практическое проецирование
Проецирование – это четвертая операция видеоконвейера. Ее задача – получить из 3хмерной сцены, оставшейся внутри видимого объема после предыдущих операций, 2-мерное изображение, пригодное для отображения в визуальный порт («вьюпорт») на экране компьютера.
Напомним, что в качестве плоскости проекции принято использовать ближнюю к наблюдателю фронтальную плоскость видимого объема. Точки примитивов отображаются на нее прямолинейными лучами – проекторами, которые (при центральном проецировании) сходятся в точке наблюдения (фокусе объектива камеры). Как будет видно из последующего материала, это случай центральной плоской геометрической проекции.
Как частный случай возможна параллельная плоская геометрическая проекция – когда видимый объем имеет форму прямоугольного параллелепипеда, а проекторы есть параллельные прямые, параллельные оси Ze.