Создаём компьютерную игру
eng   рус

OpenGL

В данном разделе мы будем изучать одну из двух основных (в расчёт не берём Metal от Apple) библиотек рендеринга 3д графики - OpenGL (Open Graphics Library). Это старейшая из графических библиотек (1992г.).

Мы будем рассматривать самую новую версию OpenGL - 4.6. Уроки я буду писать на основе двух спецификаций: OpenGL и OpenGL Shading Language (GLSL). Рекомендую вам тоже скачать спецификацию OpenGL (GLSLangSpec.4.60.pdf и glspec46.core.pdf). Полное описание OpenGL вы можете найти в этих докумнетах, а данные уроки всего лишь помогут начать программировать с помощью OpenGL. Документация OpenGL, кстати, гораздо лучше чем у DirectX.

Разработкой OpenGL занимается Khronos Group. Khronos Group определяет стандарт. OpenGL имеет много реализаций, в отличие от DirectX. Существует несколько библиотек для работы с OpenGL. Мы их рассмотрим в первом уроке.

Главное преимущество OpenGL по сравнению с DirectX, это то, что OpenGL может работать на разных операционных системах (Windows, Linux, Android) за исключением OS X и iOS. Apple отменила поддержку OpenGL в 2018 и поддерживала только версию 4.1. Но кто, вообще, в здравом уме захочет программированить для OS X и iOS? Кто эти глупцы? Не совершайте моих ошибок, держитесь от Apple подальше, вас ждёт только горечь разочарования (если только вам не предлагают много денег).

OpenGL - это API (Application Programming Interface), которое позволяет взаимодейстовать с видеокартой. Т.е. используя функции OpenGL, мы говорим процессору видеокарты сделать что-то. Что конкретно - мы и будем рассматривать в этих уроках.

GLSL (OpenGL Shader Language)

Изучение современной 3д графики невозможно без рассмотрения шейдеров. Шейдер - это программа, которая выполняется процессором видеокарты. Т.е. мы будем писать программы на C/C++ и дополнительно к ним - шейдеры. OpenGL имеет свой язык для шейдеров: OpenGL Shader Language - GLSL. Версии OpenGL 4.6 соответствует GLSL 4.60. GLSL похож на C, поэтому у вас не возникнет трудностей с его освоением.

OpenGL ES и WebGL

За рамками данных уроков останутся OpenGL ES и WebGL. OpenGL ES (Embedded Systems) используется на смартфонах, а WebGL на страницах сайтов. Многое из данных уроков применимо и к этим библиотекам. OpenGL ES является, наверное, самой распространённой графической библиотекой. При этом OpenGL ES всего лишь подмножество OpenGL, поэтому и изучать мы будем более "полную" версию.

Содержание

Инициализация OpenGL на Windows