• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Программная инженерия»

Компьютерная графика

2020/2021
Учебный год
RUS
Обучение ведется на русском языке
8
Кредиты
Статус:
Курс по выбору
Когда читается:
4-й курс, 1-3 модуль

Программа дисциплины

Аннотация

Компьютерная графика – часть Сomputer Science, которая занимается созданием новых и обработкой существующих изображений. В курсе «Компьютерная графика» изучается генерация изображений на компьютере, а именно (1) математические и алгоритмические основы компьютерной графики, без которых сложно понять и использовать графические библиотеки низкого уровня для разработчиков. (a). Алгоритмы растровой графики (b). 2D и 3D моделирование, полигональные модели (c). Освещение, закраска и проч. (2) Технологии использования графической библиотеки OpenGL для генерации 2D и 3D изображений, использование вспомогательных библиотек. (3) Совсем немного – обработка изображений. При изучении дисциплины надо будет выполнять довольно сложные задания на языке С++. В первой части курса – реализовывать некоторые алгоритмы графики, во второй части курса – осваивать технологии использования OpenGL. После изучения дисциплины студенты смогут освоить любые графические инструменты, продолжить изучение и использование графических библиотек.
Цель освоения дисциплины

Цель освоения дисциплины

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

Планируемые результаты обучения

  • Знать историю развития компьютерной графики, историю развития технологий компьютерной графики, задачи компьютерной графики
  • Знать базовые алгоритмы растровой графики
  • Уметь реализовывать алгоритмы растровой графики на языках высокого уровня
  • Знать виды моделей 2D и 3D графики, методы получения изображений и анимации векторных 3D моделей
  • Уметь реализовывать генерацию, анимацию и получение проекций 3D объектов на языках высокого уровня
  • Уметь формировать каркасные и solid 3D модели, в том числе с удалением невидимых ребер и граней
  • Знать виды источников света, модели освещения, модели закраски сплошных объектов в компьютерной графике
  • Уметь реализовывать модель закраски 3D объекта с источником освещения на языках высокого уровня
  • Приобрести опыт самостоятельной разработки алгоритмов и программ для реализации задач 2D графики на языках высокого уровня
  • Приобрести опыт самостоятельной разработки алгоритмов и программ для реализации задач 3D графики на языках высокого уровня
  • Знать историю развития OpenGL, состав OpenGL, необходимые сторонние библиотеки, формат команд OpenGL
  • Знать основы обработки изображений фильтрами
  • Уметь разрабатывать программы с использованием OpenGL
  • Иметь навык разработки архитектуры программ с использованием OpenGL
  • Уметь самостоятельно решать задачи компьютерной графики с использованием OpenGL
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Тема 1. Введение
    История развития компьютерной графики. Развитие вычислительной геометрии, математических и алгоритмических основ КГ. Развитие технологий, графических библиотек. Понятие графического конвейера
  • Тема 2. Алгоритмы растровой графики
    Целочисленные алгоритмы Брезенхема построения отрезка и окружности. Алгоритмы заливки сплошных областей. Алгоритмы отсечения. Алгоритмы построения плоских кривых, имеющих аналитическое описание. Элементарные, составные и замкнутые кривые Безье, B-сплайны, их свойства.
  • Тема 3. Математические основы 2D и 3D графики
    Виды моделей КГ. Описание полигональных моделей. Базовые геометрические преобразования: поворот, масштабирование, отражение на плоскости и в пространстве. Однородные координаты, сдвиг на плоскости и в пространстве. Проекции, виды проекций. Получение ортогональных и перспективных проекций 3D – объектов. Последовательность выполнения преобразований. Каркасные и сплошные модели. Методы удаления невидимых линий и граней. Алгоритм Робертса, z-буфер.
  • Тема 4. Построение реалистичных изображений
    Природа света и цвета. Источники света. Методы и модели закраски сплошных объектов – плоская, Гуро, Фонга. Текстуры. Тени, виды теней, подходы к генерации теней.
  • Тема 5. Графическая библиотека низкого уровня OpenGL
    История создания, версии, состав библиотеки, подключение библиотеки. Вспомогательные сторонние библиотеки. Создание контекста. Основные методы. Графический конвейер. Шейдеры. Язык GLSL. Описание полигональных моделей. Загрузка мешей. Виды текстур. Установка источников освещения. Формирование теней. Анимация изображений.
  • Тема 6. Обработка изображений
    Экранные эффекты. Виды фильтров. Обработка изображения линейными и пространственными фильтрами.
Элементы контроля

Элементы контроля

  • неблокирующий Самостоятельная работа - выполнение и защита проектов по темам практических занятий
  • неблокирующий Контрольное домашнее задание 1
  • неблокирующий Контрольное домашнее задание 2
    КДЗ2 выполняется по разделу "Технологии работы с OpenGL"
  • неблокирующий Устный экзамен
    На подготовку к ответу выделяется от 40 до 60 минут, ответ на вопрос билета надо написать на выданном бланке. Экзамен проводится в zoom. Студенты записываются на определенное время в таблицу, каждому выделено отдельное время. Студенты отвечают на вопросы билета и защищают проекты или КДЗ. Часть студентов получат автоматы. Технические требования: web-камера, микрофон, наушники / колонки, Zoom.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (3 модуль)
    0.175 * Контрольное домашнее задание 1 + 0.175 * Контрольное домашнее задание 2 + 0.35 * Самостоятельная работа - выполнение и защита проектов по темам практических занятий + 0.3 * Устный экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • David Wolff. (2018). OpenGL 4 Shading Language Cookbook : Build High-quality, Real-time 3D Graphics with OpenGL 4.6, GLSL 4.6 and C++17, 3rd Edition. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1905991
  • Hussain, F. (2018). Learn OpenGL : Beginner’s Guide to 3D Rendering and Game Development with OpenGL and C++. Birmingham, UK: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1883883
  • Marschner, S., & Shirley, P. (2016). Fundamentals of Computer Graphics (Vol. Fourth edition). Boca Raton [Florida]: A K Peters/CRC Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1366978
  • Wolff, D. (2013). OpenGL 4 Shading Language Cookbook (Vol. 2nd ed). Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=679988
  • Алгоритмы : построение и анализ, пер. с англ., 3-е изд., 1323 с., Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К., 2018
  • Алгоритмы: построение и анализ : пер.с англ., Кормен, Т., 2013
  • Компьютерная графика : учебник и практикум для приклад. бакалавриата, Боресков, А. В., 2016

Рекомендуемая дополнительная литература

  • Kothari, D. P. (2019). Mathematics for Computer Graphics and Game Programming : A Self-Teaching Introduction. Dulles, Virginia: Mercury Learning & Information. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1994166
  • Lengyel, E. (2012). Mathematics for 3D Game Programming and Computer Graphics (Vol. 3rd ed). Boston: Course PTR. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=365853
  • Movania, M. M. (2013). Open GL Development Cookbook. [S.l.]: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=604074
  • Vince, J. (2006). Mathematics for Computer Graphics (Vol. 2nd ed). London: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=150552