моя демка использует GL_ARB_shading_language_100 и GL_ARB_shader_objects
даю ее запустить на вроде вполне современных компах, я программа пишет что поддержки этого нет.
например на видюхе NVIDIA GeForce GTS 250
подскажите пожалуйста, это видюха плохая или уже расширения старые и что можно сделать в этом случае?
Расширения старые, используй GL2+ без расширений этих.
Executor
поэтому не работает демка?
а какие там gl 2 расширения вместо этих?
alexsandrf1
> поэтому не работает демка?
Тебе должно быть виднее, но по твоим словам демка говорит, что нет поддержки GL_ARB_shading_language_100.
Как вариант, убрать проверку на это расширение и может заработать.
> а какие там gl 2 расширения вместо этих?
Это не расширение, это функционал ядра. Функции примерно с таким же названием, только без постфикса ARB.
Executor
> Это не расширение, это функционал ядра. Функции примерно с таким же названием,
> только без постфикса ARB.
По-моему не. То, о чем он говорит, разве не ассемблер?
Ассемблер это GL_ARB_fragment_program и GL_ARB_vertex_program
в ядре оно уже давно. Видюха твоя до GL3.3 включительно держит
скажите, вообще эти расширения должны везде работать?
и любая новая видеокарта должна их поддерживать или расширения перестают поддерживаться?
alexsandrf1
Расширения могут вообще нигде не поддерживаться, на то они и расширения.
-Eugene-
я имел ввиду поддержка видеокарт уровня NVIDIA GeForce GTS 250 ?????
alexsandrf1
скажите, вообще эти расширения должны везде работать?
просто забудь про существование этих расширений как таковых - это тупиковый путь.
Использовать надо функциональность OpenGL 2.1+.
и любая новая видеокарта должна их поддерживать или расширения перестают поддерживаться?
Нет, никто не обязан поддерживать расширения.
Некоторые драйвера их в список не включают, даже если они поддерживают ту же функциональность, но как часть базовой версии OpenGL.
Проверять надо в первую очередь версию OpenGL, а уже потом расширения, по необходимости.
При этом прежде чем использовать устаревшие расширения (а это тот самый случай), надо тщательно изучить, чем отличаются спецификации расширения от спецификаций базовой версии OpenGL (а они частенько отличаются). Но пользы в этом будет крайне мало, так как найти драйвер, поддерживающий GL_ARB_shader_objects и GL_ARB_shading_language_100, но не поддерживающий OpenGL 2.1 сегодня практически невозможно.
alexsandrf1
> я имел ввиду поддержка видеокарт уровня NVIDIA GeForce GTS 250 ?????
Какая разница? Видеокарта может вообще ни одного расширения не поддерживать.
gkv311
> Использовать надо функциональность OpenGL 2.1+.
скажите какие там расширения работы с шейдерами?
gkv311
> GL_ARB_shader_objects и GL_ARB_shading_language_100, но не поддерживающий
> OpenGL 2.1 сегодня практически невозможно.
такя не совсем понял, драйвера должны же поддерживать эти расширения новы видеокарт? или надо переписывать на расширения гл 2.0?
alexsandrf1
> скажите какие там расширения работы с шейдерами?
Это функционал ядра, а не расширение. Смотри там GL_VERSION_2_X дефайн или типа того.
> такя не совсем понял, драйвера должны же поддерживать эти расширения новы
> видеокарт? или надо переписывать на расширения гл 2.0?
Есть функционал ядра - определённый набор функций определённой версии ОпенГЛ. То есть если ты к примеру проверил версию ГЛя и у тебя выдалось 4.х, то это гарантия того, что функционал ГЛя 4го поддерживается.
Есть расширения - некая функциональность, которую никто не обязан поддерживать и в любой момент может на это забить, на то они и расширения.
Executor
> Есть расширения - некая функциональность, которую никто не обязан поддерживать
> и в любой момент может на это забить, на то они и расширения.
А ничего, что куча старого софта и игорей полагаются на наличие этих расширений?
Не проще ли оставить их поддержку, чем долго и нудно объяснять людям, что для игры в третий квейк им нужно купить старый компьютер?
Собсно, так всегда и делают - в 2015 году, наверное, нет ни одной видеокарты, которая бы не поддерживала расширения, нужные, скажем, третьей кваке. А между тем 16 лет прошло. Поэтому я бы рассматривал расширения как по-прежнему надёжный инструмент масштабирования между разными железками и версиями драйверов. Другой вопрос, если движок отказывается работать без расширения - тогда действительно имеет смысл взять более свежую версию ядра.
Тема в архиве.