In Zeiten wie diesen gehe ich immer zum Steam Hardware Survey: http://store.steampowered.com/hwsurvey/ - Sie werden feststellen, dass die Marktdurchdringung von Systemen der DX10 / 11-Klasse bei fast 80% liegt. Dies entspricht im Großen und Ganzen GL3.3 oder höher. Diese 80% sind auf Vista / 7-Benutzer beschränkt - fügen Sie eine DX10 / 11-GPU mit XP hinzu, und Sie erreichen etwas mehr als 90%.
Wenn Sie bedenken, dass es sich hier um etwas mehr Hardcore-Gamer handelt, müssen Sie zunächst an Ihre Zielgruppe denken. Sind dies die Personen, die Sie ansprechen möchten? Wenden Sie sich stattdessen an Personen mit mehr Downlevel-Hardware? Was ist mit Intel-Grafik? Was ist mit Mac- und Linux-Benutzern? Dies sind alles Fragen, die Sie selbst beantworten müssen. Aus diesem Grund sind allgemeine Richtlinien die besten, die Sie bekommen werden.
Außerdem müssen Sie berücksichtigen, dass Sie, wenn Sie heute beginnen zu lernen, mit der Absicht, etwas zu versenden, einen Zeitraum von mindestens einem Jahr einhalten müssen, bevor Sie dort ankommen (es sei denn, wir sprechen davon) über wirklich triviale / einfache Fälle). Da der Aufwärtstrend der gfx-Funktionen anhält, erwarten wir, dass die GL3.3 + -Hardware bis dahin nahezu zu 100% genutzt wird.
Berücksichtigen Sie dann, dass Sie mit GL2.1 oder niedriger eine Menge altmodischen Unsinns lernen und verwenden werden, selbst wenn Sie sich auf die Shader- und VBO-Untergruppe von GL2.1 beschränken (GLSL-Versionen mit niedrigerem Level sind unangenehm in der Verwendung) , und Streaming-VBOs sind ohne GL_ARB_map_buffer_range so gut wie unbrauchbar. Mit GL3.3 + wurden viel bessere (und performantere) Methoden eingeführt, mit denen Sie die Hardware des Players besser ausnutzen können (und für die Sie dankbar sind) Sie dafür) und Sie werden mehr Zeit damit verbringen, produktiven Code zu schreiben, als eine API zu bekämpfen, die wirklich nicht mit Ihnen zusammenarbeiten möchte.
Und dann ist da noch die gefürchtete Fahrersituation. Die harte, aber wahre Tatsache ist, dass die GL-Treiber unter Windows in einem traurigen Zustand sind - NV-Support sollte sie nicht unterstützen, AMD sollte sie nicht unterstützen, und bei Intel müssen Sie sich wirklich auf die GL-Funktionalität beschränken, für die es welche gibt ein Äquivalent in D3D. Je neuer GL_VERSION ist, desto wahrscheinlicher ist es, dass Sie auf Treiberfehler stoßen, aber für GL3.3 sind die Dinge jetzt einigermaßen stabil.
Die Zusammenfassung ist also, dass ich in Abwesenheit anderer Informationen (Zielgruppe usw.) GL3.3 als Basis anvisieren würde (möglicherweise unter Einbeziehung der Funktionalität von höheren GL_VERSIONs, wo sie verfügbar ist und wo sie die Codebasis nicht stört zu viel), es sei denn, es gab einen sehr spezifischen und definitiv identifizierten Grund, einen niedrigeren Wert zu wählen (und ich möchte mir diesbezüglich absolut 100% sicher sein, anstatt eine vage Vorstellung von " aber was ist mit denen mit älterer Hardware " zu verwenden). Im letzteren Fall würde ich GL2.1 nicht unterschreiten und würde versuchen, selbst dann so viele 3.x-Funktionen wie möglich zu nutzen.