Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по кг2 2009.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.05 Mб
Скачать

Закраска полигональной сетки.

  1. Однотонная закраска.

Берем грань, находим нормаль, направление от наблюдателя и закрашиванием.

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-буфере, то

  1. в z-буфер записывается новое значение z

  2. точку (x,y) закрашиваем в цвет выводимого многоугольника.

Пусть многоугольник изображается построчно.

Многоугольник – плоский.

Уравнение плоскости:

В соседней точке Y тот же самый (т.к. построчно) следовательно:

Метод реализуется просто, работает быстро.

Минусы: нужен огромный объем памяти под z-буфер.

2) Метод Робертса.

Используется самостоятельно, либо в сочетании с другими методами.

Служит для удаления не лицевых граней выпуклых многогранников.

Метод: для каждой грани строится внешняя нормаль. Если внешняя нормаль направлена в противоположную сторону от наблюдателя, грань является невидимой.

Чтобы определить внешнюю нормаль: берем грань и описываем обход грани (точки) против часовой стрелки. (от нас).

- внешняя нормаль

Берем Z коор-ту внешней нормали (z – положит. – не видна грань, z – отрицат. - видно)

- векторное произведение векторов

Если плюс, грань не видна

минус, видна