Können Anwendungen, die alte Versionen von Opengl verwenden, weiterhin auf neueren Karten ausgeführt werden?

8

OpenGl 3.0 und höher unterscheidet sich in Bezug auf die Implementierung erheblich von älteren Versionen wie OpenGl 2.x und opengl 1.x. Bedeutet dies, dass Anwendungen, die mit den alten Versionen von opengl geschrieben wurden, nicht auf Computern mit Grafikkarten ausgeführt werden können Opengl 3.x und höher unterstützen?

Entschuldigung, wenn dies nicht der richtige Ort ist, um dies zu fragen.

Vielen Dank.

Stalker ka NOOB
quelle

Antworten:

2

Kurz gesagt: OpenGL 1.x wird weiterhin unterstützt.

Es ist theoretisch möglich, dass jemand eine OpenGL-Implementierung schreibt, die nur 3.x und höher unterstützt, aber die Unterstützung älterer Inhalte bietet Ihnen eine so große Auswahl an vorhandenen Anwendungen, dass es dumm wäre, sie nicht zu unterstützen.

Einige Teile der OpenGL 1.x-Pipeline werden möglicherweise nicht optimal (dh langsam) implementiert, aber die Dinge funktionieren weiterhin. ATI-Fahrer machten das Picking irgendwann furchtbar langsam, was beispielsweise zu Änderungen bei Blender führte.

Auf der OpenGL ES-Seite sind die Dinge etwas komplizierter. Ich kenne keine Instanzen davon, aber ES 2.0 und höher unterscheiden sich so stark von ES 1.x, dass es möglich ist, dass einige Geräte keine ES 1.x-Unterstützung haben. In den meisten Fällen emulierte die ES2 + -Hardware ES 1.x in der Software (Generieren von Shadern im laufenden Betrieb und unterhaltsame Dinge wie diese).

Jari Komppa
quelle
3

Derzeit hat kein Treiber die Unterstützung für frühere Versionen von OpenGL entfernt. Darüber hinaus implementieren die meisten auch die Kompatibilitätserweiterung, dh Sie können alte Inhalte mit OpenGL 3.2+ -Kontexten mischen (die Ausnahme ist Mac OSX, wo nur das Kernprofil für OpenGL 3.2 verfügbar ist - Sie können weiterhin alte Inhalte verwenden, jedoch nicht zusammen mit neuen Sachen).

Tapio
quelle
1
Wollen Sie damit sagen, dass glBegin..glEnd-Code unter modernem OSX nicht kompiliert werden kann?
Jari Komppa
@ JariKomppa, änderte meine Antwort.
Tapio