Autor Wątek: OpenGL vs DirectX  (Przeczytany 158196 razy)

maxest

  • Gość
# Kwiecień 01, 2006, 22:24:20
calkowicie podzielam twoja opinie ;)
dx 7 to byla masaka (sam Carmack napisal list do microsoft'u zeby przestali rozwijac ten badziew i zajeli sie rozwojem ogl'a :D). od dx 8 direct3d to pelnowartosciowe api ktore wyglada niemal tak samo jak ogl (pod wzgledem funkcji, jakie oferuje).
a jak ktos patrzy na to, ze jedno jest lepsze bo obiektowe a drugie nie to jest po prostu malo elastyczny ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline counterClockWise

  • Użytkownik

# Kwiecień 01, 2006, 23:29:54
Tak i nawet zebrał pod nim sporo podpisów, między innymi Tobiasa Boona i gości z Activision.
Miałem nawet gdzieś treść tego listu :)

maxest

  • Gość
# Kwiecień 02, 2006, 01:41:17
Cytuj
Tak i nawet zebrał pod nim sporo podpisów, między innymi Tobiasa Boona i gości z Activision.
sugerujesz ze Mortal Kombat'y sa pisane w OpenGL? ;)

Cytuj
Miałem nawet gdzieś treść tego listu
gdybys znalazl to najlepiej opublikuj go gdzies. to jest prawdziwy historyczny dokument ;) zrodlo pisane listowe :D

Offline przemek16x

  • Użytkownik

# Kwiecień 03, 2006, 17:37:04
Obie są takie same. W końcu wszystko zależy od karty graficznej

Offline pawelad

  • Użytkownik
    • strona domowa

# Kwiecień 04, 2006, 20:50:58
Ja uzywam dx przede wszystkim na obiektowość( ogla nie znam i nie mam zamiaru poznawać ), ponieważ jestem  leniwy( uzupełnianie kodu ).
Poczytałem sobie ostatnio o siatkach progresywnych , plikach efektów i hlsl i jestem w szoku. Jak są jeszcze równie ciekawe niestandardowe rzeczy w dx to podpowiedzcie. Dajcie mi tą  satysfakcje i napiszcie że w oglu takich rzeczy nie ma.

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Kwiecień 04, 2006, 21:56:04
Ja uzywam dx przede wszystkim na obiektowość( ogla nie znam i nie mam zamiaru poznawać ), ponieważ jestem  leniwy( uzupełnianie kodu ).

A co ma piernik do wiatraka? Przeciez w OGL tez mozna programowac obiektowo.

Cytuj
Poczytałem sobie ostatnio o siatkach progresywnych , plikach efektów i hlsl i jestem w szoku. Jak są jeszcze równie ciekawe niestandardowe rzeczy w dx to podpowiedzcie. Dajcie mi tą  satysfakcje i napiszcie że w oglu takich rzeczy nie ma.

Musze Cie zmartwic :P w OpenGL tez to wszystko mozna miec. Wszystko za sprawa biblioteki Cg.
I prosze mi tu nie wyjezdzac z tekstami, ze bez Cg nie da rady - to mierny argument.

maxest

  • Gość
# Kwiecień 04, 2006, 23:03:09
pawelad:

"siatki progresywne" - dla duzych projketow pliki X po prostu "nie istnieja". kazdy tworzy wlasny sposob przechowywania modeli, tym bardziej ze coraz wiecej gier ma dwa renderery: ogl i d3d

"pliki efektow" - jakis czas temu ktos na tym forum stwierdzil ze dla duzych projektow pliki efektow rowniez nie sa wystarczajace. poza tym co za problem napisac wlasnego parsera takich plikow efektow?

hlsl - w ogl masz glsl i cg, w d3d jest hlsl i cg. na jedno wszystko wychodzi

jeszcze jedno, skoro tak bardzo nie lubisz ogl'a a wielbisz d3d to wez napisz aplikacje tworzaca powierzchnie nurbs w d3d. ogl ma co do tego pelne wsparcie ktorego brakuje w d3d. a co z grafika interaktwyna i buforem selekcji? rowniez wystepuje tylko w ogl a brak go w d3d. wyswietlanie stereoskopowe - brak wsparcia w d3d (przynajmniej w wersji 8.1, nie jestem pewien jak to wyglada w 9.0) a ktore jest w ogl
jak widac ogl rowniez ma wiele rzeczy ktorych w d3d nie ma. wiele cech te interfejsy maja wspolnych ale znajdzie sie kilka roznych jak chociazby te ktore przed chwila wymienilem. co oczywiscie nie zmienia faktu ze obydwa interfejsy sa cudowne i wyreczaja programiste w niewiarygodnej ilosci pracy

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 05, 2006, 00:23:34
Cytuj
wez napisz aplikacje tworzaca powierzchnie nurbs w d3d. ogl ma co do tego pelne wsparcie ktorego brakuje w d3d.
Jaki problem zakodować to samemu w D3D? OpenGL i tak robi to softwareowo (może z pewnym wsparciem ze strony niektórych kart ATI, ale wątpię).

Cytuj
a co z grafika interaktwyna i buforem selekcji?
W praktyce sprowadza się to do renderowania każdego obiektu innym kolorem do niewielkiego ekranu, a następnie odczytania tego, co zostało wyrenderowane.

maxest

  • Gość
# Kwiecień 05, 2006, 00:36:19
Cytuj
Jaki problem zakodować to samemu w D3D

no ale mimo wszystko trzeba. w ogl sa do tego od razu gotowe funkcje. moze software'owe, ale sa :)

Cytuj
W praktyce sprowadza się to do renderowania każdego obiektu innym kolorem do niewielkiego ekranu, a następnie odczytania tego, co zostało wyrenderowane.

ale wspracie ogl ma? ma ;)

no generalnie te wszystkie dodatki (niewspolne dla obydwu interfejsow) sa w sumie zbedne i mozna je samemu zaimplementowac ale czasem sie przydaja.
najwazniejsze ze takie rzeczy jak blending, bufory (szablonu, glebi..), plaszczyzny tnace i mnostwo innych rzeczy sa wspolne i tworza juz jakis standard. zrobienie powierzchnii nurbs jeszcze sobie wyobrazam ale juz zaimplementowanie wlasnego bufora szablonu mogloby stanowic nie lada wyzwanie :)

Offline SauRooN

  • Użytkownik

# Kwiecień 05, 2006, 01:45:37
zrobienie powierzchnii nurbs jeszcze sobie wyobrazam ale juz zaimplementowanie wlasnego bufora szablonu mogloby stanowic nie lada wyzwanie :)
Bufor to bufor, możemy renderować do teksturki ;)

Offline azorek

  • Użytkownik

# Kwiecień 05, 2006, 15:37:20
Witam :)

Ktos tam wspomnial ze w ogl jest glsl i cg a w dx hlsl i cg. To prawda, tylko z tego co pamietam glsl nie mial wsparcia dla shaderow ponizej 2.0, a znowu do uzywania cg ktorego autorem jest chyba nvidia mam mieszane uczucia (moga pojawic sie podejrzenia o faworyzowanie sprzetu jednego producenta).

Effect files w dx to bardzo fajna sprawa, tak samo jak pliki x. Pewnie ze mozna to zrobic na piechote w ogl, wszystko mozna zrobic na piechote :) Tylko ze dla mnie uzycie effect filesow czy tez plikow X to duza oszczednosc czasu, tak samo jak korzystanie z gotowej biblioteki matematycznej w d3dx. Pewnie ze do duzych projektow pisze sie wlasne eksportery, czy tez wlasny system materialow, wiec jak ktos ma juz gotowy projekt gry, team oraz wydawce to moze sie o to pokusic, dla amatorskich projektow robienie tego to strata czasu (mozna zrobic raz zeby sie nauczyc i przekonac ze to co zrobilismy jest gorsze od tego co oferuje d3dx ;)).

Inna sprawa ze nie przekonuje mnie tzw "obiektowosc" direct x. Obiektowym to moge nazwac managed direct x, i tutaj ma zastosowanie to wspomniane wczesniej uzupelnianie skladni. W przypadku zwyklego directx mamy pare funkcji ktore trzeba znac i cala mase stalych ktorych juz nam uzupelnianie skladni nie podpowie.

Pozdrawiam


Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 05, 2006, 16:06:35
Cytuj
do uzywania cg ktorego autorem jest chyba nvidia mam mieszane uczucia (moga pojawic sie podejrzenia o faworyzowanie sprzetu jednego producenta).
Możesz używać CG jedynie jako kompilatora i używać asmowych shaderów, które wygeneruje. Jasne, że kolejność instrukcji może nieco bardziej pasować kartom NVidii, niż ATI, ale jak by nie patrzył, to tych instrukcji CG stara się wygenerować bardzo mało, więc siłą rzeczy w ten sposób stworzone shadery będą chodzić dobrze także na kartach ATI.

Cytuj
Effect files w dx to bardzo fajna sprawa, tak samo jak pliki x.
W prostych projektach może to się sprawdza, ale już nawet w przypadku swojego renderera nie za bardzo widzę miejsce na zastosowanie plików efektów, bo niektóre elementy stanu renderowania są składane "w locie". :)

Cytuj
Inna sprawa ze nie przekonuje mnie tzw "obiektowosc" direct x. Obiektowym to moge nazwac managed direct x, i tutaj ma zastosowanie to wspomniane wczesniej uzupelnianie skladni. W przypadku zwyklego directx mamy pare funkcji ktore trzeba znac i cala mase stalych ktorych juz nam uzupelnianie skladni nie podpowie.
Obiektowość nie sprowadza się przecież do uzupełniania składni. :)

maxest

  • Gość
# Kwiecień 05, 2006, 22:59:25
Cytuj
siłą rzeczy w ten sposób stworzone shadery będą chodzić dobrze także na kartach ATI

a swietnym przykladem tego ze Cg jest naprawde uniwersalne jest FarCry, ktorego silnik dziala na D3D i OGL, a shader'y do tej gry zostaly napisane wlasnie w Cg

przy okazji: czy GLSL i HLSL sa rownie kompatybilne z NVidia i ATI? bo z tego co kojarze to z HLSL jest ok, ale z GLSLem sa problemy (chyba) na NVidii

Offline SauRooN

  • Użytkownik

# Kwiecień 05, 2006, 23:40:01
przy okazji: czy GLSL i HLSL sa rownie kompatybilne z NVidia i ATI? bo z tego co kojarze to z HLSL jest ok, ale z GLSLem sa problemy (chyba) na NVidii
Jakoś nie miałem specjalnie problemów.

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 06, 2006, 00:41:25
Cytuj
z GLSLem sa problemy (chyba) na NVidii
Znajomy miał problemy z GLSL, ale na Radeonach (tzn. działało na GeForce'ach, a na Radeonach nie).

Cytuj
siłą rzeczy w ten sposób stworzone shadery będą chodzić dobrze także na kartach ATI
Może jeszcze drobna uwaga do tego, co powiedziałem - będą chodzić dobrze (chociaż niekoniecznie najlepiej, jak się da), o ile tylko uda Ci się je uruchomić. Napisałem w CG parallax mapping, który nie bardzo chciał chodzić na ATI pomimo tego, że cały silnik używa wyłącznie rozszerzeń ARB i EXT i nie jest szczególnie wymagający. Może to nie wina CG, ale niestety nie mam żadnego Radeona pod ręką, żeby to zdebugować.