Дополнительные материалы
Соглашения о кодировании
Сборка примеров

Установка библиотек и настройка окружения

Установка библиотек для Windows Краткая инструкция по установке всех нужных для курса библиотек для Visual Studio
Установка библиотек для Ubuntu Краткая инструкция по установке всех нужных для курса библиотек в Ubuntu
Установка библиотек для MacOSX Краткая инструкция по установке всех нужных для курса библиотек на MacOSX

Часть I: 2D графика на OpenGL 1.x

Примеры ко всем статьям ищите в репозитории примеров в каталоге chapter_1

Превью
F.A.Q. по первой главе
Превью
OpenGL приложение с SDL2 В примере с помощью SDL2 создаётся окно и программируется основной событийный цикл, использующий OpenGL.
Превью
Изучаем возможности OpenGL В статье глубже описана структура API OpenGL, обработка ошибок, работа с расширениями и получение информации о возможностях драйвера.
Превью
Рисуем на OpenGL В статье мы научимся использовать систему событий SDL2 и рисовать фигуры средствами OpenGL в блоках glBegin/glEnd.
Превью
Тригонометрия и цветы Тригонометрия и линейная алгебра незаменимы в компьютерной графике, даже если вы просто хотите нарисовать цветок. В дополнение в статье рассмотрена реализация Drag&Drop для нарисованной фигуры.
Превью
Взрыв на цветочной фабрике Мы рассмотрим, как с помощью теории вероятности симулировать физическую систему из множества простых частиц
Превью
Законы Кеплера В статье численными методами решаются уравнения Кеплера, необходимые для визуализации движения небесных тел в пределах солнечной системы.

Часть II: 3D графика на OpenGL 1.x

Примеры ко всем статьям ищите в репозитории примеров в каталоге chapter_2

Превью
F.A.Q. по второй главе
Превью
Отладка OpenGL API Apitrace — это ПО с открытым исходным кодом, позволяющее отладить программу, использующую OpenGL или DirectX. Утилита незаменима в поиске причин багов с текстурами и шейдерами.
Превью
Рисуем куб В этой статье мы научимся рисовать простой 3D объект — куб. Также мы запрограммируем анимацию куба и виртуальную камеру, позволяющую взглянуть на куб глазами зрителя.
Превью
Включаем свет и туман Фиксированный конвейер OpenGL содержит механизмы расчёта освещения и наложения тумана. В примере показано и объяснено, как их использовать.
Превью
Смешиваем цвета В статье применяется механизм смешивания цветов, позволяющий рисовать полупрозрачные поверхности, а на сцену добавляется тетраэдр.
Превью
График двумерной функции В статье рассмотрен рендеринг гладких незамкнутых поверхностей на примере графика фукнции от двух аргументов
Превью
UV-параметризация сферы В статье показана триангуляция поверхности вращения и наложение на неё текстуры с помощью метода UV-параметризации. Также есть реализация SkyBox.
Превью
Игра Memory Trainer 3D Статья показывает, как реализуется полноценная интерактивная игра, рисуемая в 3D пространстве и позволяющая мышью активировать 3D объекты.

Часть III: GLSL и графический конвейер

Примеры ко всем статьям ищите в репозитории примеров в каталоге chapter_3

Превью
F.A.Q. по 3-й главе
Превью
Как получить OpenGL 3.2
Превью
Делаем плавное освещение В стандартном конвейере OpenGL освещение крупных граней искажается. Мы посмотрим, как исправить эту проблему с помощью шейдеров.
Превью
Шахматный окрас Фрагментные шейдеры позволяют заменить стандартный алгоритм раскраски фрагментов примитивов на собственный. В статье мы средствами GLSL поверх белого квадрата нарисуем шахматную доску.
Превью
Скручивание Для установки параметров шейдера приложение может обращаться к uniform-переменным шейдера. Мы построим шейдер, выполняющий «закручивание» вершин вокруг оси Y.
Превью
Текстуры в шейдерах В статье мы освоим рендеринг с мультитекстурированием (выборкой цвета из нескольких текстур) во фрагментном шейдере.
Превью
Переход на Core Profile Статья объясняет, как портировать пример с мультитекстурированием в шейдере на современный OpenGL 3.2 в режиме Core Profile

Часть IV: Data-driven Applications

Примеры ко всем статьям ищите в репозитории примеров в каталоге chapter_4

Превью
Шпаргалка по 3D трансформациям средствами GLM В программировании 3D графики нужны математические приёмы, выходящие за рамки простой арифметики и тригонометрии. В статье мы рассмотрим такие приёмы.
Превью
Паттерн проектирования игр Component-Entity-System Component-Entity-System — это гибкий шаблон, призванный навести порядок в большой кодовой базе движка игры. Он продолжает идею Game Loop, и похож на шаблон Model-View-Controller.
Превью
Форматы 3D-моделей и библиотека Assimp Assimp поддерживает множество форматов 3D моделей. В статье перечислены их особенности и собран список сайтов, где можно скачать модели.
Превью
Системы частиц и Component-Entity-System В статье реализован один из ключевых приёмов для создания спецэффектов — симуляция 3D системы частиц.
Превью
Загрузка 3D моделей из файла Геометрию и материалы сложных объектов проще загрузить из структурированного файла, чем создавать программно. Мы создадим загрузчик 3D моделей в разных форматах.
Превью
Симуляция солнечной системы в 3D В примере мы реализуем симуляцию солнечной системы в 3D пространстве с использованием GLSL и Component-Entity-System
Превью
Скелетная анимация загруженной из файла 3D модели В примере к статье представлен загрузчик анимированной модели, а также связанные с ним рендерер и система обновления анимации.