Я начну с ссылки на объяснение того, как работают версии OpenGL . Короче говоря, OpenGL (как правило) обратно совместим, поэтому весь код GL 3 прекрасно работает в реализациях GL 4.
Серия OpenGL 4.x представляет то, что вы могли бы назвать аппаратным обеспечением класса «Direct3D 11». Он раскрывает функциональность этого оборудования. Аппаратное обеспечение D3D10 представлено 3.x версиями OpenGL. Таким образом, «переход на openGL 4» означает отказ от более низкого оборудования или наличие нескольких путей рендеринга.
Подробное описание фактических изменений характеристик между 3.3 и 4.2 можно найти в спецификации 4.2 . Обратите внимание, что многие функции (separa_shader_objects, shading_language_420pack, texture_storage) не ограничены оборудованием 4.x; это изменения API, и вы можете получить к ним доступ на 3.x оборудовании через расширения.
Самый важный вопрос заключается в следующем: что GL 4.x позволяет мне делать, чего я не могу с аппаратным обеспечением 3.x?
Тесселяция, пожалуй, самая известная функция. Это также, вероятно, наименее вообще полезно. Это не значит, что это бесполезно; Правильное использование тесселяции может улучшить детализацию в моделях. Но, по крайней мере, для меня это не самое лучшее, что есть у GL 4.
Шейдерные подпрограммы - интересная идея. Это в основном позволяет динамически объединять различные фрагменты шейдеров. Вы можете более или менее прикрепить функцию к определенной точке привязки в программе. Сложно следовать спецификации, но это хорошая функциональность.
Я бы сказал, что загрузка / сохранение изображений, вероятно, самая игнорируемая и все же самая мощная часть функциональности GL 4. Благодаря этому у вас есть возможность реализовать прозрачность, не зависящую от заказов, с производительностью, примерно такой же, как у OIT. Вероятно, есть много других применений для загрузки / хранения изображений, но потребуются более умные люди, чтобы понять их.
В GL 4 есть некоторые шансы и недостатки, такие как поддержка двойной точности и непрямой рендеринг. Это скорее вещи в стиле GPGPU, поэтому они вряд ли пригодятся в игре.
Но в целом GL 4 кардинально не меняет способ реализации функции X по сравнению с GL 3.