OpenGL - это библиотека. Ваш код C ++, который компилируется в машинный код (для вашего процессора, а не для GPU), вызывает функции OpenGL, которые отправляют данные на вашу видеокарту (GPU). Графическая карта интерпретирует эти данные и использует их для выполнения того, о чем вы просили. GPU не запускает любой ваш код C ++.
GLSL (OpenGL Shading Language) - это язык, используемый для указания того, что делают шейдеры GPU. Обратите внимание, что название немного неправильное, потому что код, написанный на языках шейдинга, в наши дни делает намного больше, чем шейдинг. Как правило, вы пишете свой код GLSL так же, как вы пишете код на C ++, затем используете вызовы OpenGL для компиляции кода GLSL, а затем используете больше вызовов OpenGL, чтобы инструктировать ЦП использовать шейдерные программы.
CPU
код C ++ вызовы функции OpenGL вызовы код графического драйвера , который через аппаратное оборудование передает инструкции в GPU .
GPU
Интерпретирует аппаратные сигналы, полученные от графического драйвера, для запуска его собственных внутренних программ. Это может включать в себя скомпилированные программы GLSL, которые также отправляются с CPU аналогичным образом.
Примечание. Вы можете заменить «Open GL functions» на «DirectX functions» и «GLSL» на другой язык затенения, и диаграмма будет такой же.