Есть ли хитрость в использовании программы с версией opengl 3.x на видеокарте, которая поддерживает opengl 2.x? - PullRequest
3 голосов
/ 10 ноября 2011

У меня есть встроенная видеокарта, которая поддерживает OpenGL 2.2.Могу ли я запустить на нем приложение opengl (скажем, версии 3.3) с помощью какого-либо программного обеспечения и т. Д.

Ответы [ 3 ]

4 голосов
/ 10 ноября 2011

Основные версии OpenGL в некоторой степени относятся к доступным аппаратным возможностям:

  • OpenGL-1: конвейер с фиксированными функциями (класс DirectX 7 HW)
  • OpenGL-2: поддержка программируемых вершинных и фрагментных шейдеров (класс DirectX 9 HW)
  • OpenGL-3: поддержка программируемых геометрических шейдеров (класс DirectW 10 HW)
  • OpenGL-4: программируемая поддержка шейдеров тесселяции и несколько других приятных вещей (класс DirectX 11 HW).

Если ваш графический процессор поддерживает только OpenGL-2, то вы не сможете запустить программу OpenGL-3, используя все свистки и колокольчики на ней. Ваш лучший выбор - реализация растрирования программного обеспечения.


Несколько лет назад, когда шедеры были чем-то новым, NVidia поставила свои драйверы для разработчиков с некоторым растеризатором программного обеспечения с эмуляцией более высокой функциональности, чтобы начать разработку шейдеров, чтобы на этих новых программируемых графических процессорах существовали реальные приложения для запуска.

0 голосов
/ 10 ноября 2011

Конечно, вы можете просто отключить эти функции. Будет ли это работать хорошо, во многом зависит от приложения.

Самый простой метод - перехватывать все вызовы OpenGL, используя некоторый способ перехвата DLL, и фильтровать их при необходимости. Когда используются функции OGL3, верните «правильный» ответ (но ничего не делайте) или укажите ноль для вызовов, которые не требуются.

Если все сделано правильно, и приложение не использует функции OGL3, оно будет работать без таковых на вашем оборудовании.

Если приложению требуются файлы OGL3, результаты в лучшем случае будут ненадежными и могут оказаться непригодными для использования. Это действительно зависит от того, что именно делает приложение и что ему нужно. Предоставление нулевой реализации OGL3 позволит вам запустить , но результаты в воздухе.

0 голосов
/ 10 ноября 2011

Нет.Ну не совсем.У NVIDIA есть некоторая программная эмуляция, которая может работать, но кроме этого, нет.

Ваше оборудование просто не может делать то, о чем просит GL 3.0+.

также:

У меня есть встроенная видеокарта, которая поддерживает OpenGL 2.2

OpenGL 2.2 не существует.Возможно, вы имели в виду 2.1.

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