Основные вопросы курса отражены в трех его частях: математические, алгоритмические и технические основы компьютерной графики.
Следует иметь в виду, что вопросы экзамена совпадают с формулировкой вопросов, рассмотренных в настоящем пособии.
Изучение математических основ предполагает, что Вы должны овладеть способами оперирования графической информацией (ГИ), как в двухмерном, так и трехмерном пространстве. Следует знать, что ГИ представляется в компьютере в простейшем случае в виде матрицы с координатами точек фигуры. Операции с фигурой (масштабирования, вращения, сдвига, проецирования, зеркалирования и т.д.) закодированы в матрице действий (для каждой операции своей), смотри приложение 2.
Следует уметь от векторного рисунка переходить к матрице данных, уметь умножать эту матрицу на матрицу действий по правилам матричного умножения, а получившийся результат отражать снова на рисунке. Важно помнить, что фигура часто участвует в сложном движении, поэтому матрица данных подвергается многократному умножению на матрицу действий (при этом порядок умножения существенен).
Кроме этого надо знать и уметь пользоваться важными формулами для масштабирования ГИ в окно заданных размеров, определения параметров плоскости, преобразования координат. Помните, что программист одновременно работает сразу в трех системах координат (мировой, видовой и экранной).
Этот раздел курса основный. Бесполезно приступать к изучению графических алгоритмов, не зная основ преобразования данных. Обязательно при изучении материала подставляйте для примера цифры в формулы и чертите рисунки. Это поможет Вам понять, как изменяется геометрия рисунка в зависимости от преобразований.
Изучение технических основ предполагает изучение в целом организации ГИ (координаты, цвет) в памяти компьютера на разных этапах ее обработки и по мере прохождения ею пути от памяти до вывода на экран монитора. Надо представлять себе устройство цветного монитора, принцип действия электронно-лучевой трубки. А для определения того, насколько графика будет работать быстро, следует уметь провести расчет временных ресурсов, необходимых для вывода графической сцены на экран. Иначе изображение будет плыть, мерцать, запаздывать, иметь неестественные цвета и т.д..
Обязательно рассмотрите устройство стандартных доступных Вам графических устройств, например, графопостроителя, мыши.
Изучение алгоритмических основ направлено на то, чтобы построенное математическим способом изображение на экране сделать более реалистичным. Этого добиваются разными способами и на разных этапах обработки ГИ. Во-первых, сглаживанием углов математических фигур (например, сплайнами). Во-вторых, так как экран монитора дискретный и состоит из точек, то важно выводить контуры изображения, учитывая дефект отражения непрерывной линии на плоскость из точек. В-третьих, изображение в реальности подчиняется законам перспективы (прямой, обратной и аксонометрии). Реальные предметы, если они находятся вдали от глаза наблюдателя, уменьшаются, размываются в воздушной дымке, меняют цвет. При построении изображения это следует учитывать. В-четвертых, глаз, как оптический прибор, и мозг наблюдателя, подвержен иллюзиям и для реалистичности их следует также учитывать. В-пятых, любой природный объект бесконечно сложен, его края изрезаны, прямые линии отсутствуют, это сразу отличает математическое изображение от реального. Для имитации бесконечной сложности предметов применяются методы фрактальной геометрии. Фрактал – это алгоритмическое построение самоподобной фигуры, причем до бесконечности в глубину. Программист добивается таких построений рекурсивными алгоритмами. Так строится ландшафт (реки, горы, растительность) на экране. Фрактал, с математической точки зрения, - это функция (линия) с бесконечным числом изломов на конечном отрезке. Постройте дерево или гору, используя фрактал. Для этого на простейшей фигуре (Т или треугольник) снова постройте на краях или внутри туже фигуру, но в уменьшенном масштабе. И так несколько итераций (рекурсий). Для реалистичности фрактальное изображение еще дополнительно модифицируют. Например, с номером рекурсии меняют цвет линий или подмешивают случайные числа, слегка сдвигая точки построения или меняя углы.
Реалистичность предполагает, что надо уметь на плоском изображении удалять невидимые линии объемной фигуры, так как часть из них заслоняется более близкими объектами или гранями. Для этого существуют десятки алгоритмов. Выберите для себя наиболее понятный Вам метод, разберите его.
Реалистичность изображения предполагает, что освещение граней объекта зависит от их положения по отношению к глазу наблюдателя, места, где находится осветительный прибор, материала, из которого изготовлен объект, степени его прозрачности и зеркальности. Для этого каждую точку объекта, зная, под каким углом находится плоскость c этой точкой, надо пересчитать по формулам. Простейшей формулой является формула Ламберта, формула Фонга более сложна и учитывает больше параметров, поэтому дает лучший зрительный эффект. Начините с простого варианта формулы и постепенно вводите в нее остальные параметры.
Часто цветовая гамма предметов при отражении и пропускании ими света меняется. Тем более, надо уметь смешивать различные цвета на экране, получая новые (так называемые «грязные» цвета). Для этого тоже есть формулы сложения цветов. Складывать цвета также можно по диаграмме МКО. И конечно, надо знать, что есть базовые цвета. В зависимости от системы они могут быть различными. Например, в так называемый RGB системе это красный, зеленый, синий цвета, из которых можно получить все остальные. Кодируется цвет в системе RGB тремя цифрами, указывающими доли красного, зеленого и синего в грязном производном цвете. Обязательно уясните себе и другие параметры светового потока (тон, насыщенность, яркость). Световая волна характеризуется длиной волны и интенсивностью.
Главное понимать, что изображение строится и обрабатывается математически, одновременно существуя в нескольких системах координат. Перед выводом на экран изображение проецируется в плоскость, передается на обработку для повышения реалистичности, алгоритмическими методами удаляются невидимые линии. Техническими средствами изображение из памяти передается на экран монитора. При наличии управления в программе изображение по обратной связи корректируется оператором. Для этого строятся интерактивные программы, анализирующие положение графических устройств ввода. Здесь большую роль играет так называемый графический интерфейс, который проектирует программист. Попробуйте сформулировать требования к графическому интерфейсу, как будто Вы пользователь программы, предназначенной, например, для рисования и корректировки вручную трубопроводов и их элементов.
После изучения курса студент должен:
· знать математические, алгоритмические, технические основы формирования изображений;
· знать методы и способы формализации (представления и оперирования) графических объектов;
· знать принципы психологического восприятия изображений на плоскости,
· владеть технологией моделирования пространства и предметов в нем (движение и статика),
· уметь составить математическую модель графических объектов,
· уметь представить модель в алгоритмическом виде,
· уметь показать теоретические основания модели.
На экзамене предлагается ответить на два теоретических вопроса и решить задачу. При ответе на вопросы студент обязан продемонстрировать на примере умение рассчитывать и преобразовывать изображение математическими и алгоритмическими методами. Примеры решения задач приведены в приложении 3.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Какую роль в двухмерном преобразовании фигуры играет каждый элемент матрицы преобразования? Как кодируется двухмерная фигура? Как математически производится операция преобразования?
2. Какую роль в трехмерном преобразовании фигуры играет каждый элемент матрицы преобразования? Как кодируется трехмерная фигура? Как математически производится операция преобразования?
3. Как найти координаты (x,y) фигуры G при ее повороте на произвольный угол А относительно прямой a*x+b?
4. Как найти одну единственную матрицу преобразования, если это преобразование выполняется в несколько шагов и матрицы каждого шага известны?
5. Как определить факт и точки пересечения двух фигур в двухмерном пространстве?
6. Как определить факт выпуклости двухмерной фигуры?
7. Какая формула реализует аддитивное влияние двух плоских фигур? Какая формула реализует мультипликативное влияние двух плоских фигур?
8. Как преобразовать координаты точки из одной системы координат в другую? Всегда ли такое преобразование возможно? Какие бывают системы координат?
9. Как найти коэффициенты в уравнении плоскости?
10. Как рассчитать объем памяти, требуемый для вывода изображения по заданному разрешению монитора и количеству используемых цветов? Как рассчитать время, необходимое на вывод одного пикселя изображения?
11. По какому критерию осуществляется выбор номера пикселя в алгоритме Брезенхема?
12. Как рассчитать коэффициенты В-сплайна? Как изменится изображение В-сплайна, если изменить координаты одной из его точек?
13. Дайте определение фрактала. Как нарисовать дерево средствами фрактальной геометрии?
14. Что такое топологически эквивалентные фигуры, приведите пример. Какую роль играют в топологии разрезы фигур? Как определить размерность пространства?
15. Напишите формулу сложения цветов в системе МКО. Что такое дополнительный цвет? Как определить цвет, поглощаемый фильтром из потока белого света?
16. Какие показатели характеризуют поток источника света, отраженный свет?
17. Что происходит с лучом при падении его на поверхность тела?
18. Что усредняется в методе Фонга при сглаживании освещения поверхностей?
19. Как определить видимость для глаза точки относительно произвольной плоскости?
20. Как определить принадлежность точки телу, заданному плоскостями?
21. Как найти тень от точки, от отрезка, от тела на плоскости?
22. Какие бывают виды теней?
ВОПРОСЫ ЭКЗАМЕНА ПО «КОМПЬЮТЕРНОЙ ГРАФИКЕ»
1. Представление данных. Преобразования в двухмерном пространстве.
2. Представление данных. Преобразования в трехмерном пространстве.
3. Аффинное проецирование.
4. Перспективное проецирование.
5. Математическая модель триметрической, диметрической и изометрической проекций.
6. Нахождение точек и следов точек схода.
7. Стереографическая и специальные перспективные проекции.
8. Математические тесты. Нахождение параметров плоскости. Основные геометрические соотношения в геометрии Евклида.
9. Математические отношения объектов. Влияние. Морфинг.
10. Системы координат. Масштабирование в окне.
11. Организация ресурсов памяти в компьютерной графике.
12. Организация временных ресурсов в компьютерной графике.
13. Физические принципы графических компьютерных устройств.
14. Оборудование для компьютерной графики.
15. Аппроксимация непрерывного пространства в дискретной реализации.
16. Геометрическое сглаживание В-сплайнами.
17. Построение реалистических изображений методами фрактальной геометрии.
18. Свойства пространства.
19. Топология пространственных фигур в пространстве.
20. Психофизиологические аспекты восприятия пространства и воспроизведения его на плоскости.
21. Алгоритмические тесты. Выпуклость фигуры. Разбиение фигур.
22. Методы удаления невидимых линий. Метод плавающего горизонта.
23. Методы удаления невидимых линий. Метод z-буфера.
24. Методы удаления невидимых линий. Метод художника.
25. Психофизиологические аспекты восприятия цвета и света.
26. Диффузное отражение.
27. Зеркальное отражение.
28. Аппроксимация света на модели Фонга.
29. Модели цвета.
30. Прозрачность, фактуры
31. Тени. Матрица тела.
В билете содержится 3 вопроса (2 теоретических и 1 практический). Теоретический вопрос излагается обязательно с примером. Третий вопрос — задача. Если студент, по мнению преподавателя, ведущего экзамен, показал при изложении примера в теоретическом материале высокие практические навыки, то преподаватель вправе снять третий вопрос. Пример является законченным при получении численного результата. Исходные данные и результат должны быть отражены на рисунке в виде графических образов, приведена последовательность математических расчетов и соответствующие изменения графического образа. На экзамене следует иметь калькулятор, ручку, карандаш, линейку, резинку.
Требования к экзаменующемуся:
владеть технологией моделирования пространства и предметов в нем (движение и статика);
уметь составить математическую модель;
уметь находить соответствие графического образа и его формального представления (данные, операции);
уметь представить модель в алгоритмическом виде;
уметь показать теоретические основания модели.
Куда обращаться?
В настоящий момент весь курс (тексты, иллюстрации, активные демонстрации) изложен на электронных носителях. Обращаясь к электронной версии курса, Вы можете даже не брать книги, так как она содержит нужные фрагменты книг. В электронный учебник включены активные демонстрации, которые позволят рассматривать в динамике действие отдельных важных формул, устройств. Управляя различными переменными устройств через ползунки и кнопки интерфейса, задавая различные числовые параметры, можно рассматривать в окнах поведение объектов, проекций, линий и так далее. Это позволит Вам лучше понять учебный материал. Курс находится в Интернете по адресу stratum.pstu.ac.ru. (Внимательно следите за ссылками, чтобы добраться до нужного Вам курса!)
Копию курса Вы можете получить у лаборанта кафедры АСУ в аудитории 230 на 2 этаже в электротехническом корпусе за Камой. К лаборанту Вы также можете обратиться для чтения курса прямо в лаборатории. Здесь же Вы можете выполнить курсовую или контрольную работу. Для этого на отдельных компьютерах аудитории 230 установлены программные пакеты 3Dstudio и Stratum2000.
При желании Вы также можете посещать лекционные занятия для студентов дневного отделения (в корпусе ЭТФ).
Если у Вас возникли вопросы по курсу, то можете обратиться в часы консультаций к преподавателю, ведущему курс, - Мухину Олегу Игоревичу. Лаборатория моделирования находится в аудитории 321 главного корпуса ПГТУ на Октябрьской площади (телефон 2-198-308 (рабочий)).
Приложение 1.