- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
5 Описание перемещений и деформаций объектов план раздела
Перенос, масштабирование и поворот двумерной точки.
Однородные координаты.
Матричное представление трехмерных преобразований.
Геометрическая интерпретация компонент матриц поворота.
Матрицы обратных преобразований.
Композиция нескольких преобразований.
Проблема коммутативности перемножения матриц преобразований.
ПРИМЕР: отображение прямоугольника в другую систему координат.
Перенос, масштабирование и поворот двумерной точки Обычный линейный перенос…
Можно все это описать обычными уравнениями. Но матричная запись оказывается удобнее.
Масштабирование координат
Это преобразование, при котором новое значение координаты получается умножением старого на число, называемое коэффициентом масштабирования. Так можно преобразовывать, например, каждую координату по отдельности.
А можно и обе сразу.
В этом случае матричная запись оказывается опять удобнее. Матрица S, называемая матрицей масштабирования, имеет вид:
Новые значения координат точки Р вычисляются с ее помощью так:
, что кратко записывается через равенство:
Интересный частный случай.
Нередко приходится находить положение точки, симметричное заданному относительно некоторой координатной оси. В этом случае значение координаты меняет свой знак на обратный. По сути эта операция означает масштабирование требуемой координаты с коэффициентом масштабирования -1 и описывается так
Но эта же операция имеет и другую трактовку: смена направления координатной оси на противоположное. Матрица масштабирования та же, но ориентация системы координат с правой меняется на левую или наоборот.
Поворот (вокруг начала координат)
Из курса аналитической геометрии на плоскости известны формулы, описывающие такое преобразование.
На основании этой системы уравнений легко формируется матрица R, называемая матрицей поворота:
Новоые координаты точки вычисляются так:
Что кратко записывается уравнением:
Неоднородность описаний
Обобщая вышесказанное, нетрудно заметить, что три базовых трансформации (перемещение, поворот и масштабирование) описываются РАЗНЫМИ матричными действиями. Масштабирование и поворот сводятся к умножению:
Перемещение сводится к матричному сложению. Это плохо, потому что затрудняет описание сложных преобразований, состоящих из цепочки действий.
Как перемещение описать умножением?
Проблема состоит в поиске такого математического описания перемещения, которое сводилось бы к умножению матриц, что сделает набор действий однородным. Как мы увидим, это возможно.
Исходные уравнения для перемещения имеют вид:
Добавим в правые части уравнений по дополнительному нулевому слагаемому (что не нарушит равенства) и придадим уравнениям следующий вид:
Что в матричной форме легко записывается так:
Если добавить еще третье матричное тождество
То в итоге система уравнений для вычисления координат точки после перемещения приобретает вид:
Входящая в правую часть матрица 3х3 называется матрицей перемещения:
С ее помощью перемещение описывается через умножение матриц. Цель достигнута.
Однородные координаты
Предыдущий вопрос породил новую проблему. Вместо описания точки как пары координат на плоскости
Используется описание через координату х и у и в матрицу-строку точки вводится еще единица:
Такое видоизмененное представление точки на плоскости принято называть ОДНОРОДНЫМИ координатами. Впервые их ввел E.A.Maxwell (Camdridge, 1946 г.)
Теперь с их помощью все операции математически описываются однородно – через умножение матриц.
МАТРИЧНОЕ ОПИСАНИЕ НЕСКОЛЬКИХ ТРАНСФОРМАЦИЙ
Рассмотрим, как записываются матрицы сложных преобразований, но состоящих из цепочки однотипных пребразований.
Несколько перемещений
Векторная схема нескольких (здесь двух) перемещений выглядит так:
Промежуточная точка Р1 из исходной Р0 получается так:
Конечная точка Р2 из точки Р1 получается аналогично.
Итоговая матрица двойого перемещения имеет приводимый ниже вид. Легко видеть, что он полностью согласуется с векторным описанием двойного перемещения.
Несколько масштабирований
Предположим, сначала выполняется масштабирование с матрицей Sx1, а затем, от его результирующего положения, второе – с матрицей Sx2:
Составляющие трансформации описываются классическими уравнениями:
Сводя эти уравнения в одно, получаем:
Откуда можно выделить матрицу результирующего масштабирования.
Несколько поворотов
Как и в предыдущем случае, рассмотрим два последовательных поворота:
Матрица результирующего поворота имеет вид:
И вообще, несколько однотипных преобразований на плоскости:
Здесь приведены обобщающие формулы матриц, описывающих результирующие матрицы для любого числа составляющих однотипных преобразований.
МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ ТРЕХМЕРНЫХ ПРЕОБРАЗОВАНИЙ
Исходные соображения
Трехмерная точка в однородных координатах
P = [ x y z 1 ].
Система координат – ПРАВАЯ.
Поворотов теперь три – вокруг каждой оси.
(показаны положительные направления)
ЛИНЕЙНОЕ ПЕРЕМЕЩЕНИЕ в 3Д
МАСШТАБИРОВАНИЕ в 3Д
ПОВОРОТЫ в 3Д
Поворот погруг оси Z:
Поворот вокруг оси Х:
Поворот вокруг оси Y:
ГЕОМЕТРИЧЕСКАЯ ТРАКТОВКА КОМПОНЕНТОВ МАТРИЦЫ ПОВОРОТА
Матрица, описывающая поворот точки на плоскости вокруг начала координат
может иметь трактовку, облегчающую восстановление матрицы при известных начальном и конечном положениях точки, но неизвестной матрицеповорота.
ВАРИАНТ 1
Столбцы матрицы поворота можно рассматривать как проекции двух ортогональных единичных векторов, которые ПОСЛЕ поворота на заданный угол СОВМЕЩАЮТСЯ с координатными осями.
ВАРИАНТ 2
Строки матрицы поворота можно рассматривать как проекции двух ортогональных единичных векторов, которые ДО поворота СОВПАДАЛИ с координатными осями, а потом были повернуты на заданный угол.
МАТРИЦЫ ОБРАТНЫХ ПРЕОБРАЗОВАНИЙ
ПОСТАНОВКА ПРОБЛЕМЫ
Предположим, мы знаем результат (Р1) некоторого преобразования, тип которого нам известен. Известна и сама матрица. Надо восстановить исходное положение точки.
Итак, что дано: а) Результат преобразования – Р1.
б) Вид преобразования (вид матрицы МП – то ли это
Т, то ли S, то ли R);
в) матрица преобразования М ( М Î { T, S, R} ).
Найти: исходную точку Р0.