версии OpenGL (для графических процессоров AMD и NVIDIA) примерно соответствуют аппаратным уровням.2.x версии OpenGL для оборудования уровня DX9.3.x представляет уровень DX10, а 4.x представляет аппаратное обеспечение класса DX11.Таким образом, выбранная вами версия ограничивает возможность запуска вашего кода.
В целом, любой графический процессор AMD или NVIDIA, который вы действительно можете купить новый в магазине, будет 3.x или лучше (более вероятно, 4.x),Даже встроенные графические процессоры, материнская плата или процессор от AMD имеют 3.x или выше.Я занимаюсь разработкой дома на GPU для материнской платы HD 3300, и она работает достаточно хорошо.
Intel - это проблема.Качество драйвера Intel OpenGL довольно низкое.Многие старые машины Intel могут поддерживать только GL 1.4, который является функциональностью класса до DX9.Они поддерживают некоторые высокоуровневые расширения (шейдеры, но только вершинные шейдеры, поскольку они запускают их в программном обеспечении).
Более поздние графические процессоры Intel немного лучше, но их драйверы GL все еще довольно глючные.
Выше описана ситуация для Windows.Linux немного размыт, потому что есть драйверы от NVIDIA / AMD, а также драйверы, написанные сообществом разработчиков открытого программного обеспеченияПоследние, как правило, не так хороши, но они улучшаются.Они, как правило, предназначены для оборудования класса 3.x.
Мир MacOSX немного отличается.Mac OSX Lion (10.7), недавно выпущенный, добавляет поддержку OpenGL 3.2 (к сожалению, не 3.3, по некоторым причинам).Apple жестко контролирует работу OpenGL на своей платформе, но, надеюсь, они будут обновлять версии GL чаще, чем в последнее время.
Так что на Mac у вас действительно есть два варианта: 2.1 или 3.2.Обратите внимание, что поддержка Lion 3.2 предоставляет только функции core OpenGL.См. на этой странице для получения подробной информации о том, что это значит.
Вы не можете сказать, на какую самую высокую версию способен ваш конкретный компьютер.Существует просто версия, которую вы получаете, когда создаете контекст.В общем, если вы не попросите конкретную версию (и даже тогда, обычно нет), вы получите самую высокую версию, которую могут обрабатывать ваше оборудование и драйверы.
Да, и да: версия OpenGL контролируется вашейВозможности видеокарты (и установленные драйверы).
Следующий совет предполагает, что вы разрабатываете серьезное приложение, которое вы собираетесь использовать для других.Это не для небольших демонстрационных приложений или чего-то подобного.
В общем, я бы советовал не ограничивать явно ваш код до 4.x.В то время как переход на 4.x увеличивается с каждым днем (есть два поколения аппаратных средств от NVIDIA и AMD с поддержкой 4.x, и третье, вероятно, выйдет к концу года от AMD. Кроме того, AMD начинает встраивать GPX с поддержкой 4.xв их процессорах сейчас), все еще много 3.x оборудования.4.x не покупает вам много, и вы можете легко добавить пути к коду для условной поддержки функций 4.x, если они доступны.