
- •1. Зарождение компьютерной графики.
- •2. 1960-е годы. Становление КГ.
- •1.2. Области применения компьютерной графики
- •1.4. Устройства вывода компьютерной графики
- •Контрольные вопросы и упражнения
- •2. АРХИТЕКТУРА ГРАФИЧЕСКИХ РАБОЧИХ СТАНЦИЙ
- •2.1. Рабочие станции
- •2.2. Графический ускоритель
- •2.4. Технология 3D-графики
- •Контрольные вопросы и упражнения
- •3.1. Общие положения методов представления видеоинформации
- •3.2. Алгоритмы архивации без потерь
- •3.3. Алгоритмы архивации с потерями
- •Контрольные вопросы и упражнения
- •4. ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ
- •4.1. Представление моделей
- •4.2. Способы представления объектов
- •Представление поверхностных моделей
- •4.4. Алгоритмы построения геометрических моделей тел
- •4.4.1. Построение правильных многогранников
- •4.4.2. Построение икосаэдра
- •4.4.3. Построение додекаэдра и сферы
- •Аффинные преобразования на плоскости
- •Однородные координаты точки
- •Аффинные преобразования в пространстве
- •Изометрическая проекция
- •Пример:
- •Перспективная проекция
- •5.4. Этапы создания графического объекта
- •Преобразования положения объекта
- •5.5. Работа с матрицами и векторами
- •Контрольные вопросы и упражнения
- •6.1.2. Простой метод устранения ступенчатости
- •6.1.3. Алгоритм Ву для растеризации отрезка с антиалиасингом
- •6.3. Закраска области, заданной цветом границы
- •Контрольные вопросы и упражнения
- •7. ЗАДАЧА ОТСЕЧЕНИЯ
- •7.1. Отсечение отрезков
- •7.1.4. Двумерный алгоритм Кируса-Бека
- •7.1.5. Проверка выпуклости и определение нормалей
- •7.2. Разбиение невыпуклых многоугольников
- •Алгоритм Сазерленда-Ходгмана
- •Контрольные вопросы и упражнения
- •8.4. Задача вычисления точек пересечений
- •8.4.1. Пересечение луча со сферой
- •8.4.3. Пересечение луча с многоугольником
- •8.4.4. Пересечение луча с треугольником
- •Решение будет состоять из следующих шагов:
- •Если мы вычислим единичные векторы Pa1, Pa2, Pa3
- •тогда углы будут равны
- •8.4.5. Пересечение с прямоугольным параллелепипедом
- •Контрольные вопросы и упражнения
- •9. АЛГОРИТМЫ УДАЛЕНИЯ СКРЫТЫХ ЛИНИЙ И ПОВЕРХНОСТЕЙ
- •9.1. Классификация методов удаления невидимых частей
- •9.2.1. Отсечение нелицевых граней
- •9.2.2. Ограничивающие тела (Bounding Volumes)
- •9.2.4. Иерархические структуры (Hierarchies)
- •9.3. Алгоритмы удаления линий
- •9.4.1. Алгоритм удаления поверхностей с Z-буфером
- •Построчный z-буфер
- •9.4.2. Алгоритм разбиения области Варнока
- •9.4.3. Построчный алгоритм Уоткинса
- •9.4.4. Алгоритм трассировки лучей
- •9.4.5. Алгоритмы упорядочения
- •9.4.6. Метод сортировки по глубине. Алгоритм художника
- •9.4.7. Метод двоичного разбиения пространства
- •9.5. Пример реализации алгоритма удаления невидимых граней
- •Контрольные вопросы и упражнения
- •10. ПОСТРОЕНИЕ РЕАЛИСТИЧЕСКИХ ИЗОБРАЖЕНИЙ
- •10.1. Модели освещения
- •10.1.1. Механизм диффузного и зеркального отражения света
- •10.1.2. Модели закраски
- •10.1.3. Прозрачность
- •10.1.4. Тени
- •10.2. Фактура (текстурирование)
- •10.4. Трассировка лучей
- •10.5. Излучательность
- •Контрольные вопросы и упражнения
- •11. ИНТЕРАКТИВНЫЕ СИСТЕМЫ. СОВРЕМЕННЫЕ СТАНДАРТЫ 3D-ГРАФИКИ
- •Аппаратно-независимые графические протоколы
- •Контрольные вопросы и упражнения
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
- •ИСТОЧНИКИ ИНТЕРНЕТ
|
|
|
|
|
|
|
89 |
|
|
|
|
|
|
|
|
1-й шаг |
|
|
2-й шаг |
|
|
|
3-й шаг |
||||||
|
1 |
0 |
0 |
|
α 0 |
0 |
|
|
|
1 0 0 |
||||
[T |
] = |
0 |
1 |
0 |
; |
[D] = |
0 |
δ |
0 |
; |
[T |
] = |
0 1 |
0 . |
−A |
|
−a |
−b |
|
|
|
0 |
0 |
|
|
A |
|
|
|
|
|
1 |
|
|
1 |
|
|
|
a b |
1 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перемножив матрицы в том же порядке [T-A][D][TA], получим окончательно:
|
|
α |
0 |
0 |
|
{x* y* 1} = {x y 1} |
|
0 |
δ |
|
|
|
0 . |
||||
|
(1 |
−α)a (1 |
−δ)b 1 |
|
|
|
|
|
|
|
|
Аффинные преобразования в пространстве
Обратимся теперь к трехмерному случаю (3D) (3-dimension) и начнем рассмотрение сразу с введения однородных координат.
Поступая аналогично тому, как это было сделано в двухмерном случае, заменим координатную тройку (х, у, z), задающую точку в пространстве, на четверку чисел (x, y, z, 1) или, более общо, на чет-
верку (hx, hy, hz), h≠0.
Каждая точка пространства (кроме начальной точки О) может быть задана четверкой одновременно неравных нулю чисел; эта четверка чисел определена однозначно с точностью до общего множителя.
Предложенный переход к новому способу задания точек дает возможность воспользоваться матричной записью и в более сложных трехмерных задачах.
Любое аффинное преобразование в трехмерном пространстве может быть представлено в виде суперпозиции поворотов, растяжений, отражений и переносов. Поэтому вполне уместно сначала подробно описать матрицы именно этих преобразований (ясно, что в данном случае порядок матриц должен быть равен четырем).
А. Матрицы вращения в пространстве:
90
вокруг оси абсцисс на угол ϕ :
|
|
1 |
0 |
0 |
0 |
|
[R |
|
0 |
cosϕ |
sinϕ |
0 |
; |
X |
] = |
−sinϕ |
cosϕ |
|
||
|
0 |
0 |
|
|||
|
|
|
0 |
0 |
|
|
|
|
0 |
1 |
|
вокруг оси аппликат на угол χ :
|
|
cos χ |
sin χ |
0 |
0 |
[R |
|
−sin χ |
cos χ |
0 |
0 |
] = |
0 |
0 |
1 |
. |
|
Z |
|
0 |
|||
|
|
0 |
0 |
0 |
|
|
|
1 |
вокруг оси ординат на угол ψ :
|
cosψ |
0 |
−sinψ |
0 |
|
|
[R |
|
0 |
1 |
0 |
0 |
; |
] = |
|
0 |
cosψ |
|
||
Y |
sinψ |
0 |
|
|||
|
|
0 |
0 |
0 |
|
|
|
|
1 |
|
Примечание. Полезно обратить внимание на место знака "-"в каждой из трех приведенных матриц.
Б. Матрица растяжения (сжатия): |
|
|
|
|
|
||||||||||
|
|
α |
0 |
0 |
0 |
|
где α > 0 - коэффициент растяжения (сжатия) |
||||||||
|
|
|
|
вдоль оси абсцисс; |
|
|
|
|
|
||||||
|
|
|
β |
0 |
|
|
|
β > 0 - коэффициент растяжения (сжатия) |
|||||||
[D] = 0 |
0 , |
|
|||||||||||||
|
|
0 |
0 |
γ |
0 |
|
|
вдоль оси ординат; |
|
|
|
|
|
||
|
|
|
0 |
0 |
|
|
|
γ > 0 - коэффициент растяжения (сжатия) |
|||||||
|
|
0 |
1 |
|
|
вдоль оси аппликат. |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
В. Матрицы отражения: |
|
|
|
|
|
|
|
|
|||||||
|
|
относительно |
|
|
|
|
относительно |
|
|
относительно |
|||||
|
|
плоскости ху |
|
|
|
|
плоскости уz |
|
|
плоскости zx |
|||||
|
|
1 0 |
0 0 |
|
|
|
−1 0 0 0 |
|
|
1 0 0 |
0 |
||||
[M |
|
0 1 |
0 0 |
; |
[M |
|
|
0 1 0 0 |
[M |
|
0 |
−1 0 |
0 |
||
Z |
] = |
|
|
|
X |
] = |
; |
Y |
] = |
|
. |
||||
|
0 0 |
−1 0 |
|
|
|
0 0 1 0 |
|
0 0 1 |
0 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 0 |
0 1 |
|
|
|
|
0 0 0 1 |
|
|
0 0 0 |
1 |
Г. Матрицы переноса (здесь λ, µ, ν – координаты вектора переноса):
|
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
[T ] = |
|
0 |
1 |
. |
0 |
0 |
|||
|
|
µ |
ν |
|
λ |
1 |
91
Примечание. Как и в двухмерном случае, все выписанные матрицы невырождены.
Таким образом, любое сложное аффинное преобразование может быть достаточно просто получено путем комбинации четырех базовых преобразований.
5.2. Проецирование
Вычерчивание трехмерных объектов независимо от того, на бумаге ли это происходит или на экране дисплея, осуществляется при помощи двухмерных проекций. В плоской проекции каждая точка предмета проецируется определенным образом на плоскость проекции, и её образ называется точкой проекции. Если линии проекции, соединяющие точки предмета с соответствующими точками проек-
ции, параллельны, то это плоская параллельная проекция. Если же линии проекции сходятся в одной общей точке, то получаемое изображение называется центральной проекцией, или перспективным изображением предмета.
Процесс проецирования эквивалентен сдвигу плоскости проекции и предмета до тех пор, пока плоскость проекции не пройдет через начало координат. Чтобы восстановить точку объекта, необходимо выполнить обратные преобразования.
Общая формула преобразования:
a |
x |
x |
p |
|
где a, d, е – масштабирование; |
x |
d |
x |
q |
|
m, n ,l – смещение; |
, |
p, q ,r – проецирование; |
||||
|
x |
e |
|
s – комплексное масштабирование; |
|
x |
r |
|
|||
|
n |
l |
|
|
х – вращение. |
m |
s |
|
|
Среди параллельных проекций выделяются следующие виды:
1)ортографическая проекция (параллельно одной из координатных плоскостей);
2)аксонометрическая проекция (проектирующие прямые перпендикулярны картинной плоскости):
-триметрическая проекция (нормальный вектор картинной плоскости образует с ортами координатных осей попарно различные углы);
-диметрическая проекция (два угла между нормалью картинной плоскости и координатными осями равны);

92
- изометрическая проекция (три угла равны);
3)косоугольная проекция:
-свободная проекция;
-кабинетная проекция. Перспективные проекции:
-одноточечная (r ≠ 0);
-двухточечная (p, q ≠0), меняя p и q, мы регулируем точки схода
(рис. 5.6.);
Рис. 5.6. Двухточечная перспективная проекция
- трехточечная (p, q, r ≠0) (рис. 5.7).
Рис. 5.7. Трехточечная перспективная проекция
При орфографической проекции координатная плоскость параллельна или совпадает с одной из координатных плоскостей. Если она параллельна, то необходимо умножить на матрицу сдвига с параметром m,n,l ≠ 0.