Где я могу найти хороший онлайн-учебник OpenGL 3.0, который не использует устаревшие функции?
Я только что купил пятое издание OpenGL SuperBible. Я очень рад, что они избегают использования устаревших функций, но их примеры используют GLTools
. GLTools
предоставляет множество полезных функций для рендеринга простых трехмерных объектов и управления матрицами вида frustrum, camera и transform.
Это все замечательно, но предоставленная абстракция скрывает детали низкого уровня, и мне трудно перемещаться в код, где я не могу использовать GLTools
- например, pyopengl
. Подавляющее большинство обучающих программ, которые я видел в Интернете, используют немедленный режим, который я пытаюсь избежать. Те, которые используют glDrawArrays
, используют glEnableClientState
, чего я также пытаюсь избежать.
То, что я ищу, - это вводные учебники, полностью совместимые с OpenGL 3.x. Если это слишком высокий порядок, возможно, список белья, то хорошие функции "начальной точки" будут в порядке.
Ответы
Ответ 1
Держитесь подальше от NeHe, учебные пособия безнадежно устарели и содержат много "проблемных" вещей.
Для начала с 3.x попробуйте те, они оба обновлены:
Aurian (Joe Groff)
Arcsynthesis (Джейсон Л. Маккессон)
Update:
Перечитав свой пост почти через 2 года, я думаю, что это может показаться немного суровым.
Это, конечно, не намерение. Основное сообщение (которое остается в силе), которое я хотел дать, было то, что NeHe по-прежнему имеет дело с OpenGL 1.x/2.x и использует некоторые неподдерживаемые "античные" библиотеки.
Как правило, это не означает, что учебники обязательно плохи, но начиная с этого будет означать начало двух поколений за текущим современным уровнем, а одно поколение за минимальным - должно учиться. Изучение наследия OpenGL, в более позднее время, потребует от вас забыть почти все, что вы знаете, и переучиться с нуля.
Тем не менее, первая страница NeHe теперь ссылается на учебник, ориентированный на OpenGL 3.3 Дэмиена Мабина, который выглядит на первый взгляд неплохо ( хотя у меня не будет времени полностью прочитать его до нового года).
Ответ 2
https://bitbucket.org/rndblnch/opengl-programmable
краткое пошаговое руководство к программируемому конвейеру OpenGL (OpenGL/OpenGL | ES 2.x) для людей, уже знакомых с фиксированным конвейером. зависимостей: python 2.5+, PyOpenGL 3.0.1 +
Последовательные версии небольшой, но довольно полной программы переполнения /opengl, которая начинается с прямого режима и постепенно преобразуется для работы исключительно на программируемом конвейере.
Посмотрите на разницу между последовательной версией, чтобы выделить необходимые изменения (например, https://bitbucket.org/rndblnch/opengl-programmable/changeset/b21131e37ed7).
Ответ 3
Вот серия обучающих программ OpenGL 3.3 для Windows, которая не использует устаревшие функции, только новые вещи:
Учебники Megabyte Softworks OpenGL 3.3