Как именно это работает и что это такое?
OpenGL определяет интерфейс, который вы, как программист, можете использовать для разработки графических программ (API). Интерфейс предоставляется вам в виде заголовочных файлов, которые вы включаете в свой проект. Он предназначен для мультиплатформенности, так что вы можете скомпилировать код, который использует OpenGL в разных операционных системах Люди, которые управляют спецификацией OpenGL, не предоставляют реализацию указанной функциональности. Это делается поставщиками ОС и оборудования.
Можно ли сделать компьютерную графику без OpenGL?
Да, конечно. Вы можете, например, вычислите все изображение вручную в вашей программе и затем вызовите некоторую специфическую для ОС функцию, чтобы вывести это изображение на экран (например, BitBlt в Windows).
Как OpenGL работает на разных процессорах и операционных системах?
Каждая ОС будет иметь свою собственную реализацию спецификации OpenGL, которая обычно вызывает драйверы оборудования. Допустим, у вас есть машина с ОС Windows и видеокартой Nvidia. Если вы запустите программу, которая вызывает glDrawElements
, она будет выглядеть так:
your_program calls glDrawElements
which calls glDrawElements implementation written by people from Microsoft
which calls Nvidia drivers written by people from Nvidia
which operates the HW
Если вы действительно можете создавать графику без OpenGL, кто-нибудь еще делает это?
Да, конечно. Некоторые люди могут захотеть реализовать свой собственный движок рендеринга с нуля (хотя это действительно сложная вещь).
Существуют ли другие библиотеки, такие как OpenGL, которые обычно используются? если нет, появятся ли новые библиотеки и займут ли они свое место или они идеально подходят для работы и никуда не денутся?
Конечно. Существует DirectX , поддерживаемый Microsoft и предназначенный только для платформ Windows, и Vulkan , который можно рассматривать как преемник OpenGL .