- •Лекция 1. Введение в компьютерную графику
- •История технологий вывода
- •Направления компьютерной графики
- •Изобразительная компьютерная графика
- •Обработка и анализ изображений
- •Анализ сцен
- •Когнитивная компьютерная графика
- •Приложения компьютерной графики
- •Лекция 2. Аппаратное обеспечение компьютерной графики
- •Устройства отображения информации
- •Векторные дисплеи
- •Растровые дисплеи
- •Основные характеристики монитора
- •Устройства ввода графической информации Световое перо
- •Манипулятор «мышь»
- •Трекбол
- •Дигитайзер
- •Устройства трехмерного сканирования
- •Устройства вывода графической информации Принтеры
- •История развития видеоадаптеров для совместимых компьютеров
- •Типы графических форматов
- •Растровые форматы
- •Векторные форматы
- •Метафайловые форматы
- •Методы сжатия, используемые в растровых форматах Лекция 3. Математические основы компьютерной графики. Преобразования в двухмерном пространстве
- •П реобразование точек
- •Преобразование прямых линий
- •Двумерное смещение и однородные координаты.
- •Однородные координаты. Операции в них
- •Операция cмещения
- •Вращение
- •Лекция 4. Преобразования в 3d пространстве. Виды проецирования
- •Смещение
- •Виды проецирования
- •Двухточечное проецирование по p, q
- •Стереографическая и специальные перспективные проекции
- •Проекция на плоскость
- •Проекция на сферу (рыбий глаз)
- •Проекция на цилиндрическую поверхность
- •Лекция 5. Растровая графика. Представление графических примитивов. Алгоритмы вычерчивания отрезков. Растровые алгоритмы
- •Вывод на экран произвольной точки
- •Растровое представление отрезка
- •Растровое представление отрезка. Алгоритм Брезенхейма
- •Простой метод устранения лестничного эффекта
- •Модифицированный алгоритм Брезенхейма с устранением ступенчатости для первого квадранта
- •Отсечение отрезка. Алгоритм Сазерленда-Кохена
- •Лекция 6. Растровая развертка сплошных областей. Алгоритмы заполнения контуров. Алгоритмы закраски многоугольников. Растровая развертка сплошных областей
- •Заполнение многоугольников
- •Растровая развертка многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Простой алгоритм с упорядоченным списком ребер
- •Более эффективные алгоритмы с упорядоченными списком ребер
- •Лекция 7. Основы 3d графики Задание объектов и сцен
- •П ерспективное проецирование
- •Работа с произвольной камерой
- •Моделирование текстуры
- •Лекция 8. Алгоритмы удаления невидимых линий и поверхностей о тсечение нелицевых граней
- •Алгоритм художника
- •Метод z-буфера
- •Порталы
- •Алгоритм Сазерленда-Ходжмана
- •Алгоритмы упорядочения
- •Метод двоичного разбиения пространства
- •Метод построчного сканирования
- •Лекция 9. Расчет освещения м одель освещения
- •Расчет нормали к объекту
- •Освещение по Ламберту
- •Освещение по Гуро
- •Освещение по Фонгу
- •Лекция 10. Построение изображений методом трассировки лучей Основы метода трассировки лучей
- •Методы оптимизации
- •Литература
Двухточечное проецирование по p, q
Меняя p, q и r, мы регулируем точку схода.
Трёхточечное проецирование по p, q, r
Стереографическая и специальные перспективные проекции
Перечислим некоторые способы, которыми довольно часто пользуются, повышающие реалистичность проецирования изображения на экран.
Для осознания глубины, трехмерности изображения можно применять нанесение штрихов, теней, дымки, окраски, стерео (например, для решёток, ажурных конструкций). Но, чтобы в полной мере правильно использовать стереоэффеты, сначала надо понять, как мы получаем чувство третьего измерения? Человек чувствует глубину по напряжению околоплодной мышцы глаза. Каждый глаз дает нам отдельный вид.
Пример:
F = 50 см (от глаз до изображения), d = 50 см (между глазами), S = arctg (d/F) = 5,71o
Чтобы осуществить смещение:
{d/2=F=20
{-d/2=-F/20
Матрица левого глаза |
Матрица правого глаза |
|
|
Отсюда возникает вопрос как мы можем получить эффект стереоизображения? Существуют специальные способы получения таких изображений. Один из них - виртуальный шлем.
Один из видов специальных проекций - стереоскопические. Простейший вид стереоизображения образуется с помощью стереопары - двух перспективных проекций, построенных каждая для своего глаза, т.е. с нескольких отличных точек зрения. Для объемного восприятия нужно устроить так, чтобы каждый глаз видел свою проекцию. Достигается это различными способами: просмотром диапозитивов через стереоскоп; с помощью анаглифических изображений, т.е. двух наложенных друг на друга проекций, выполненных разными цветами, которые рассматривают через цветные очки, пропускающие определенные цвета т.п.
Более сложные системы стереоскопии используют не 2 различные проекции, а целую серию их или даже подобие "непрерывной" проекции, построенной для меняющейся точки зрения и разложенной на узкие полоски, просматриваемые через специальный экран.
Проекция на плоскость
Геометрическая схема построения центральной проекции на плоскость
где N - нейтральная плоскость, К - картинная плоскость, z - главный луч зрения, s - точка зрения (точка прекции)
z'пр = zпр + F
x' = xF/z'пр
y' = yF/y'пр
Проекция на сферу (рыбий глаз)
В отличие от классической перспективы здесь лучше каждую часть изображения рассматривать перпендикулярно к ней, т.е. при просмотре различных частей проекции голова наблюдающего или рисунок перемещаются. Такое рассматривание можно назвать фрагментарным.
z'пр = zпр +F
x' = xпр c
y' = yпр c
где луч, выходящий из точки М - это луч проецирования на сферу, S - это центр проекции, а луч, входящий в точку М' - это луч перепроецирования со сферы на плоскость.
Проекция на цилиндрическую поверхность
Проекция на цилиндрическую поверхность позволяет показывать объекты с очень большими углами зрения по горизонтали, вплоть до круговой панорамы. Вычерчиваются проекции в виде разверток на обычных графических устройствах.
s - центр проекции (точка зрения), z - главная ось.
Лекция 5. Растровая графика. Представление графических примитивов. Алгоритмы вычерчивания отрезков. Растровые алгоритмы
В подавляющем большинстве графические устройства являются растровыми, т.е. изображение представляет собой прямоугольную матрицу (сетки, целочисленной решетки) пикселов (растра), поэтому возникает необходимость в растровых алгоритмах.
Хотя большинство графических библиотек содержат внутри себя достаточное количество простейших растровых алгоритмов, таких как:
переведение идеального объекта (отрезка, окружности и др.) в их растровые образы;
обработка растровых изображений,
тем не менее, часто возникает необходимость явного построения растровых алгоритмов.
Достаточно важным понятием для растровой сетки является связность – возможность соединения двух пикселов растровой линией, т.е. последовательным набором пикселов. При этом возникает вопрос, когда пикселы (x1, y1) и (x2, y2) можно считать соседними.
Вводится два понятия связности:
4-связность, когда пикселы считаются соседними, если их x–координаты, либо y–координаты отличаются на единицу, т.е.
|x1 – x2| + |y1 – y2| <= 1,
8-связность, когда пикселы считаются соседними, если их x– и y–координаты отличаются не более чем на единицу, т.е.
|x1 – x2| <= 1, |y1 – y2| <= 1.
Понятие 4-связности является более сильным, чем 8-связность: любые два 4-связных пиксела являются и 8-связными, но не наоборот (рис. 1).
В качестве линии на растровой сетке выступает набор пикселов P1, P2,…,Pn, где любые два пиксела Pi, Pi+1 являются соседними.