- •Конспект лекцій
- •1. Машинная графика. Основные понятия 6
- •2 Преобразования в компьютерной графике 17
- •3. Технические средства мг 39
- •4. Трехмерная графика 55
- •Введение
- •1. Машинная графика. Основные понятия
- •1.1. Концептуальная модель машинной графики
- •1.2 Программирование
- •1.2.1 Координатные пространства
- •1.2.2 Текущее положение
- •1.2.3 Примитивы вывода и атрибуты.
- •1.2.4 Видовые операции
- •1.2.5 Относительные координаты
- •2 Преобразования в компьютерной графике
- •2.1 Общая архитектура графической системы
- •2.3 Геометрические преобразования
- •2.3.1 Основные математические операции
- •2.3.2 Двумерные преобразования
- •2.3.3 Однородные координаты и матричное представление двухмерных преобразований
- •2.3.4 Композиция двумерных преобразований.
- •2.3.5 Вопросы эффективности
- •2.4 Растровая развертка примитивов.
- •2.4.1 Развеpтка векторов. Тангенсный алгоритм
- •2.4.2 Алгоритм Брезенхема
- •2.4.3 Растровая развертка окружностей
- •2.4.4 Заполнение областей
- •2.4.5 Отсечение примитивов вывода
- •2.4.6 Отображение окна на поле вывода
- •3. Технические средства мг
- •3.1. Архитектура систем мг
- •3.2 Кадровое запоминающее устройство
- •3.3. Видеоконтроллеры
- •4. Трехмерная графика
- •4.1 Трехмерные координатные пространства. Матричное представление трехмерных преобразований
- •4.2 Изображения трехмерных объектов
- •4.3 Проекции
- •4.4 Представление пространственных форм
- •4.4.1 Представление поверхностей полигональной сеткой
- •4.4.2 Задание плоскости
- •4.4.3 Бикубические поверхности
- •4.5. Алгоритмы удаления скрытых линий и поверхностей
- •4.5.1 Трехмерное отсечение
- •4.5.2. Удаление скрытых линий и поверхностей
- •4.6. Алгоритмы фотореалистичной закраски
- •4.6.1 Модель освещения
- •4.6.2. Однотонная закраска
- •4.6.3 Закраска методом Гуро
- •4.6.4 Метод закраски Фонга
- •4.6.5 Определение нормалей к поверхности, вершинам, ребрам
- •4.6.6 Определение вектора отражения
4.4 Представление пространственных форм
Необходимость описывать пространственные формы появляется в двух случаях. Во-первых, когда необходимо смоделировать уже существующий объект: модели самолета или автомобиля, детали, архитектурного сооружения. В общем случае реальный объект не может полностью соответствовать своему представлению. Для этого необходимо бесконечное число троек x,y,z - по одной на каждую точку объекта. В лучшем случае объект удается представить комбинацией математических поверхностей, таких как плоскости, сферы, цилиндры и пр. Как правило, мы выбираем некоторое множество точек на объекте и требуем, чтобы представление объекта в точности (по мере возможности) соответствовало самому объекту только в этих выбранных точках, или расстояние между представлением и этими точками было малым. Во-вторых, такая необходимость возникает в задачах автоматизированного проектирования. В этом случае ни объекта ни его модели не существует и конструктор, руководствуясь своим представлениями о проектируемом объекте создает пространственную форму, действуя в интерактивном режиме.
Существуют два общепризнанных способа трехмерного представления поверхностей в пространстве: полигональная сетка и параметрические бикубические кривые.
4.4.1 Представление поверхностей полигональной сеткой
Полигональной сеткой является совокупность связанных между собой плоских многоугольников (сегментов, граней). Сетка может быть задана несколькими различными способами.
Явное задание многоугольников. Каждый многоугольник можно представить в виде списка координат его вершин
(4.15)
Вершины запоминаются в том порядке, в котором они встречаются при обходе вокруг многоугольника. При этом все последовательные вершины многоугольника, а также первая и последняя соединяются ребрами.
Рис. 4.6 Многоугольники с общей вершиной Vo
Если для отдельного многоугольника данный способ задания является эффективным, то для полигональной сетки приводит к большим потерям (Рис. 4.6) вследствие дублирования информации о координатах общих вершин. Кроме того, полигональная сетка изображается путем вычерчивания ребер каждого многоугольника, что приведет к повторному вычерчиванию смежных ребер.
Задание многоугольников с помощью указателей в списке вершин.
При данном представлении каждая вершина запоминается однократно в списке вершин полигональной сетки
(4.16)
После этого многоугольник определяется списком указателей (индексов) в списке вершин. Например, многоугольник, состоящий из вершин V4,V7,V8,V9, представляется как Р = (4,7,8,9). На Рис.4.7 приведен пример такого представления. Оно имеет ряд преимуществ по сравнению с явным заданием, поскольку каждая вершина запоминается в списке вершин только один раз. Однако, здесь непросто отыскать многоугольники с общими ребрами.
Рис.4.7 Многоугольник, заданный индексами в списке вершин
Явное задание ребер. На Рис.4.8 дано представление полигональной сетки с явным заданием ребер. В этом варианте задания полигональная сетка изображается вычерчиванием не многоугольников, а их ребер. В результате удается избежать многократного рисования общих ребер.
V= (V1,V2,V3,V4)= [(x1,y1,z1),
(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)]
E1=(V1,V2,Р1,r) E2=(V2,V3,Р2,r)
E3=(V3,V4,Р2,r) E4=(V4,V2,Р1,Р2)
Е5=(V4,V1,Р1,r)
Р1=(E1,E4,E5)
Р2=(E2,E3,E4)
r - означает "пусто".
Рис.4.8 Представление полигональной сетки с явным заданием ребер
