W takich czasach zawsze wybieram się do ankiety sprzętowej Steam: http://store.steampowered.com/hwsurvey/ - zobaczysz, że penetracja rynku systemów klasy DX10 / 11 wynosi prawie 80%; jest to zasadniczo równoważne z GL3.3 lub nowszym. Te 80% jest ograniczone do użytkowników Vista / 7 - dodaj GPU DX10 / 11 z XP, a wzrośniesz do nieco ponad 90%.
Pamiętając o tym, że mówimy tu o nieco bardziej zapalonych graczach, musisz zacząć myśleć o swojej grupie docelowej. Czy to osoby, na które chcesz kierować reklamy? Czy zamiast tego celujesz w osoby z bardziej zaawansowanym sprzętem? Co z grafiką Intela? Co z użytkownikami komputerów Mac i Linux? To są wszystkie pytania, na które musisz sam odpowiedzieć, więc ogólne wytyczne są najlepsze, jakie możesz uzyskać.
Co więcej, musisz wziąć pod uwagę fakt, że jeśli zaczynasz uczyć się dzisiaj z zamiarem wysyłki czegoś, patrzysz na okres około jednego roku, zanim tam dotrzesz (chyba że rozmawiamy o naprawdę trywialnych / prostych przypadkach). Przy utrzymującym się tendencji wzrostowej możliwości gfx, oczekujemy, że do tego czasu będziemy blisko 100% wykorzystania sprzętu GL3.3 +.
Następnie weź to pod uwagę przy GL2.1 lub niższym, będziesz się uczył i używał okropnej, starej, bzdurnej bzdury, nawet jeśli ograniczysz się do shaderów i podzbioru VBO GL2.1 (wersje GLSL na niższym poziomie są nieprzyjemne w użyciu , a VBO strumieniowe są prawie bezużyteczne bez GL_ARB_map_buffer_range) - GL3.3 + wprowadził znacznie ładniejsze (i bardziej wydajne) sposoby radzenia sobie z wieloma rzeczami, lepiej wykorzystasz sprzęt odtwarzacza (i będą wdzięczne za za to) i poświęcisz więcej czasu na pisanie produktywnego kodu zamiast na walkę z interfejsem API, który tak naprawdę nie chce z tobą współpracować.
No i oczywiście jest przerażająca sytuacja kierowcy. Trudnym, ale prawdziwym faktem jest to, że sterowniki GL w systemie Windows są w opłakanym stanie - NV obsługuje rzeczy, których nie powinny, AMD nie obsługują rzeczy, które powinny, a dzięki Intelowi naprawdę musisz ograniczyć się do funkcjonalności GL, dla których istnieją odpowiednik w D3D. Im nowsza wersja GL_VERSION, tym bardziej prawdopodobne jest, że napotkasz błędy sterowników, ale dla GL3.3 rzeczy są teraz dość stabilne.
Podsumowując, przy braku jakichkolwiek innych informacji (odbiorców docelowych itp.) Wybrałbym GL3.3 jako linię bazową (być może wykorzystując funkcjonalność z wyższych wersji GL_VERSION, gdzie jest ona dostępna i gdzie nie zakłóca bazy kodu zbyt wiele), chyba że istniałby bardzo konkretny i definitywnie określony powód, aby pójść niżej (i chciałbym być absolutnie w 100% tego pewien, zamiast używać niejasnego pojęcia „ ale co z tymi ze starszym sprzętem ”). W tym drugim przypadku nie schodziłbym poniżej GL2.1 i nawet wtedy chciałbym uzyskać jak najwięcej funkcji 3.x.