- •Компьютерная графика
- •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. Устройства получения твердых копий струйные принтеры
- •Технология электрографического копирования
- •Устройство черно-белого лазерного принтера
- •Устройство цветного лазерного принтера
- •Итоги раздела
- •Джойстик
- •Дискретный
- •Плавный
- •Содержание
Алгоритм брезенхема – предпосылки-1
Брезенхем предложил алгоритм растеризации отрезка, свободный от вышеприведенных недостатков.
Прежде всего, он предложил строить отрезок всегда в первом октанте, где последовательность пикселов получается сплошная всегда. Расположение отрезков во всех других октантах можно легко получить отражениями.
Предпосылки-2
Кроме этого, раз отрезок строится только для первого октанта, то по отношению к предыдущему пикселу каждый следующий будет располакаться либо на той же горизонтали, либо на одну выше и никак иначе.
То есть в цикле построения пикселов отрезка выбор происходит (см рисунок выше) всегда ТОЛЬКО МЕЖДУ точкой T и точкой S. По сути достаточно отслеживать знак отклонения точки пересечения идеальной прямой от точки 0,5 на следующей вертикали. Изложенное позволило Брезенхему предложить такой целочисленный алгоритм растеризации, который называется его именем:
В современных видеоконтроллерах этот алгоритм реализован аппаратно.
Проблемы яркости отрезка
Приведенная картинка показывает, что наклон отрезка приводит к его различной визуальной яркости.
Ясно, что нужны какие-то средства компенсации вредного влияния «ступенчатости» отрезка , т.н. алиасинга.
Компенсация алиасинга яркостью
Наиболее распространен прием, в котором отрезок изображают полоской пикселов, в которой насыщенность каждого пиксела пропорциональна площади, которую накрывает в данном пикселе идеальная полоска шириной ровно в один пиксел, изображающая отрезок.
Растеризация окружности – подходы
Свой подход к построению инкрементных алгоритмов растеризации Брезенхем распространил и на дуги окружностей.
Растеризуется дуга, расположенная только и исключительно во втором октанте, где касательная к любой точке дуги окружности ориентирована под углом от 0 до -45 градусов, что важно для построения алгоритма.
Остальные дуги строятся отражениями.
Алгоритм Брезенхема для ОКРУЖНОСТИ (идея)
Как и в алгоритме для отрезка, здесь выбор постоянно делается только между точкой Т (следующий пиксел на той же горизонтали) и точкой S (следующий пиксел лёг на одну горизонталь ниже предыдущего).
Выбор по-прежнему сводится к выбору между точками T и S.
Если анализировать Δ=(0,5 – e), то построении цепочки пикселов сводится к последовательности выборов, зависящих ТОЛЬКО ОТ ЗНАКА Δ! Целочисленный алгоритм Брезенхема для дуг также «зашит» в аппаратуру видеоконтроллеров.
Заливка областей постоянным цветом
Заполнение областей цветом – другой весьма распространенный класс задач для растровых устройств отображения информации. Но сначала нужно рассмотреть разновидности областей, потому что успех или неуспех заливки целиком определяется тем, соответствует ли применяемый алгоритм типу закрашиваемой области.
Классификация областей
1 - ПО СВЯЗНОСТИ
Связность – характеристика области, основанная на том, какие из соседних пикселов для каждого данного пиксела считаются СОСЕДНИМИ. Возможны два варианта:
2 – По тому, как определена ВНУТРЕННОСТЬ ОБЛАСТИ
У внутренне-определенных областей задается цвет пикселов области, он одинаков. При переходе по области встреча пиксела с любым другим цветом означает, что достигнута граница области. Естественно, границу области могут составлять пикселы разного цвета, лишь бы он не совпадал с цветом области.
Для гранично-определенных областей фиксируется цвет пикселов границы, а внутренность области может быть составлена из пикселов любых других цветов.
