Gdy specyfikacja OpenGL jest aktualizowana, dodają tylko funkcje. Teoretycznie więc najnowszy i najlepszy sprzęt z obsługą profili Core i Compatibility powinien działać bardzo stary kod OpenGL1.1. Okazało się to prawdą. Spędziłem 12 miesięcy ucząc się OpenGL1.1 i dobrze go rozumiem.
Przeczytałem kilka rozdziałów jednej z tych nowych, wymyślnych książek o OpenGL4.2. Niemal wszystkie funkcje, na których polegam, były przestarzałe (takie jak listy wyświetlania), co pozwala mi założyć, że są lepsze sposoby robienia tych wszystkich rzeczy.
Rozważmy, że 1.1 będzie prawdopodobnie w pełni obsługiwane przez WSZYSTKIE nowoczesne urządzenia. Wersja 1.1 została wydana w 1992 roku. Nie koduję na poważnie jedynie obsługi 20-letnich komputerów PC. :-p Myślę, że rozsądnie jest założyć, że większość graczy korzysta ze sprzętu, który osiąga najniższy poziom w średnim wieku około 5 lat.
Myślę, że nowsze metody zostały zaprojektowane tak, aby były jedną z dwóch rzeczy: lepszą wydajnością lub łatwiejszym kodowaniem. Czytałem gdzieś, że nigdy nie jest to jedno i drugie! XD
Jaka wersja OpenGL jest najczęściej obsługiwana przez sprzęt sprzed około 5 lat? Z jakiej wersji warto skorzystać, biorąc pod uwagę te względy?
Chciałbym zacząć tutaj: http://store.steampowered.com/hwsurvey
Nie celowałbym tak długo, jak procent użytkowników, na przykład, jeśli celujesz w 4cpus, trafisz tylko 45% użytkowników, ale jeśli pracujesz do 2, dostaniesz blisko 90%
źródło
Odpowiedź zależy od tego, czy musisz uruchomić grafikę firmy Intel wydaną w podanym terminie, czy nie.
Jeśli tak, ogranicz się do OpenGL 2.1 (lub nawet 1.5), jeśli nie, to 3.x wydaje się rozsądny.
Tak, starsze wersje OpenGL nadal działają i tak, z jednej perspektywy mogą wydawać się prostsze. Tam, gdzie rzeczy wychodzą z kształtu, jest to, gdy próbujesz robić rzeczy (i robisz to), których nie wspierają zbyt łatwo. OpenGL 1.1 to nie tylko trudna droga - często jest niemożliwa, jeśli chcesz osiągnąć określone wyniki.
źródło
Po pierwsze rzeczy OpenGL 1.1, takie jak Listy wyświetlania, będą nadal działać w nowym kontekście, pod warunkiem, że masz profil zgodności (co zwykle ma miejsce). Jedynym problemem jest to, że oczekujesz przeniesienia do OpenGL ES, jednej z bibliotek graficznych specyficznych dla konsoli (są one zwykle usuwane z OpenGL podobnie jak OpenGL ES) lub nawet WebGL (co i tak wymagałoby sporo przeróbki).
Osobiście polecam używanie shaderów wierzchołków / fragmentów i VBO. Są już od dłuższego czasu i oferują świetne ulepszenia wydajności. Prawdopodobnie możesz nawet zapewnić prosty powrót, jeśli zawrzesz funkcje w klasie.
Możesz także być w stanie emulować takie obiekty, jak obiekty tablicy wierzchołków.
źródło
Z pięcioletnim sprzętem niektórzy ludzie nadal używają XP. A to oznacza, że nie można nawet kodować za pomocą DirectX 10 lub OpenGL 3. A OpenGL 3 ma wiele funkcji, z których naprawdę skorzystasz, takich jak bufory ramki i tym podobne. Szczerze mówiąc, podniosłem nieco wymagania systemowe, abyś mógł uwzględnić te funkcje.
źródło
Oprogramowanie 3d często ma ścieżki kodu zarówno dla „podstawowej” wersji graficznej interfejsu API, jak i „najnowszej i najlepszej” wersji interfejsu API.
Typowymi wersjami graficznymi linii bazowej są D3D9 i OpenGL 2.1 / GLSL 120 .. Oba są wyraźnie brakujące shaderów geometrii, ponieważ stary sprzęt ich nie obsługuje.
Inną opcją podstawową jest ANGLE, czyli GLES 2.0 plus EGL, który działa na D3D9, stacjonarnym OpenGL i mobilnym GLES 2.0. Jest to zaplecze dla Google Chrome i Webgl w Chrome i Firefox.
http://code.google.com/p/angleproject/
Jeśli chodzi o wybraną „najnowszą i najlepszą” wersję, jest to trudniejsze. Im najnowszy interfejs API i sprzęt, na który celujesz, tym lepiej wyglądające funkcje możesz obsługiwać - ale tylko na najnowszym i najlepszym sprzęcie.
źródło