- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Классификация областей Итог и примеры
Алгоритмы закраски 8-мисвязных областей ПРИМЕНИМЫ к 4-хсвязным областям. НО НЕ НАОБОРОТ!
У 4-хсвязной области ГРАНИЦА 8-мисвязная. СПРАВЕДЛИВО И ОБРАТНОЕ.
Простейший рекурсивный алгоритм заливки
Закраска пикселов области начинается обычно с указания пользователем некоторого внутреннего пиксела в области. Сам алгоритм строится либо по итеративному, либо по рекурсивному принципу.
Вот пример простого рекурсивного алгоритма для внутренне-оределенной 4хсвязной области:
Для самостоятельной работы попробуйте разобрать, что получится, если этот алгоритм применить к показанным ниже областям?
ИТОГИ
Растровая форма представления изображения имеет дело с заполнением площадей, поэтому базовые операции носят ТЕОРЕТИКО-МНОЖЕСТВЕННЫЙ ХАРАКТЕР.
Основной характеристикой пиксела является его ЦВЕТ, поэтому он является параметром всех базовых растровых процедур.
Базовые растровые процедуры (отрисовка отрезков и заполнение областей) вызываются очень часто.
Поэтому для производительности их программная реализация должна быть целочисленной.
Еще более предпочтительна их АППАРАТНАЯ РЕАЛИЗАЦИЯ в видеоконтроллерах.
Рекурсивная заливка области требует значительного расхода оперативной памяти.
Поэтому желательна их модификация в итеративную форму, что, впрочем, является логически более сложным алгоритмом.
14 ТЕКСТУРИРОВАНИЕ
ПЛАН РАЗДЕЛА
Суть текстурирования.
Задание текстуры.
Текстурные координаты вершин объекта.
Наложение текстуры на грань.
Быстрый текстурный рендеринг по Фонгу.
Приближенное построение отражений с помощью текстур.
СУТЬ ТЕКСТУРИРОВАНИЯ
В трехмерном моделировании разработано множество технологий текстурирования.
Но мы ограничиваем здесь наше рассмотрение только так называемыми ПЛОСКИМИ ПРОЕКТИВНЫМИ ТЕКСТУРАМИ, под которыми понимается программная технология нанесения ПЛОСКИХ ИЗОБРАЖЕНИЙ на грани трехмерных объектов.
КАК ЗАДАТЬ ТЕКСТУРУ
Текстура – это растровое изображение с вещественными координатами пикселов, заданными в диапазоне от 0,0… до 0,999… (единичный квадрат). Видно, что координаты текстурных пикселов («текселов») – дробные числа с нулевой целой частью.
Текстурные координаты вершин объекта
Каждая вершина имеет ПРОСТРАНСТВЕННЫЕ КООРДИНАТЫ x,y,z.
Для нанесения на грани текстуры каждой вершине присваивают ДОПОЛНИТЕЛЬНО еще и ПАРУ ТЕКСТУРНЫХ КООРДИНАТ. Алгоритмов нанесения текстурных координат может существовать бесконечно много (ограничений практически никаких), от этого зависит вид и масштаб нанесенной на объект текстуры.
Текстурные координаты (другой пример)
Здесь пример показывает один из возможных частных случаев: «накручивание» плоской картинки на боковую поверхность цилиндра. Справа – текстура, слева – результат текстурирования.
ВЫЧИСЛЕНИЕ ЦВЕТА ТЕКСЕЛА
Берется проекция грани на плоскость проекции. В каждой вершине грани определены две текстурных координаты. Для произвольной внутренней точки грани интерполяцией вычисляется пара текстурных координат. Отбрасывая целые части каждой, получают пару координат тексела на текстуре. Его цветом закрашивается рассматриваемая точка на грани. Перебрав все пикселы изображения грани, получаем ее текстурированное изображение. Конечно, перебор пикселов довольно длительный процесс, но само их закрашивание практически не отнимает времени (одно присваивание).