To Sea:

Например: согласно спецификации OpenGL есть базовые функции OpenGL 1.0. Затем появляется новая фича (основанная на фичах видеочипа), каждая фирма реализует их через свои расширения: NVIDIA через префикс NV, ATI через ATI соответственно. Как только наберется некоторое количество расширений (нестандартизированных), это дело стандартизируется, появляется OpenGL 1.1 к примеру. Т.е. префиксы фирм убираются и эти расширения включаются в базовые функции и т.д.

Обратили внимание, что в драйвере NVIDIA 40.хх OpenGL имеет номер 1.4, а в 30.хх 1.3? Надеюсь да. Игра ИЛ2 писалась на использование базовых функций OpenGL 1.2. Но так как многие "фичи" с помощью базовых функций реализовать было проблематично или работали медленно, то использовали функции основанные на расширениях, не включенных на тот момент в спецификацию 1.2. В Ил2 есть опции использовать расширения драйвера. При использовании драйвера 40.хх от NVIDIA наблюдаются ухудшения картинки (например отображение вращающегося винта самолета). Это говорит о том, что игра обращается к расширениям с соответствущим префиксом, а его нет, потому как в спецификации OpenGL 1.4 эти префиксы убрали и внесли в базовые функции. Отсюда и сложности совместимости с драйверами и картами разных производителей. Но еще раз повторяю, что зависит от приложения, и это имеет место в ИЛ2.

Если приложение написано на OGL 1.0 c использованием расширений, то оно не будет работать (или некорректно) на OGL 1.1 и т.д.

С DirectX все намного лучше, так расширений не предусмотрено, а есть только базовые функции. И если приложение написано под DX6, то оно будет работать и на DX9.

Может немного сумбурно (уже засыпаю &nbsp, но думаю понятно.