OpenGL 3.0 = ostateczne zwycięstwo DirectX Microsoftu?

Grupa Khronos udostępniła ostateczną wersję specyfikacji OpenGL 3.0, będącej otwartym, wieloplatformowym API pozwalającym na sprzętową obsługę grafiki 3D. Firmom rozwijającym oprogramowanie CAD wersja z pewnością się spodoba, stanowi bowiem rozwinięcie wydania 2.1 - ale wielu deweloperów otwarcie wyraża frustrację. Ich zdaniem biblioteki są mocno zacofane pod względem możliwości, zwłaszcza w kontekście wykorzystania ich jako platformy do rozwoju gier. OpenGL 3.0 pojawił się półtora roku po premierze DirectX 10, a ciągle jeszcze nie obsługuje wszystkich funkcji, jakie dawno temu zostały zaimplementowane przez Microsoft.

OpenGL jest zestawem standardów umożliwiających deweloperom tworzenie aplikacji graficznych dla Windows, Mac OS oraz Linuksa. Według szacunków, ilość sprzętu zainstalowanego w komputerach i posiadającego wsparcie dla OpenGL 3.0 przekracza 60 milionów.

Firmy takie jak Intel, Advanced Micro Devices czy NVidia znacząco przyczyniły się do rozwoju specyfikacji i dziś wszystkie trzy przyznają, że w ich intencji leży wprowadzenie obsługi standardu we wszystkich możliwych produktach. Jednak od zapewnień do realizacji droga daleka. Ani chipsety Intela, ani ATI (AMD) nie błyszczą, gdy wziąć pod uwagę wydajność aplikacji OpenGL w porównaniu do szybkości przetwarzania w wypadku DirectX.

OpenGL 3.0 - inne nowości

Wśród nowinek wprowadzonych w OpenGL 3.0 znalazło się kilka rozszerzeń potencjalnie mogących zwiększyć możliwości następnej wersji bibliotek. Oprócz tego API pozwala na obsługę GLSL 1.30, nowej wersję języka cieniowania oraz posiada wszechstronne wsparcie dla funkcji oferowanych przez akceleratory graficzne ostatniej generacji (patrz też niżej).

Ponadto w bibliotekach pojawiła się:

  • Implementacja Vertex Array Objects
  • Funkcja kompaktowania danych pikseli i werteksów w celu oszczędzania pamięci i pasma
  • Wsparcie dla 32-bitowego bufora głębi
  • Cztery nowe schematy kompresji tekstur
  • Nieblokowalny dostęp do obiektów bufora werteksów
  • Funkcja renderowania warunkowego zwiększającego wydajność

Zwycięstwo Microsoftu?

Kiedy opublikowano specyfikację OpenGL 3.0, na forum Khronos Group podniósł się lament. Wielu deweloperów uznało, że zapomniano o obietnicach, które rok i dwa lata temu dano programistom. Do pełnej obsługi OpenGL 3.0 konieczne jest stosowanie kart kompatybilnych z DirectX 10, ale jednocześnie sam OpenGL 3.0 nie implementuje wszystkich funkcji DX10!

Nie brakuje radykalnych stwierdzeń: przynajmniej jeden z deweloperów gotowy jest zrezygnować z OpenGL 3.0 na rzecz Visty (!) i standardu Microsoftu. Pojawiły się również opinie, że opublikowana właśnie specyfikacja jest zacofana aż o siedem lat względem DirectX - a przepaść ma rosnąć z każdą chwilą. Co gorsza, na koniec bieżącego roku Redmond zapowiedziało premierę DirectX 11.

Pocieszający może być jednak fakt, że wraz z premierą Larrabee i innych GPU ogólnego zastosowania (GPGPU) wojna na liczbę obsługiwanych funkcji przez DirectX i OpenGL powinna stać się przeszłością. Deweloperzy gier nie będą musieli już czekać, aż firma X udostępni chipset implementujący funkcję Y, a następnie wypatrywać API, za pomocą którego ją obsłużą.

Zamiast tego sami będą mogli zaprogramować chip do własnych potrzeb korzystając z klasycznych narzędzi i języków wykorzystywanych na platformie x86.

Warto zobaczyć: "OpenGL 3 Updates" (w języku angielskim)

Więcej o OpenGL 3.0: przegląd OpenGL 3.0 (w j. ang.)


Zobacz również