
- •Предмет компьютерная графика.
- •Эволюция технических средств компьютерной графики.
- •3. Программистская модель машинной графики.
- •4. Графический пакет. Основные понятия и определения.
- •Простой графический пакет.
- •Независимость пакета от графических устройств.
- •Геометрические преобразования.
- •Алгоритм Брезинхейма рисования отрезка.
- •Алгоритм впервые разработан для графопостроителя
- •Рисование окружности методом Брезинхейма.
- •Компьютерные шрифты.
- •Термины, относящиеся к шрифтам.
- •Метрические параметры шрифтов.
- •Заполнение областей.
- •Растровая развертка многоугольника.
- •Реалистичные изображения.
- •I. Поверхностные модели
- •Сплайновая кривая.
- •II. Модели сплошных тел.
- •III. Модель сплошных конструктивов.
- •Полигональные сетки.
- •Параметрические кубические кривые.
- •Цвет компьютерной графики.
- •5 Уровней освещенности:
- •Цветовые модели кг.
- •Методы закраски.
- •Закраска полигональной сетки.
- •Параметрические кубические кривые и поверхности.
- •Параметрические бикубические поверхности.
- •Удаление невидимых линий и поверхностей.
- •Сравнение по глубине и перспективным преобразованием.
- •Метод сортировки по глубине.
- •Метод плавающего горизонта.
- •Метод построчного сканирования.
- •Метод разбиения области.
- •Алгоритм Варнока
- •Комбинация примитивов.
- •Взаимное положение точки и объекта.
- •Определение видимых точек.
- •Изображение основных примитивов методом трассировки лучей.
- •2. Квадратичные поверхности.
- •Изображение прозрачных, преломляющих и зеркальных поверхностей.
- •Управление процессом формирования изображения.
- •Детализация поверхностей.
- •Способы вывода изображения в Windows.
Закраска полигональной сетки.
Однотонная закраска.
Берем грань, находим нормаль, направление от наблюдателя и закрашиванием.
I. Закраска методом Туро или интерполяцией интенсивности
Пусть есть полигональная сетка. Определяем нормаль в вершине полигональной сетки, как среднее между нормалями к прилегающим граням.
По нормалям в вершинах находятся интенсивности закраски грани в вершинах.
Закрашиваем многоугольник:
Найти интенсивность в точке W.
,
где
II. Закраска методом Фонга.
Находим нормаль каждой из вершин, интерполирует значение нормали, а потом многогранника:
Плюсы: более качественно.
Параметрические кубические кривые и поверхности.
Описываются в виде 3-х заданных уравнений:
Касательный вектор:
и
аналогично.
1) Параметрическая кубическая кривая в форме Эрмита.
Задаются две точки:
-
кас. вектора в точках.
Кривую можно представить в следующем виде:
(*)
Матрица обратная к (*) :
Mh – Эрмитова матрица
Gh – геометрический вектор Эрмита
Общий вид кривой:
Чтобы построить семейство кривых:
2) Кривая в форме Безье.
Отличается формой задания направления векторов.
Задается 4-мя точками:
и
Это направляющие отрезки.
Соот-ние между Безье и Эрмитом:
Кривая в форме Безье из кривой в форме Эрмита получается следующим образом:
Матрица Безье:
3) Кривая в форме Б – Сплайн (базовый сплайн).
Общий вид кривой:
Параметрические бикубические поверхности.
Получим в виде расширения кривых.
Общий вид уравнения поверхности:
Чтобы получить уравнение поверхности возьмем кривую Эрмита, где геометрический вектор является не константой, а функцией зависимости от t.
В форме Безье поверхность получается аналогичными рассуждениями.
Удаление невидимых линий и поверхностей.
Существует два класса алгоритмов удаления линий:
1) алгоритмы, работающего в пространстве изображения.
Объект – совокупность из n граней.
Изображение – совокупность из N точек на экране.
Задача алгоритма: определить, какая из n граней видна в каждой из N точек.
2) алгоритмы, работающие в пространстве объекта.
Каждый из n граней сравнивается с n-1 гранями и определяется, какая из граней будет видима.
Размерность задачи: 1) n*N
2) n2
во 2) проверка сложнее.
Сравнение по глубине и перспективным преобразованием.
Удаление невидимых линий производится до проецирования объекта.
выяснить, лежат ли 2 точки
на одном проекторе
Если проекция параллельная, то сравниваем коор-ты (x c x, y c y)
Если проекция центральная, то сравниваем:
Перспективные преобразования упрощают задачу (вычислений меньше)
Матрица перспективных преобразований:
Центральная проекция сводится к параллельной.
Вводим оболочки объектов, чтобы упростить сравнение по глубине.
Можно рассмотреть пространственную оболочку – параллепипед, заключенный в себя объект.
Экранная оболочка – прямоугольник, заключенный в себя проекцию объекта.
Z – оболочка – пространство, которое занимает объект вдоль оси Z.
Если
оболочки объектов не пересекаются, то
сами объекты не пересекаются.
1) Алгоритм Z – буфера.
Алгоритм работает в пространстве изображения.
Каждой точке экрана ставится в соответствие элемент z – буфера, который хранит информацию о глубине в данной точке.
Вначале все ячейки z-буфера заполняем максимально возможным значением, все точки экрана окрашиваем в цвет фона.
Для каждой точки (x,y) вычисляем z(x,y) и сравниваем со значением, хранящиеся в z-буфере, если полученное значение того, что в z-буфере, то
в z-буфер записывается новое значение z
точку (x,y) закрашиваем в цвет выводимого многоугольника.
Пусть многоугольник изображается построчно.
Многоугольник – плоский.
Уравнение плоскости:
В соседней точке Y тот же самый (т.к. построчно) следовательно:
Метод реализуется просто, работает быстро.
Минусы: нужен огромный объем памяти под z-буфер.
2) Метод Робертса.
Используется самостоятельно, либо в сочетании с другими методами.
Служит для удаления не лицевых граней выпуклых многогранников.
Метод: для каждой грани строится внешняя нормаль. Если внешняя нормаль направлена в противоположную сторону от наблюдателя, грань является невидимой.
Чтобы определить внешнюю нормаль: берем грань и описываем обход грани (точки) против часовой стрелки. (от нас).
-
внешняя нормаль
Берем Z коор-ту внешней нормали (z – положит. – не видна грань, z – отрицат. - видно)
-
векторное произведение векторов
Если плюс, грань не видна
минус, видна