OpenGL 3.0 = ostateczne zwycięstwo DirectX Microsoftu?
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.
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.)
- gogo
- 2008-08-12 15:16:27
"...wielu deweloperów otwarcie wyraża frustrację. Ich zdaniem biblioteki są mocno zacofane..." W czym problem? Źródła są więc do roboty i niech zrobią lepsze. Krytykować to każdy potrafi :)
- ~gość
- 2008-08-12 15:39:56
@gogo czyli nie możesz krytykować prezydenta bo w czym problem? Stwórz partię wypromuj się, wygraj wybory i rządź lepiej. Nie krytykuj piłkarzy, sam weź korki i zagraj lepiej, no w czym problem? Nie krytykuj IDG, stwórz własny serwis, w czym masz problem? Nie krytykuj nic bo przecież masz możliwość zrobienia tego lepiej...
- yeti
- 2008-08-12 16:00:26
@gogo: Problem w tym, że Khronos opublikował nie bibliotekę, tylko jej specyfikację. Funkcji nieuwzględnionych w specyfikacji nie da się zrobić lepiej, bo po ich implementacji biblioteka już nie będzie zgodna ze standardem OpenGL.
- poniedzialkowy dol
- 2008-08-12 16:12:06
no to pozamiatane
- tad
- 2008-08-12 16:22:16
:)) a tak bardzo prosiłem, abyście się wzięli do roboty! Nie tylko bibliotek nie macie ale nawet standardu... A o środowisku deweloperskim w ogóle możecie zapomnieć, prawda? Czyli o aplikacjach pro na czas i tym samym o przyszłości...
- tajny rippacz anty
- 2008-08-12 16:32:50
@tad: Gdzie jest napisane, ze nie ma standartu i od kiedy gry, w odroznieniu od CAD wspieranego przez standart, sa "pro"? @inni: gogo nie twierdzi, ze jest deweloperem a ustalenie standartu nie oznacza, ze nie mozna go zmienic.
- Adam
- 2008-08-12 17:17:58
DirectX jest tylko na Windowsa.
- viśtek®
- 2008-08-12 17:59:24
nic nowego.. ja wam linuchy to od dawna przepowiadałem!! gdybyście wyzbyli się tych swoich idealistycznych bredni i ślepego zapatrzenia w siebie to może by coś z was wyrosło linuchy.. a tak skończycie jak ruski - izolowani od cywilizowanego świata!
- Midas
- 2008-08-12 18:25:54
Takie nagłówki przyciągają ludzi pokroju pana v. i mogą pisać to samo co zawsze, jak ze szablonu prawie, nie wiedząc o czym w ogóle jest dany artykuł...
- ewqe
- 2008-08-12 18:38:22
Spece od czarnego PR Microsoftu działają...
- Therion
- 2008-08-12 18:55:01
Skoro taki ten OpenGL zacofany, dlaczego IdSoftware swój nowy silnik (IdTech 5) opiera właśnie na openGl? niech ktoś mi pokaże co takiego jest w DirectX''e czego nie pokazano w demie Rage''a? Prawda jest taka, że większość ludzi nie zdaje sobie sprawy z tego ile gier chodzi na silnikach napisanych przy użyciu OpenGL i nie są to gry uważane za przestarzałe technologicznie.
- dmichael
- 2008-08-12 19:01:32
@Therion: być może Id myśli przyszłościowo, może wygodniej jest im rozwijać aplikacje bazujące na OpenGL, a może też mieli nadzieje na lepszy standard tych bibliotek. DirectX w odróżnieniu od OpenGL jest przewidziany głównie do gier, gdy OpenGL zwykle używa się przy programach typu CAD i innych PROfesjonalnych. Deweloperzy mogli się zawieść, ale widocznie grupa Khronos nie bierze sobie za priorytet tworzenia biblioteki "do gier".
- viśtek®
- 2008-08-12 19:20:37
@Therion: lol ;) IdTech będzie tylko na DirectXi''e !!! coś ci się mocno po przestawiało linuchu!!
- dmichael
- 2008-08-12 19:40:32
@viśtek®: hxxp://en.wikipedia.org/wiki/Id_tech_5 O ile mi wiadomo nie istnieje implementacja DirectX''''a na Linux''''a, Mac OSX''''a czy PlayStation 3.
- viśtek®
- 2008-08-12 20:05:43
tak ale na Windowsie będzie tylko i wyłącznie na DirectX''a Carmaick już dawno się zachwycał DXem mówiąc że porzuca OpenGL''a. Jeśli jakiś producent będzie chciał robić port swojej gierki korzystającej z IdTech5 na *nixy to wtedy będzie musiał kawałek kodu odpowiedzialny za rendering przepisać na OpenGL''a. . Carmaick wspominał że to dość mały kawałek kodu ale dla producentów gier to kolejna przeszkoda przed portowaniem na lajnuxa ;)
- Romanujan
- 2008-08-12 20:31:49
@ewqe->To nie czarny marketing Microsoftu, to fakty - piszą o tym między innymi na linuxnews.pl, także na planet.kde.org. No cóż, cała nadzieja w Gallium3D - jeśli spełnią się założenia tego projektu, to za rok-dwa stosunkowo łatwo będzie można się pozbyć OpenGL''a i zastąpić go jakimś lepszym API - bez zmian w sterownikach do kart graficznych. Tak to już w świecie FOSS jest - od czasu do czasu coś popada w stagnację, po pewnym czasie kilku wkurzonych ludzi robi forki, powstają od zera konkurencyjne projekty - najsłabiej sobie radzące i najmniej udane inicjatywy padają, wyłania się jeden czy dwóch faworytów... Tak było z Motif''em (teraz mamy Qt i GTK), tak było z GCC (FSF poszło po rozum do głowy i "pobłogosławiło" EGCS jako oficjalną, nową wersję GCC; zresztą - przy obecnych tendencjach może się jeszcze okazać, że GCC zostanie w większości zastosować zastąpione przez kompilator bazujący na LLVM), tak może się stać z API OpenGL :)
- Romanujan
- 2008-08-12 20:35:32
@redakcja - zróbcie coś z tym forum - cały czas zamienia wpisywane przeze mnie (i innych forumowiczów) apostrofy na cudzysłowy - można wyjść z siebie...
- realista
- 2008-08-12 20:48:52
Nie spece od czarnego piaru...to są fakty, z którymi się nie polemizuje.
- gostekbeznicka
- 2008-08-12 21:13:23
@Adam Mało tego, że DirectX jest tylko na Windowsa... Najnowsza wersja jest tylko na Vistę, która stanowi nieco ponad 8% w Polsce ;)
- ~gość
- 2008-08-12 21:52:26
Obsluga grafiki za pomoca OGL i DX jest stosunkowo podobna. Problem z OGL wynika z braku standaryzacji tzw. rozszerzen. OGL podobnie jak DX do 9 pozwalały producentom kart na dodawanie własnych funkacji. Ponieważ funkcje te implementowane były na poziomie sterownika czesto ich interfejs byl różny u ATI i NV a nawet zmienial sie przy zmianie wersji sterownika. Powodowało to tzw. ''EXT hell''. Od wersji DX10 MS uległ deweloperom gier i wymusił standaryzacje API. Każda karta musi posiadać wszystkie funkcje z DX10 by być kompatybilną. Deweloperzy mieli nadzieję że podobnie w OGL3 nastapi podobny ruch i odpowiedniki funkcji z DX10 trafia to tzw ARB (rozszerzenia standardowe). Tak sie jednak nie stalo. Nie oznacza to ze w OGL nie ma jakichs funkcji. Pojawia sie tam nawet szybiej niz w DX (poniewaz DX10 zabrania wprowadzania nowych funkcji bez zmiany numerka stad DX 10.1). Problem jest w kosztach. Pisanie ściezki rederowania dla każdej platformy a czasami wersji sterownika jest bardzo kosztowne. Wiekszosc deweloperów woli ograniczac koszty i wybiera bezpieczny standard czyli DX. Takie firmy jak ID maja jednak wystarczajaco duzo pieniedzy by robic soft pod OGL. Do Doom3 przyladowo istnialy 4 alternatywne sciezki renderowania tylko dla kart NV (możliwe do wyboru z konsoli). To koszty na które moga pozwolic sobie tylko nieliczne firmy.
- pijaczek
- 2008-08-12 22:05:19
@Therion: id software pisze silnik wieloplatformowo przy użyciu dx i ogl (windows, xbox to dx, linux, macos, ps3 to opengl). Teraz wszystkie silniki są pisane przy użyciu obu api, bo jak nie to są mało atrakcyjne. @viśtek®: Nie znasz się na czymś to nie zabieraj głosu dx nie ma więcej możliwości od ogl (ba nawet jest on zawsze odrobinę spóźniony z nowinkami). Carmack jak zresztą wszyscy zauważają zalety tego że dx nie jest tylko api graficznym, a zawiera implementację najczęściej wykorzystywanych tworów matematycznych itd. oraz obiektowość dzięki czemu nie trzeba się zajmować tym przy pisaniu gier (i to też powód dlaczego programy do tworzenia grafiki bo tam trzeba i tak reimplementować wszystko w trochę inny sposób ;p) - w praktyce programiści są zawiedzeni, z 2ch powodów - 1. brak zerwania z kompatybilnością wsteczną. 2. brak obiecywanej obiektowości (wiąże się to z pkt. 1). Tak naprawdę nic to nie zmienia w sytuacji dx vs ogl.
- ~gość
- 2008-08-12 23:55:51
@pijaczek API DX10 zostało bardzo odmłodzone, podobnie jak miało to miejsce z okazji DX7. Praktycznie nie istnieje cos takiego jak problem niepotrzebnej kompatybilności wstecznej. Brak obiektowości jest w pewnym stopniu wada OGL tak jak piszesz. Mi osobiscie dobrze sie w OGL programowalo ale moja wydajność była zerowa. Kolega pisał w DX i jego jedna funkcja obsługi tzw. cząsteczek to u mnie w OGL było pisanie kodu od zera + odwoływanie sie do opcjonalnych rozszerzenia ''point parameters'' (to było 8 lat temu). Oj zazdrościłem mu wtedy gotowych obiektów i pewności że bedzie działało ;D
- pijaczek
- 2008-08-13 00:46:31
@~Gość-90.156.104.13: api dx10 zostało przeprojektowane (nie wspominaj o wersjach przed 9 bo ich się nie dało używać!). Żadnych obiektów i innych bajek do robienia cząsteczek nie miał i nie ma w dx, i tworzenie systemu cząsteczek w obu api jest mniej więcej tak samo trudne/łatwe - nie ma bo cząsteczki są takim tworem, że nie tak łatwo zaimplementować jeden słuszny model - dlatego to spoczywa na barkach programisty - nie jest to czymś trudnym - wystarczy zrobić emiter (np. dla deszczu 2 pkt oznaczające min i max xz a y ustawiamy taki sam), wymyślić sposób ruchu cząsteczek (deszcz w dol + wektor wiatru + wektor randomizujący, śnieg zmodyfikowany sinus, ogień kombinacja sinusa i wektora skierowanego do środka (dym odwrotnie)), itd. - to wszystko nie ma nic wspólnego z wyświetlaniem grafiki, a ze zwykłym programowaniem - sam rendering (i wykorzystanie api graficznego) to wyświetlić czworokąt (bilbord) w miejscu gdzie jest cząsteczka (cząsteczki jako punkty z teksturą są może szybsze, ale nie poddają się działaniu perspektywy ;p)
- romek
- 2008-08-13 02:10:43
ciekawe czy niedali rady bo mieli zaslabych programistow czy tak jak z linuxem ktos na gorze zdecydowal ze ma byc zacofany
- ~gość
- 2008-08-13 07:13:01
@pijaczek Tak jak pisałem ja programowałem w OGL. Tu rzeczywiscie musiałem to recznie programowac. Z tego co jednak pamiętam to kolega programujący w DX miał do tego parametryzowaną funkcje. Ale mogę się mylić. Tak jak pisałem nie zajmuję się juz grafika 8 lat a to sporo czasu. Omineły mnie nawet szadry ;D To co moim zdaniem w OGL jest kiepskie to wolna amerykanka z rozszerzeniami. Może dziś już nie ma takiej dynamiki - nie wiem jest duzo ARB i EXT ale kiedyś to był prawdziwy koszmar.
- pijaczek
- 2008-08-13 07:40:49
@romek: dowiedz się kto wchodzi w skład khronos group i zastanów się co wygadujesz (btw. nie tylko na temat ogl, ale tu musisz więcej się dowiedzieć bo nie masz nawet minimum pojęcia o czym piszesz). @~Gość-90.156.104.13: W dx też trzeba było i dalej trzeba pisać ręcznie - możliwe, że twój kolega skopiował klasę cząsteczek z jakiegoś tutoriala (lub użył jakiegoś silniczka/framework''a) i pokazał Ci jak działa interface - do tworzenia cząsteczek musisz użyć konstruktora/funkcji z parametrami to jasne, ale zależnie od efektu system cząsteczkowy może być tak różny, że nie da się wszystkiego opisać tymi samymi parametrami. "Wolna amerykanka" z rozszerzeniami jest tylko zanim się pozna opengl - później używa się ich dosyć przyjemnie - mają swoje wady i zalety.
- tad
- 2008-08-13 07:44:38
@tajny rippacz anty - po prostu nie macie standardu godnego rywalizować z Microsoftem, nie tylko w zakresie gier (trzeba choć trochę umieć się domyślać a nie żyć wierzeniami...). Również nie macie czym rywalizować efektywnie z zakresie tworzenia aplikacji, systemów. Możecie się tylko zachlastać pocieszając się. Oczywiście, każdy może napisać coś w koszmarnym OGL (spróbujcie a zobaczycie rożnicę), jak ktoś kiedyś zainwestował sporo w to OGL to teraz jest załatwiony finansowo i grzęźnie dalej. Dla podstawowej grafiki OGL jest czasem wystarczający - ale tak juz było w ubiegłym wieku. I humorystycznie można dodać, że: najwydajniejszy program będzie gdy napiszemy wszystko od zera w asemblerze, tak aby nie było niczego zbędnego (zasoby). Tylko kto ma na to czas, pieniądze, ludzi - konkurenci zrobią to szybciej taniej lepiej w narzędziach Microsofta. :)
- Bosman
- 2008-08-13 10:00:09
Hmmm... a był taki standard jak 3Dfx glide... Czy on był gorszy od DX ? Nie, a jednak upadł. Owszem upadła firma, ale dlaczego ? Ano m. in. przez Microsoft.
- ~gość
- 2008-08-13 10:08:06
@Bosman 3Dfx glide to był podzbiór funkcji OGL realizowany przez sprzet Voodoo. Pojawiły się karty wspierające pełen zestaw funkcji OpenGL no i glide upadł. Zabił go postęp w 3D, dobre karty nVidii nie MS.
- Irol
- 2008-08-13 10:36:33
Biblioteki OpenGL Wymagaja zupelnie innych sterownikow niz DX. I szczerze mowiac pod swoimi sterownikami sa znacznie szybsze. Jak ktos chce sprobowac to niech qpi sobie Karde Nvidia Quad i zainstaluje sterowniki OpenGL. Wszystkie gry beda chodzily znacznie szybciej niz DXowskie. Sam uzywam softu wymagajacego maksymalnego dopalu w OpenGL (Tekla Structures) i wiem ze popularne karty graficzne ze sterami pod DX dzialaja za wolno. Dopiero zmiana karty na profesjonalna dala duzy dopal.
- poniedzialkowy dol
- 2008-08-13 11:32:32
znacie to prawo murphiego ktore ze jesli ponad 50% wynikow badan nie stanowi poparcia dla teori to redukuje sie pule rozwiazan do tego staopnia aby popierala teorie? to wlasnie probujecie zrobic. grafika w grach nie jest juz pro. pro jest cad. zenua. nie pograzajcie sie prosze.
- max
- 2008-08-13 16:13:49
re dół: nie, nie znam takiego prawa. Podobne są te: 1) jeśli fakty nie potwierdzają teorii, to tym gorzej dla faktów. 2) eksperyment można uznać za udany, jeśli do potwierdzenia postawionej tezy należy odrzucić nie więcej niż 50% wyników. Żadne z powyższych nie jest przypisywane "Murphy''emu".
- sCooBy
- 2008-08-14 12:21:37
"Skoro taki ten OpenGL zacofany, dlaczego IdSoftware swój nowy silnik (IdTech 5) opiera właśnie na openGl? niech ktoś mi pokaże co takiego jest w DirectX''''e" Unreal Engine panicku. I tyle w temacie...
- sCooBy
- 2008-08-14 12:38:06
Słyszeliście o czymś takim jak DirectX.NET? Przy tym pisanie w OpenGL to tak jak porównać C++ z Assemblerem. Direct miażdży w każdym przypadku OpenGL-a
- voidinfinity
- 2008-08-14 14:54:54
No i co z tego? Przecież wiadomo że miłośnicy Linux''a najbardziej lubią pracować w trybie tekstowym. A poważnie - to typowy "kopniak w przyrodzenie" dla technologii Open Source. No cóż - jak się ktoś chce zajmować ideologią zamiast robić pieniądze na oprogramowaniu - to tak się to kończy.
- pijaczek
- 2008-08-14 17:12:59
@sCooBy: Unreal engine jest na dx i ogl (jest pisany w obu api). W dx.net pisze się prosto... ale wydajnością to raczej porównanie asp vs assembler @voidinfinity: to nie jest kopniak dla technologji open source bo opengl nie jest open source - to tylko otwarta specyfikacja techniczna (opracowywana w grupie khronos czyli m.in. nvidie, ati, intel, sony), a implementacje będą zarówno zamknięte (zamknięte sterowniki), jak i otwarte (mesa).
- sin - expert
- 2008-08-15 16:18:27
CELL jest juz dawno tak szybki, ze niepotrzebuje sprzetowego wspomagania grafiki GPU. Sam CPU zajmnie sie i grafiką 3D i zwyklymi algorytmami, i bedzie szybszy od najszybszych procesoórwów. CELL jest wielki!!!!
- indian
- 2008-08-16 21:06:44
"deweloperów gotowy jest zrezygnować z OpenGL 3.0 na rzecz Visty (!)" Histeryk;). Inna sprawa rozumiem - jeżeli nie można kupić komputera bez visty, jeżeli na komputerach z vistą nie można zainstalować nic innego to programista nie może sobie ograniczyć możliwości dalszej pracy... Prawda? To tak jak sprzeciwiać się faszyzmowi lub komunizmowi. Jeden jest system i już. A kiedyś w przyszłośći przyjdzie czas na gorzkie żale ale póki co cieszmy się nowym glass wyglądem pulpitu. A jako użytkownik - nieprofesjonalista: Bardziej mi się podoba grafika na OpenGL niż na DirectX''ach... To taka bardzo nieprofesjonalna i subiektywna opinia.
- sCooBy^
- 2008-08-17 10:55:17
@sin - expert Buuuuhahahahaaaa 10/10 "Sam CPU zajmnie sie i grafiką 3D i zwyklymi algorytmami" Lepszego kawału nie czytałem jeszcze przy porannej kawie! ;) "bedzie szybszy od najszybszych procesoórwów." Masz racje, będzie szybszy od najszybszych "procesoórwów" i nic pozatym ;)
Pobierz bezpłatnego e-booka 



