Раздел 3. Алгоритмические основы компьютерной графики. Графические языки, стандарты и системы

В разделе 3 рассматриваются способы алгоритмической обработки компьютерной графики. Следует представлять себе и уметь составлять самостоятельно основные алгоритмы, используемые при выводе изображения на монитор, повышения его реалистичности, расчета освещенности и цвета, топологических преобразований, удаления невидимых линий, наложения текстур, исчисления теней.

 

15. Аппроксимация непрерывного пространства в дискретной реализации.

http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 13, [2, 54-63, 123-138]. Рассмотрите способы аппроксимации непрерывного пространства в дискретном пространстве экрана. Уясните алгоритм построения отрезков Брезенхема и его модификацию для устранения лестничного эффекта, а также алгоритм Флойда-Стейнберга. Уясните цель преобразований и способы устранения дефектов, порождаемых дискретностью экрана, а также как связано качество изображения с параметрами методов.

 

16. Геометрическое сглаживание B-сплайнами.

Рассмотрите математический аппарат, осуществляющий сглаживание ломаных линий и поверхностей (В-сплайны). При изучении данного вопроса основное внимание обратите на способ построения и расчет В-сплайна. Изучите основные свойства В-сплайна. http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 14, [1, 311-378]. Рассмотрите расчет коэффициентов В-сплайна примерах. В [4, т.3, 154-160], [4, т.2, 43-48] рассмотрите пример программы, реализующей построение В-сплайна.

 

17. Построение реалистических изображений методами фрактальной геометрии.

Целью компьютерной графики является построение реалистических изображений. Для повышения реалистичности применяются фрактальные способы построения изображения. Края, сама поверхность реальных объектов, среда, в которой они находятся, никогда не бывают ровными. Поэтому требуются специальные способы изображения шероховатости, фактуры, контуров объектов [4, т.4, 120-157]. http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 15. В программировании фракталы строятся с помощью рекурсивных алгоритмов [4, т.2, 37-49]. Рекомендуем построить в качестве упражнения изображение горы, облака, дерева фрактальным способом.

 

18. Психофизиологическое восприятие пространства на плоскости изображения. Понятие размерности пространства. Топология пространственных фигур в пространстве. Искривленность пространства. Заполненность пространства.

Кратко познакомьтесь с характеристиками и свойствами пространства, в котором помещается графическая сцена. Уясните понятия топология, топологическая фигура, используемые для процесса преобразования геометрических объектов. http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 16-20. Обратите внимание как изменяются свойства изображений при изменении размерности пространства, его кривизны. Важно понять, что изображение пространства на плоскости без искажений не возможно. Рассмотрите типы изображений на плоскости (рисунок, чертеж), определите их отличия друг от друга. Систематизируйте представление о видах геометрий и проекций (прямая перспектива, аксонометрия, обратная перспектива). Определите причину возникновения и роль иллюзий для восприятия пространства на экране компьютера. Внимательно просмотрите дополнительный материал для чтения, находящийся в электронной версии курса.

 

19. Программная реализация компьютерной графики.

Рассмотрите реализацию графических моделей и задач средствами программирования. Получите понятие о специфике графических языков. Рассмотрите структуру метафайла. Уясните, как строится современная графическая диалоговая система, как проектируются и применяются интерактивные графические системы. [4,т.2,199-219], [4, т.4, 158-198], [1, 481-491].

 

20. Методы удаления невидимых линий.

Рассмотрите два простейших алгоритмических метода удаления невидимых линий - z-буфера и плавающего горизонта. Обратите внимание на их достоинства и недостатки, используемые ресурсы [2, 233-250, 321-329]. На примере постройте с удалением невидимых линий известную вам функцию двух переменных.

Загрузите проект «метод z-буфера» из электронной версии курса, запустите программу, внимательно посмотрите представление сцены в памяти компьютера при ее изменении http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 21.

 

21. Модели света.

Уясните психофизиологические аспекты восприятия света и цвета, связанные с особенностями строения глаза. Рассмотрите показатели, характеризующие световой поток. Внимательно рассмотрите классификацию лучей светового потока, запомните типы отражений (диффузное, зеркальное). Рассмотрите роль каждого члена в формулах Ламберта и Фонга. Рассмотрите методы Фонга и Гуро для сглаживания освещенности поверхностей. http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 22-25, [2, 377-399].

 

22. Прозрачность

Рассмотрите поправочные члены к формулам Ламберта и Фонга, имитирующие прозрачность трехмерного предмета [2, 410-416].

 

23. Тени

Рассмотрите условия, при которых появляются тени, уясните роль теней в повышении реалистичности изображения сцены как признака глубины [2, 416-427]. Научитесь строить тени в трехмерной сцене.

 

24. Фактура

Рассмотрите способы наложения плоского рисунка на поверхность, использующиеся в компьютерной графике [2, 427-437]. Особое внимание обратите на математический прием отображения одной поверхности на другую. Научитесь натягивать фактуры на трехмерные объекты.

 

25. Модели цвета.

Уясните психофизиологические аспекты восприятия света и цвета, связанные с особенностями строения глаза. Рассмотрите показатели, характеризующие световой поток. Подробно рассмотрите две основные цветовые системы RGB и CMY. Научитесь оперировать цветами в аддитивной и субтрактивной системах. Рассмотрите формулы и график алгебры смешения цветов. Изучите строение диаграммы МКО [2, 458-476]. http://stratum.pstu.ac.ru/lectures/Kgrafic Лекция 26.

 

26. Компьютерная графика, геометрическое моделирование и решаемые ими задачи.

Дайте определение компьютерной графики, перечислите задачи, решаемые данной дисциплиной. Используя прочитанный материал, перечислите разделы компьютерной графики, цель каждого из них. Сформулируйте цель компьютерной графики в целом. Сформулируйте тенденции в развитии компьютерной графики. Постарайтесь самостоятельно сформулировать данные положения, если затрудняетесь, прочитайте [2, 9-15]. Начертите в целом путь преобразований графических объектов, сцены в компьютере, нарисуйте контур взаимодействия с человеком. Объясните механизм интерактивности. Перечислите и классифицируйте оборудование для компьютерной графики. Обобщите понятие графического устройства.

 

 

ОБЩИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ

(8 часов)

 

Лабораторные работы предназначены для уяснения студентом приемов работы с двухмерной графикой. Лабораторные работы выполняются в лаборатории кафедры АСУ под руководством преподавателя. Результат работы должен быть предъявлен в конце занятия преподавателю. Для выполнения работы необходима тетрадь для ведения рабочих записей и расчетов (рекомендуется в клетку), линейка, карандаш, резинка, калькулятор.

 

Лабораторная работа 1.

Понятие о выводе графической информации и интерфейсе (2 часа).

Построение и использование алгоритма вывода линий на экран монитора. Манипулирование линиями на экране устройством ввода (мышь). Написание и отладка проекта создания и манипулирования линиями и объектами.

Задание.Используя графическую систему, установленную в лаборатории кафедры, постройте в двухмерном пространстве графический объект, составленный из линий. Для этого установите необходимое количество точек и линий их соединяющих. Соедините переменных общих координат точек и линий, образовав искомую фигуру. Установите объект интерактивного управления точками – концами линий. Установите объект открытия и поддержания графического пространства. Запустите проект, предварительно записав его в файл. Манипулируя мышью, управляйте объектом. Рассчитайте центр тяжести объекта, передавая координаты его точек в отдельный модуль. Зная координаты центра тяжести, выведите точку для его обозначения.

 

Лабораторная работа 2.

Построение графических примитивов и базовых операций манипулирования ими(2 часа).

Создание двухмерных фигур из примитивов и управление ими с помощью системы базовых графических операций. Комплексные преобразования графической информации. Геометрическое моделирование.

Задание.Задайте координаты вершин четырехугольника. Рассчитайте матричным способом новое положение вешин объекта при смещении, повороте, масштабировании. Загрузите проект «Преобразования 2D». Повторите преобразования в автоматическом режиме. Сравните результаты с ручным расчетом.

 

Лабораторная работа 3.

Построение активного графического интерфейса(2 часа).

Понятие активного объекта. Построение диалогового, интерактивного интерфейса. Проектирование виртуальных кнопок для поддержки интерфейса. Организация ввода параметров. Сохранение и чтение из файла. Набор двухмерной сцены.

Задание.

Создайте из 2-3 графических примитивов двухмерную сцену. Добавьте пространство пульта для диалога. Нарисуйте пульт управления графическим объектом. Установите необходимые элементы управления (кнопки, ползунки, поля ввода) и оформите надписи к ним. Соедините элементы управления с программным модулем, реализующим управление, а модуль с модулями, управляющими графическими примитивами. Запустите проект, предварительно записав его в файл. Манипулируя мышью на пульте управления, измените положения объектов, параметры их движения (скорость вращения, цвет, масштаб, смещение).

 

Лабораторная работа 4.

Построение листовой графической системы и анимация объектов(2 часа).

Понятие анимации, гиперссылоки, влияния графических объектов. Проектирование морфинга.

Задание.Рассмотрите проект «морфинг двухмерных объектов». Укажите начальное и конечное положение фигуры для морфинга. Проведите анимацию для 10 шагов, 100 шагов. Для этого установите соответствующий управляемый счетчик шагов. Проследите за траекториями движения промежуточных точек при анимации.

Постройте листовую графическую систему, для этого соедините гиперссылками проекты из лабораторных работ 1-4.

Лабораторная работа 5.

Построение графика трехмерной функции(2 часа).

Понятие трехмерного изображения.

Задание.Используя любой метод удаления невидимых линий, постройте график функции заданной аналитически от двух координат. Отразите сетку координат.

Постройте интерфейс таким образом, чтобы можно было менять точку взгляда. Добейтесь, чтобы можно было наблюдать не только пики функции, но и провалы, особенно те, которые находятся ниже основания графика.

 

Лабораторная работа 6.

Построение фрактальных изображений(2 часа).

Понятие фракталы. Формирование реалистических изображений.

Задание.Используя фрактальный метод, постройте изображение двухмерного дерева. Раскрасьте дерево, цвет отрисовки веток должен зависеть от номера рекурсии. Обеспечьте управление глубиной вложенности фрактала. Обеспечьте управление углом ветвления, вероятностью ветвления, вероятностью длины порождаемой ветви.

Вариант – нарисуйте пересеченную местность.

 

Лабораторная работа 7.

Построение полномерных динамических управляемых изображений(2 часа).

Понятие динамической управляемой картины.

Задание.Используя трехмерный редактор, создайте трехмерное изображение некоторого технического устройства. Прочитайте изображение в Stratum-2000, постройте модель движения его частей и интерфейс управления им, так чтобы пользователю в результате манипуляций с ним был понятен его состав и принцип действия. Обеспечьте синхронность работы частей устройства, логическую их связь. При необходимости обеспечьте снятие частей, мешающих детальному рассмотрению.