- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Общая схема действий по отсечению
Выделить грани, которые целиком находятся ВНУТРИ В.О. (показаны зеленым)
Выделить грани, которые пересекаются гранями В.О. (показаны красным)
В цикле по «красным» граням делать:
Методом Сазерленда-Ходжмана «обрезать» грань, оставив ТОЛЬКО ее ЧАСТЬ ВНУТРИ ВИДИМОГО ОБЪЕМА.
Здесь для напоминания приводится обсуждавшийся раньше пример алгоритма Сазерленда-Ходжмана для плоского случая. В трехмерном случае идея алгоритма остается неизменной.
Для дальнейшей обработки остается группа граней (изначально твидимые крани + оставшиеся кусочки отсеченных граней).
Чтобы логически завершить данный раздел, надо принять во внимание следующее.
При ЦЕНТРАЛЬНОМ ПРОЕЦИРОВАНИИ видимый объем имеет вид усеченной пирамиды.
Это создает заметные НЕУДОБСТВА и ЗАМЕДЛЕНИЕ в определении видимости точек.
Рассмотрим, какими приемами пользуются для снижения остроты этих неудобств.
Как задается видимый объем
Принято считать видимый объем симметричным относительно плоскостей ZOX и ZOY. Поэтому положение верхнего правого дальнего угла пирамиды видимости позволяет полностью восстановить ее. С учетом факта наличия ближней фронтальной плоскости видимый объем однозначно определяется четверкой чисел:
ВидимыйОбъем=(Xmax, Ymax, Zmax, d).
Дополнительные проблемы отсечения при центральном проецировании
Наклонное расположение боковых плоскостей затрудняет определение видимости точек в высотном и широтном направлениях. Определение расположения точки по отношению к передней и задней фронтальным плоскостям выполняются обычным сравнением координат.
Логические величины Дальше и Ближе определяются так:
Дальше = (Z > Zmax ? 1 : 0); Ближе = (Z < d ? 1 : 0);
А вот логичекое Выше требует выполнения двух вещественных делений и одного сравнения (вычитания).
Выше = (Y / Z > Ymax / Zmax ? 1 : 0);
Деление с плавающей точкой – это очень трудоемкая и медленная операция!
Повышение эффективности проверок при центральном проецировании
Некоторое (небольшое) улучшение в организации работ по отсечению можно получить, если до отсечения ко всем вершинам всех объектов сцены применить нормирующее преобразование:
Как видим, здесь деление заменяется умножением, которое машинно выполняется несколько быстрее.
После этого преобразования видимый объем преобразуется так, что верхний передний правый угол пирамиды видимости имеет координаты (1,1,1), боковые грани наклонены в оси Z под углом 45 градусов. В этих условиях видимость точек в широтном и высотномнаправлениях можно производить без вещественного деления, а только путем сравнения координат.
У нормированного видимого объема остается лишь один параметр:
НормированныйВидимыйОбъем=(d');
До нормирования было: Выше = (Y / Z > Ymax / Zmax ? 1 : 0);
После нормирования стало: Выше = (Y’ > Z’ ? 1 : 0);
Как видим, достаточно сравнить координаты.
Отпала необходимость в вещественном делении ПРИ КАЖДОЙ ПРОВЕРКЕ.
Проверки <, > выполняются ВЫЧИТАНИЕМ!
После выполнения проверок на видимость надо вернуть координаты вершин в старое (правильное) состояние.
итоги
Наиболее частый случай – видимый объем имеет форму усеченной пирамиды (строится центральная проекция). Отсечение с ним выполняется сложнее.
Случай параллельной проекции встречается реже, отсечение с ним проще.
Быстрая классификация точек относительно видимого объема выполняется, как и в двумерном случае, методом Коэна-Сазерленда, но модифицированным под трехмерный случай (код положения вершины составляет уже не 4 бита, а 6).
Отсечению подвергаются уже не отрезки (как в двумерном случае) а грани объектов сцены, и секущими являются уже не точки, а грани видимого объема.
Логика этих операций сложнее, чем в двумерном случае (алгоритм Сазерленда-Ходжмана).
Дополнительной проблемой при отсечении в случае центральной проекции является необходимость деления вещественных координат (Для вычисления флагов «выше», «ниже», «правее» и «левее»).
Некоторое повышение производительности при этом можно достичь НОРМИРОВАНИЕМ СЦЕНЫ (приведением видимого объема к «единичному» состоянию).
ОТСЕЧЕНИЕ СЦЕНЫ ПО ГРАНИЦАМ ВИДИМОГО ОБЪЕМА СЛУЖИТ ПОВЫШЕНИЮ ПРОИЗВОДИТЕЛЬНОСТИ ВИДЕОКОНВЕЙЕРА, так как ИЗ СТРУКТУРЫ ДАННЫХ СЦЕНЫ ИСКЛЮЧАЮТСЯ ЗАВЕДОМО НЕВИДИМЫЕ ОБЪЕКТЫ
Примечание. Этот подход продолжается также и на следующей операции видеоконвейера – УДАЛЕНИИ НЕВИДИМЫХ ГРАНЕЙ И РЕБЕР.