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

Материал из CSC Wiki
Перейти к:навигация, поиск

Лекции

Преподаватели

Лектор: Алексей Алексеевич Романов (AR)

Контакты:

  • aleksei.a.romanov[at]gmail.com
  • Telegram: @alekseiromanov

Лектор: Илья Олегович Макаров (IM)

Контакты:

  • ilmaksad[at]gmail.com
  • Telegram: sadads1337

Слайды

  • Лекция 1 (AR): Введение.

Слайды

  • Лекция 2 (IM): OpenGL - База.

Слайды

  • TBD

Полезные ссылки и материалы

  • T. Akenine-Moller, E. Haines, and N. Hoffman. Real-time rendering. AK Peters, 3rd edition 2011 / 4th edition 2018

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

  • E. Lengyel. Mathematics for 3D game programming and computer graphics, 3rd edition. Course Technology PTR , 2011.

Cодержит неплохую главу, посвященную преобразованию перспективной проекции.

Практика

Общая информация

  • Сдавать задачи можно на любом более менее распространенном языке программирования - C, C++, Python, Java, C#, Javascript, ... .
  • Помощь в отладке с нашей стороны гарантирована только в случае сдачи на C/C++.
  • Задачи принимаются по ссылке на github репозиторий с исходниками.
  • В репозиторие не допускаются артефакты сборки вашего проекта (минимум бинарных файлов, только сторонние библиотеки, если это необходимо).
  • Никакой ручной настройки окружения для запуска сборки с проверяющей стороны (build_and_run.cmd/build_and_run.sh). Соответственно, зависимости рекомендуется ставить через aptitude, conan, npm, или же просто добавлять их в ваш репозиторий (если ведетё разработку под Windows).
  • Все задачи должны быть снабжены отображением частоты обновления кадров (счетчик FPS)

Требования к OpenGL:

  • Только core профиль
  • OpenGL >= 3.3, GLSL >= 330
  • WebGL >= 2.0

Платформы:

   Win10, Visual Studio 2019, Community Edition, OpenGL 4.6
   Mint 20 (Ubuntu 20.04 LTS), OpenGL 4.6
   Chrome и Firefox последних версий, WebGL 2.0

Задачи

1. Фрактал

Задача состоит в отрисовке фрактала (Мандельброт, Жюлия, любого другого на ваш выбор) с вычислением цвета на фрагментном шейдере.

Пример: Файл:Mandelbrot.gif

Требования к приложению:

  • поддержать возможность зума и навигации (mouse scroll, mouse drag), точка под курсором не должна съезжать (так сделана навигация в картографических приложениях, например, google maps, yandex maps, ...)
  • возможность задавать на слайдерах количество итераций, пороговые значения, ...

Таблица с результатами

TDB