Какую версию OpenGL использовать? - PullRequest
21 голосов
/ 26 июля 2011

В настоящее время я запускаю машину, которая позволяет мне программировать в OpenGL 2.1.Если бы я должен был создать программу, должен ли я использовать мощь текущих версий OpenGL, таких как 3.x / 4.x, или использовать 2.1?

С другой стороны: как мне определить, какая версия самая высокаяOpenGL, который может запустить мой компьютер?

С другой стороны, вопрос: позволяет ли только обновление моей видеокарты программировать в обновленных версиях OpenGL?

Ответы [ 4 ]

35 голосов
/ 26 июля 2011

версии 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, если они доступны.

4 голосов
/ 26 июля 2011

Чтобы использовать OpenGL 3.x, вам нужна карта с поддержкой DirectX10 и соответствующие драйверы, поддерживающие ее. Преимущество по сравнению с DirectX заключается в том, что вы также можете использовать OpenGL3 и 4 в WindowsXP. Нет необходимости для 7 или Vista. Какую версию вы должны использовать, зависит от вашей аудитории. Если ваша аудитория - геймеры, продолжайте, используйте 3. Не будем делать 4 эксклюзива. DX11 все еще редки. Для первого взгляда на то, как геймеры используют свои компьютеры и какое у них оборудование, steam - хороший источник:

http://store.steampowered.com/hwsurvey

Вы можете определить версию, запустив:

glGetString(GL_VERSION);

Хороший учебник OpenGL3:

http://arcsynthesis.org/gltut/

Ссылка на OpenGL 3.3 SDK:

http://www.opengl.org/sdk/docs/man3/

Надеюсь, это немного поможет :).

3 голосов
/ 26 июля 2011

Количество встроенных графических процессоров Intel ограничено 1,4 или 1,5.

Mac OSX зависает на версии 2.1, которую я слышу.

Все карты Radeon и GeForce могут поддерживать 3+ (может потребоваться драйверобновление).

И вы можете программировать с любой версией, но если ваше оборудование не поддерживает ее, вы закончите тестирование с помощью программного средства рендеринга (медленно!).

0 голосов
/ 08 апреля 2012

По дополнительному вопросу: Как я могу определить, какая самая высокая версия OpenGL может работать на моем компьютере?

Я отвечаю на вышеуказанный вопрос.Я сталкиваюсь с инструментом ниже, он действительно завершен сам по себе и позволяет мне увидеть все версии OpenGL, которые в настоящее время поддерживает моя система (от 1.0 до того, что он фактически поддерживает).А также для расширений, доступных для моей системы для использования.Хотя это не только для ARB, оно варьируется от NV, ATI, OES и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...