Когда-то давно в студенческие годы поверхностно с ним знакомился, лежит на полке справочник, на который в последнее время стал снова голодным взглядом поглядывать — в связи с все большим и большим погружением в инди-геймдев. Только вот хочу спросить у знающих, есть ли какой-то смысл учить 1й, если собираюсь использовать 2й и чаще ES, нежели обычный. Я слышал, что 2й работает целиком на шейдерах. Вопрос, в общем, такой:
Есть ли смысл разбираться с первым на глубоком уровне, и будет ли это полезно для понимания второго? Является ли код, созданный с использованием OpenGL 1 валидным, если вместо 1й версии будет использоваться 2я?
Заранее спасибо всем за ответы!
PS. Если кто хочет порекомендовать качественные ресурсы, которые могут помочь в освоении, пожалуйста, публикуйте ссылку, буду благодарен!
Да стоит.
OpenGL делится на 2 ветки CORE PROFILE и COMPATIBILITY PROFILE
CORE ввели в версии OpenGL 3 и выше и позволяет добиться большей производительности за счет использования шейдеров, но все, освещение, текстурированные и многое другое вам придется делать самому организуя связь между вашей программой и шейдером. Тудаже придется добавить знание GLSL (язык на котором пишут шейдер). Также напомню, что не все железо поддерживает этот модный профиль.
COMPATIBILITY профиль существует потому, что OpenGL это индустриальный стандарт и обратно совместим со всеми предыдущими версиями. Вы может легко создавать 3д сцены без глубокого знания математики 3D.
Итого, если вы решили прикоснутся к 3Д для понимания или строить простенькие графики, крутить модельки и т.п. COMPATIBILITY PROFILE для вас.
Если же есть желание «наклонить линейку», вы легко воспринимаете матрицы (как умножать и оперировать), можете рассчитать освещение вершины или текселя по фонгу или еще как то вам в CORE PROFILE.
Последняя версия OpenGL 4.3. OpenGL 1, а также OpenGL 2 давным давно устарели. А OpenGL ES — это отдельная ветка с отдельной нумерацией. Буквы ES намного важнее, чем цифра после них.