- •Конспект лекцій
- •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 Определение вектора отражения
1.2.4 Видовые операции
Объекты, например графики, задаются в мировой системе координат, а ГП должен затем преобразовать мировые координаты в физические координаты дисплейного устройства. Для выполнения этого преобразования ГП должен знать, какая именно часть неограниченного мирового координатного пространства содержит информацию, которую пользователь хочет вывести в данный момент. Эта прямоугольная область в мировом координатном пространстве называется окном. Прикладная программа задает окно, вызывая процедуру, аргументы которой указывают границы окна по каждой из координатных осей:
WINDOW (Xmin, Xmax, Ymin, Ymax)
Любую часть изображения, не попадающую в окно, ГП делает невидимой с помощью операции называемой "отсечение": любой примитив, расположенный вне окна не отображается на экране, а примитив, частично попадающий в окно, отсекается по границе окна Рис.1.6. .
Рис.1.6. Окно и отсечение
Каждый примитив, задаваемый прикладной программой, проверяется на три возможных случая: полное размещение внутри окна - такой примитив должен быть полностью выведен на экран, пересечение с окном - примитив подвергается отсечению и на экране отображаются только части попадающие в границы окна, расположение полностью вне окна - примитив не подлежит выводу на экран. Изменение величины окна позволяет осуществлять произвольное масштабирование. Перемещая окно и выбирая большие или меньшие его размеры можно создать такие кинематографические эффекты, как панорамирование, крупный или мелкий план (трансфокация).
Рассматривая процедуру WINDOW, мы по умолчанию предполагали, что окно отображается на некоторую часть экрана - поле вывода, которое определим как прямоугольную часть экрана, на которую отображается окно.
На Рис.1.7. показан общий случай отображения окна на поле вывода. Процессы отсечения и отображения окна на поле вывода называют видовой операцией.
Прикладная программа задает поле вывода с помощью процедуры VIEWPORT. Как и при задании WINDOW в данный момент существует только одно поле вывода. Обращение к процедуре VIEWPORT имеет вид:
VIEWPORT (Xmin, Xmax, Ymin, Ymax).
Изображение образуется на основе графических данных, поступающих из прикладной программы. Эти данные могут быть результатом измерения или вычисления произвольных физических величин, таких как, например температура, вес, время и т.п. Вводя по точкам некоторый объект, мы получаем метрические данные. Численный анализ дает вообще безразмерные величины. Все эти разнообразные координаты пользователя необходимо преобразовать в единые координаты устройства, характеризующие видовую поверхность некоторого графического устройства.
Рис.1.7. Отображение окна на поле вывода
Для преобразования в ГП используется декартова система координат. Само преобразование заключается в сдвиге и масштабировании с положительными постоянными коэффициентами. Ранее уже указывалось, что для различных пользовательских координат принят единый термин "мировые координаты". Переход от мировых координат к координатам устройства осуществляется в два этапа.
Сначала мировые координаты отображаются на видовую поверхность абстрактного устройства в систему так называемых нормированных координат. Эта абстрактная видовая поверхность содержит независимое от устройства представление изображение. Данный промежуточный этап был введен для того чтобы четко разделить зависимые и независимые от устройства части описания изображения.
Прикладная программа может компоновать изображение из различных частей, каждая из которых представлена в собственной системе мировых координат. Преобразование нормирования с помощью масштабирования и сдвига отображает различные координатные системы, задающие отдельные части изображения, в единую систему нормированных координат. Так как оси систем мировых координат могут нести разный смысл, то возможно и различное масштабирование по каждой из двух осей, т.е. неоднородное масштабирование.
