DirectX vs. OpenGL — kolejna porażka Microsoftu
Ostrzeżenie
Ten post został opublikowany 15 lat temu. Informacje mogą być przestarzałe, poglądy autora mogły ewoluować lub post może być nieaktualny w jakiś inny sposób. Weź to pod uwagę podczas czytania tego posta.Tak, tak, kolejny wpis o Micro$ofcie — o tym, jak jego rozwiązania są denne i beznadziejne i dlaczego ludzie z nich korzystają.
Czym są DirectX i OpenGL? Ano, są to — w skrócie — biblioteki głównie do renderowania 3D (i nie tylko, ale o tym za chwilę). DirectX jest zamknięty i od podstaw stworzony przez M$, natomiast OpenGL jest otwarty i stworzony przez Silicon Graphics, jednego z członków grupy ARB, czyli zrzeszenia kilku dużych firm komputerowych — m.in. Intel, NVIDIA, IBM, Apple i ATI. ARB jest aktualnie wcielone w grupę Khronos.
No, to jedziemy!
- DirectX jest dostępny tylko i wyłącznie na Windowsa (w tym również na jego Xboksowe i mobilne odmiany), natomiast OpenGL dostępny jest na Windowsa, Mac OS-a, Linuksa, PlayStation 3 i wszystkie inne popularne systemy (w tym systemy mobilne), ponadto posiada bindy na kilkadziesiąt języków programowania.
- Starsze Windowsy nie obsługują nowych DirectXów. Wszystkie obsługiwane przez OpenGLa systemy, nawet bardzo stare obsługują najnowszego OpenGL-a.
- OpenGL jest (często — zależnie od implementacji) szybszy.
- W OpenGL-u najnowsze technologie są implementowane wcześniej niż w DirectXie dzięki rozszerzeniom — np. technologia teselacji, która jest tak reklamowana przez Microsoft, producentów gier, czy czasopisma była dostępna w OpenGL-u 3 lata wcześniej.
- Microsoft straszy użytkowników przekonując ich do DirectXa — tzw. FUD.
- Mylące kampanie reklamowe — niektórzy użytkownicy przekonywali się do nowego DirectX-a, podczas gdy to samo można było uzyskać w starym edytując plik konfiguracyjny.
- OpenGL był początkowo lepiej napisany, potem Microsoft zaczął podkradać rozwiązania otwartej biblioteki.
- Łatwiej jest się nauczyć obsługi OpenGL-a niż DirectX-a. Do OpenGL-a jest ponadto więcej tutoriali i poradników w internecie.
- OpenGL jest biblioteką do grafiki, DirectX daje też rozwiązania do kontrolerów, internetu, dźwięku i tekstu — bezsens. (potem wydajność marna, a jak to mówią — “co jest do wszystkiego, to jest do niczego”)
- DirectX-a trzeba zazwyczaj dodatkowo doinstalować. OpenGL jest dostarczany wraz ze sterownikami do karty graficznej.
- Żeby pisać aplikacje wykorzystujące OpenGL, nie trzeba nic doinstalowywać — odpowiednie nagłówki są instalowane zazwyczaj wraz z kompilatorem. Do DirectX-a trzeba instalować SDK.
- OpenGL działa na zasadzie klient-serwer, co oznacza, że można wyświetlić grafikę wyświetlaną przez OpenGL np. na zdalnym terminalu. DirectX nie daje takiej możliwości.
Wniosek?
DirectX to kolejny, beznadziejny badziew od Micro$oftu, który zdobył popularność tylko dzięki marketingowi i zastraszaniu klientów. OpenGL daje większe możliwości, jest prostszy w obsłudze, działa na wszystkich najpopularniejszych platformach i jednocześnie jest szybszy od DirectX-a. OpenGL daje lepszą grafikę nawet na starszym sprzęcie — głównie ze względu na kompatybilność DirectX-a nie tylko z samym Windowsem, ale również określonymi jego wersjami i kartami graficznymi. Producenci gier olewają takie platformy jak Linux pomimo tego, że skoro robią porty swoich gier na PlayStation 3 lub na Mac OS-a to oznacza to, że na Linuksa też się da.
Po raz n-ty z kolei można się przekonać, że ogromna korporacja, jeżeli tylko ma dużo kasy, może nic nie robiąc wywołać więcej szumu niż globalna społeczność, która odwala masę niesamowicie dobrej roboty w tempie dużo szybszym od Microsoftu. Daje masę własnościowego software’u zabijając to, co jest jednak lepsze. A ludzie i tak z tego korzystają. Idioci.
Comments
Comments are closed for this post.
Generalnie ze wpisem się zgadam. Praktyka zżynania jest obecna praktycznie wszędzie. Czy to wśród przeglądarek, czy systemów.
Jedynie dla tego punktu
pokusiłbym się o link do jakiegoś benchmarku.
z kolei
to już tylko subiektywna opinia. Znam osoby, które piszą w assemblerze a nie ogarniają HTML-a 😉
To Tylko Twoja i wyłącznie Twoja opinia prawda? Przedstawiłeś tutaj TYLKO WADY Direct i same ZALETY OGL'a, a gdzie zalety DX i wady ogl'a? Bądź obiektywny, a nie, jak ktoś Ci powiedział - DirectX to dno, OGL wymiata - i wtedy jego słuchasz, zastanów sie...
Napisałbym wady Dxa, jakby jakieś były (albo po prostu ja ich nie znam).
ten artykul to stek bzdur.
Może zaargumentujesz? 😄
E tam :D
Jest szybszy bo prawie zawsze nowszy :D
Jest szybszy bo wszystko go obsługuje :D
Wystarczy?
o proszę, znalazłem ten artykuł w google, patrzę a tu m4tx 😉
OpenGL zawsze był o krok do przodu od DX, gdyby nie złodzjeski majątek M$ i fałszywe kampanie reklamowe to DX już by dawno upadł, największy żal czuję do M$ gdy widzę te porównania DX 10 i 11 gdzie w screenie z 11 zwiększyli trochę kontrast i zrobili parallax mapping co można było zrobić nawet na antycznych DX/OGL ;D czy na serio ktoś wierzy, że upgrade DX 10 do 11 poprawi magicznie grafikę? śmiać się czasem chce, a jeszcze bardziej z tych ludzi, którzy używają DX i idą w zaparte, ale cóż...
pomysł na biznes wg M$ - zaimplementować jakiś fajnie wyglądający shader, walnąc napis new DirectX 999999 oczywiście niekompatybilny ze starszymi Windowsami i wypuścić nowy system tak żeby znowu miliony frajerów go kupiło.
warto też poczytać http://www.wykop.pl/ramka/283984/dlaczego-powinienes-uzywac-opengl-a-nie-directx/
Po części masz dużo racji, ale popularność DirectX to nie tylko reklamy itd, poczytaj trochę o historii OGLa, było w pewnym momencie spore zmieszanie z obsługą różnych rozszerzeń co wymagało trochę pracy od programistów. W tych czasach najwięcej stracił OpenGL, a zyskał jego rywal, ale myślę, że powoli OpenGL odzyskuje "zaufanie" i będzie go używać coraz więcej programistów.
Liczy się nie to co było, ale co jest teraz 😄
OpenGL jest biblioteką do grafiki, DirectX daje też rozwiązania do kontrolerów, internetu, dźwięku i tekstu – bezsens. (potem wydajność marna, a jak to mówią – „co jest do wszystkiego, to jest do niczego”)
Kto powiedział że wydajność marna ? W openGl'u musisz ściągać osobne biblioteki do wszystkiego, a ty przerzywasz że DirectX trzeba zainstalować i masz już wszystko ?
Na PS3 i systemach mobilnych nie ma OpenGL. Jest OpenGL ES, a to co innego niż OpenGL. Poza tym na PS3 żadne szanujące się studio z OpenGL (ES) nie korzysta - są wydajniejsze sposoby programowania GPU (bezpośrednie wysyłanie poleceń).
Proszę mi pokazać działającego Windowsa 3.11 z OpenGL 4.0. Problem: stare systemy nie obsłużą płyty z PCI-E. 😉
G-prawda. Wyniki benchmarków są z reguły zbliżone. Autor nie zgłębił dostatecznie tematu.
Tesselacja jest w:
Nie mam pojęcia jakiego fonta autor używa, że -1 wygląda jak 3. 😉
[[citation needed]] - osobiście nie byłem straszony i nie znam nikogo, kto by był.
Również [[citation needed]].
Błąd. A raczej kompletna nieznajomość architektury systemu/driverów. OpenGL nie jest w ogóle napisany, jeżeli o kod chodzi - twórcy driverów pozostawieni są sami sobie. Za to MS sporo brudnej roboty odwala sam. W szczególności dostarcza kompilator HLSL.
OpenGL uczyłem się rok. DirectX'a 2 tygodnie. Co do drugiego zdania - [[citation needed]].
Kolejna rażąca nieznajomość tematu. Komponenty DirectX łączy jedynie nazwa i w żaden sposób nie wchodzą ze sobą w interakcje. Równie dobrze można stwierdzić, że OpenGL zamula bo w pakiecie ma OpenAL i OpenCV.
DirectX i sterowniki są dostarczane z Windowsem do wszystkich istniejących i spodziewanych sprzętów. Wsparcie OpenGL prawdopodobnie tez tam jest.
Żeby używać najnowszych featurów OpenGL musisz z reguły doinstalować najnowszy glext.h. Z reguły też jakąś bibliotekę ładującą te funkcje, bo robienie tego na piechotę jest raczej PITA. 😉
A jak często przeciętny zjadacz chleba używa tego w praktyce?
Nie mówiłem o aż tak starych systemach 😉 Jak już było na pewnym forumwyjaśnione, mowa tu o Windowsie XP (którego wciąż dużo osób przecież używa), na którym DirectX-a 11 nie uświadczymy.
Tutaj mowa była o pierwszym Crysisie i screenach pokazujących dobitnie wyższość DirectX-a 10 nad 9, a w sieci było pełno poradników, które pokazywały, jak uzyskać niemal identyczny efekt w starszej wersji DX-a.
Jak najpierw uczyłeś się OpenGL-a, a potem DirectX-a to nic dziwnego ;p
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX
Sekcja "2. FUD about OpenGL and Vista" (niżej jest też o wspomnianym wyżej Crysisie)
@Krzysztof Kluczek tesselacja w opengl była w rozszerzeniu 3 lata przed DX11
Powiem tak. Artykułem można sobie tyłek podetrzeć. Nie nadaje się do niczego. Ale cóż się dziwić jak do władzy w internecie dochodzą dzieci neostrady - nie znają się na niczym, ale wypowiadają o wszystkim.
Mówi to ten, który w niku daje sobie część nazwiska korwina. 😄