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

Offline azorek

  • Użytkownik

# Kwiecień 06, 2006, 11:15:39
Cytuj
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.

Nie wiem jak w CG ale HLSL kompilujac w locie dostosowywal wygenerowany kod do istniejacego sprzetu, dlatego wczesniejsza generacja shaderow w asm nie jest tak uniwersalna. Zreszta ja nie mowie ze CG jest be, tylko przedstawiam swoje watpliwosci :)

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". :)
Oczywiste jest ze jezeli robisz renderer, to bedziesz chcial zrobic takze wlasny interfejs dla materialow, ale kto powiedzial ze jedna z implementacji tego interfejsu nie moze byc wlasnie plik efektow. Ogranicza to sporo pracy przynajmniej na poczatku. Co do skladania w locie to nie wydaje mi sie to przeszkoda. Ten mini jezyk zastosowany w plikach efektow pozwala na dokladanie swoich funkcjonalnosci, wiec nic nie stoi na przeszkodzie zeby dostosowac fx-y do swoich potrzeb.

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. :)

Oczywiscie, ale poniewaz wczesniej zostala poruszona kwestia uzupelniania kodu, to pozwolilem sobie dodac swoje 3 grosze :) Obiektowosc w directx sprowadza sie do tego, ze zbudowany jest na bazie obiektow com. Ale samo uzywanie funkcji directx nie rozni sie praktycznie niczym od uzywania funkcji ogl-a. Dopiero managed direct x wprowadzil wiecej mechanizmow obiektowych.

Pozdrawiam

Offline Mr. Spam

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

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Kwiecień 06, 2006, 15:58:20
Nie wiem jak w CG ale HLSL kompilujac w locie dostosowywal wygenerowany kod do istniejacego sprzetu, dlatego wczesniejsza generacja shaderow w asm nie jest tak uniwersalna. Zreszta ja nie mowie ze CG jest be, tylko przedstawiam swoje watpliwosci :)

CG takze moze kompilowac w locie. Dokladnie tak samo jak HLSL.

Offline azorek

  • Użytkownik

# Kwiecień 07, 2006, 10:44:52
CG takze moze kompilowac w locie. Dokladnie tak samo jak HLSL.

Wiem ze moze :) Nawiazywalem do tego ze  CG mozna tez uzyc tylko jako kompilatora i potem uzywac asmowych shaderow. Wtedy traci sie ta funkcjonalnosc.


Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 07, 2006, 11:03:50
Cytuj
Nawiazywalem do tego ze  CG mozna tez uzyc tylko jako kompilatora i potem uzywac asmowych shaderow. Wtedy traci sie ta funkcjonalnosc.
Dlaczego? Dołączasz CG do projektu i możesz kompilować do asma w locie. :)

maxest

  • Gość
# Kwiecień 16, 2006, 23:50:58
dorzuce swoje 4 grosze

1
prawda jest taka ze opengl (dla mnie przynajmniej) jest latwiejszy w inicjalizacji i uzyciu tzn mniej lini kodu
nie chce uzywac dx bo mam do czynienia wtedy z com a nie lubie tego wymyslu Microsoftu
natomiast b.lubie c a opengl sie do tego jezyka nadaje idealnie tzn nie wymaga odemnie dodatkowej pracy jak w dx tzn tworzenie jakis struktur, danych itd potrzebnych do inicjalizacji jakis tam rzeczy
widac ze opengl jest madrze zaprojektowany (mysle o api)
pozatym bardziej mi sie podoba grafika ogl

2
mysle, ze powinnismy uzywac tego co jest calkiem darmowe i bez licencji bo gdyby pozostal tylko dx na polu bitwy to nie wiadomo czy mozna by bylo robic gry za darmo a wiadomo, ze firma Ms. lubi pieniadze
natomiast ogl nie jest wspierany przez pieniadze a nauke
dzieki
:)

maxest

  • Gość
# Kwiecień 16, 2006, 23:59:16
Cytuj
mysle, ze powinnismy uzywac tego co jest calkiem darmowe i bez licencji bo gdyby pozostal tylko dx na polu bitwy to nie wiadomo czy mozna by bylo robic gry za darmo a wiadomo, ze firma Ms. lubi pieniadze
natomiast ogl nie jest wspierany przez pieniadze a nauke
dzieki
Ostatnie korki microsoftu (np. Udostępnienie za darmo VSExpress) stanowczo zaprzeczają temu stwierdzeniu. Poza tym MS nigdy by nie kazał płacić sobie za coś co jest źródłem gier, czyli jeden z głównych atutów tego systemu.

pozdro
spax.

maxest

  • Gość
# Kwiecień 17, 2006, 00:27:14
Cytuj
mysle, ze powinnismy uzywac tego co jest calkiem darmowe i bez licencji bo gdyby pozostal tylko dx na polu bitwy to nie wiadomo czy mozna by bylo robic gry za darmo a wiadomo, ze firma Ms. lubi pieniadze
natomiast ogl nie jest wspierany przez pieniadze a nauke
dzieki
Ostatnie korki microsoftu (np. Udostępnienie za darmo VSExpress) stanowczo zaprzeczają temu stwierdzeniu. Poza tym MS nigdy by nie kazał płacić sobie za coś co jest źródłem gier, czyli jeden z głównych atutów tego systemu.

pozdro
spax.

i dlatego kompilatora c++ mam zmienic zdanie?
dla mnie to jest zacheta na przyciaganie klientow zwykly chwyt reklamowy
jeszcze raz mowie dx jest oblozony licencjami (czyli prawami) a ja nie bede czytal zadnych licencji bo po co?
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows
i to ma byc darmowy directx?
chyba sie komus pomylilo znaczenie slowa 'darmowy'



maxest

  • Gość
# Kwiecień 17, 2006, 00:31:26
Cytuj
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows
hans_: hehe nie mamy o czym rozmawiac

pozdro
spax.

maxest

  • Gość
# Kwiecień 17, 2006, 00:35:01
i dlatego kompilatora c++ mam zmienic zdanie?
dla mnie to jest zacheta na przyciaganie klientow zwykly chwyt reklamowy
jeszcze raz mowie dx jest oblozony licencjami (czyli prawami) a ja nie bede czytal zadnych licencji bo po co?
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows
i to ma byc darmowy directx?
chyba sie komus pomylilo znaczenie slowa 'darmowy'

OpenGL też jest na jakiejś licencji. Pozwala na darmowe używanie, ale jest ;)

Cytuj
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows


Tak...M$ sformatuje ci dysk, a potem spali płyte główną, żebyś nie mógł zainstalować jeszcze raz ;)
« Ostatnia zmiana: Kwiecień 17, 2006, 00:37:38 wysłana przez Antrykot »

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 17, 2006, 00:46:58
Cytuj
1
prawda jest taka ze opengl (dla mnie przynajmniej) jest latwiejszy w inicjalizacji i uzyciu tzn mniej lini kodu
nie chce uzywac dx bo mam do czynienia wtedy z com a nie lubie tego wymyslu Microsoftu
natomiast b.lubie c a opengl sie do tego jezyka nadaje idealnie tzn nie wymaga odemnie dodatkowej pracy jak w dx tzn tworzenie jakis struktur, danych itd potrzebnych do inicjalizacji jakis tam rzeczy
widac ze opengl jest madrze zaprojektowany (mysle o api)
pozatym bardziej mi sie podoba grafika ogl
1. OpenGL nie jest łatwiejsza do Direct3D - nadal musisz stworzyć okno i różne inne dziwne rzeczy. W przypadku Direct3D tych rzeczy jest nawet nieco mniej.
2. Budowa API to kwestia własnego upodobania - niektórzy wolą czytelność API Direct3D, a zmorą dla nich jest system rozszerzeń OpenGL.
3. Grafika OpenGL jest identyczna, jak grafika Direct3D. Oba API komunikują się z tą samą kartą graficzną i starają się udostępnić wszystkie jej możliwości, więc programista jest w stanie osiągnąć identyczne rezultaty niezależnie od użytego API. Pisanie rzeczy w stylu "bardziej podoba mi się grafika OpenGL" świadczy tylko o nieznajomości problemu i negatywnym nastawieniu do Microsoftu. :)

Cytuj
2
mysle, ze powinnismy uzywac tego co jest calkiem darmowe i bez licencji bo gdyby pozostal tylko dx na polu bitwy to nie wiadomo czy mozna by bylo robic gry za darmo a wiadomo, ze firma Ms. lubi pieniadze
natomiast ogl nie jest wspierany przez pieniadze a nauke
dzieki
OpenGL nie jest darmowy i ma licencję. Poza tym widać, że niektórzy niecierpią Microsoftu i wyciągają pochopne wnioski. OpenGL nie umrze, bo ma solidne podstawy i darmowy standard zawsze będzie potrzebny, więc zawsze będzie istniała przeciwwaga dla Direct3D. Direct3D pozostanie darmowy, bo to opłaca się Microsoftowi - dzięki temu właśnie Direct3D może nauczyć się każdy.

Cytuj
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows
i to ma byc darmowy directx?
chyba sie komus pomylilo znaczenie slowa 'darmowy'
Możesz mieć problemy z odpaleniem Linuksa, jeżeli nie masz komputera, ale nie zmienia to faktu, że Linuks jest darmowy. Przyczepiając się w ten sposób można podważyć także darmowość całego softu na GPL. Poza tym, po co Ci Direct3D, skoro nie masz Windowsa?

Cytuj
Tak...M$ sformatuje ci dysk, a potem spali płyte główną, żebyś nie mógł zainstalować jeszcze raz
Żeby sciagnąć niektóre pliki ze strony Microsoftu trzeba przejść przez proces weryfikacji legalności Windowsa, więc dla użytkowników pirackich kopii sciagnięcie DirectX SDK może być problemem.

maxest

  • Gość
# Kwiecień 17, 2006, 00:52:37
Cytuj
Żeby sciagnąć niektóre pliki ze strony Microsoftu trzeba przejść przez proces weryfikacji legalności Windowsa, więc dla użytkowników pirackich kopii sciagnięcie DirectX SDK może być problemem.

Zawsze pozostaje darmowa alterantywa...emule :P Właśnie sprawdziłem, i jest 9.0c October. Troche mało źródeł, ale jest.

maxest

  • Gość
# Kwiecień 17, 2006, 02:00:11
przeciez microsoft nawet udostepnia kompilator za friko
widac hans_ ze nienawidzisz m-soft'u i w ciemno gdyby ogl byl ich produktem to bys tak samo plul na niego jak teraz na d3d. ja tego nie rozumiem co sie niektorzy ludzie tak antymicrosoftowo nastawili. a prawda jest taka ze ta firma wiele wniosla w rozwoj tego wszystkiego

maxest

  • Gość
# Kwiecień 17, 2006, 02:01:11
przeciez microsoft nawet udostepnia kompilator za friko
widac hans_ ze nienawidzisz m-soft'u i w ciemno gdyby ogl byl ich produktem to bys tak samo plul na niego jak teraz na d3d. ja tego nie rozumiem co sie niektorzy ludzie tak antymicrosoftowo nastawili. a prawda jest taka ze ta firma wiele wniosla w rozwoj tego wszystkiego

i dlatego kompilatora c++ mam zmienic zdanie?
dla mnie to jest zacheta na przyciaganie klientow zwykly chwyt reklamowy
jeszcze raz mowie dx jest oblozony licencjami (czyli prawami) a ja nie bede czytal zadnych licencji bo po co?
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows
i to ma byc darmowy directx?
chyba sie komus pomylilo znaczenie slowa 'darmowy'


Opengl nie jest na zadnej licencji! co Wy piszecie!
kto tu zna opengl?

Przeczytaj sobie 1 zdanie tej odpowiedzi
I'm a software developer and just want to use the OpenGL API. Do I need to have a license?

Applications developers do not need to license the OpenGL API. If a developer wants to use the OpenGL API, that developer needs to obtain copies of a linkable OpenGL library for a particular machine or hardware device. Those OpenGL libraries may be bundled in with the development and/or run-time options or may be purchased from a third-party software vendor without licensing the source code or use of the OpenGL® trademark.

http://www.sgi.com/products/software/opengl/faq.html
http://www.opengl.org/about/licensing/

Cytuj
a po drugie mozesz miec problemy ze sciagnieciem dx sdk jesli nie masz orygiala windows

nie chce miec problemow wiec dziekuje panom z ms

i powtorze 3 raz to co pisalem wczesniej
ogl jest darmowy i dx jest 'darmowy'
tylko jeden jest dostepny wszystkim w 100% a drugi z jakimis uwarunkowaniami
tyle
zreszta OpenGL to nie tylko gry to jest tylko jedna z wielu dziedzin gdzie jest wykorzystywany

wejdzcie sobie na strone sgi to zobaczycie gdzie ogl jest wykorzystywny min systemy wojskowe, medycyna, nauka
dx nigdy nie bedzie bo nie ma conformance tests ale to juz inna bajka

zreszta to tylko renderer a jesli chodzi o gry to z 20% roboty, bo gra to tez fizyka, ai itd
i to jest o wiele bardziej trudne do zrealizowania
thx

maxest

  • Gość
# Kwiecień 17, 2006, 02:21:58
d3d ma rownie wiele zastosowan co ogl. rowniez symulacje medyczne czy wizualizacje. d3d i ogl daja dokladnie te same rezultaty - przeciez jedno i drugie to tylko ulatwiony dostep do k. graficznej!

Cytuj
zreszta to tylko renderer a jesli chodzi o gry to z 20% roboty, bo gra to tez fizyka, ai itd
i to jest o wiele bardziej trudne do zrealizowania

trudniejsze? kazdy z elementow gry (rendering, siec, dzwiek, fizyka, ai) jest rownie zlozony i kazdy to temat-rzeka. nie ma tu "latwiejszych" i "trudniejszych" czesci. jeden zna sie dobrze na tym, drugi na tym. powinno sie dazyc do perfekcji w jednej dziedzinie, w ktorej sie czuje najlepiej (chyba ze ktos jest baaaaaaaaaardzo ambitny :))

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Kwiecień 17, 2006, 02:29:36
Cytuj
Opengl nie jest na zadnej licencji! co Wy piszecie!
kto tu zna opengl?

Przeczytaj sobie 1 zdanie tej odpowiedzi
Przeczytaj jej resztę. ;) Żeby korzystać z OpenGL nie licencjonuje się bezpośrednio samego OpenGL, ale trzeba nabyć prawa do korzystania z którejś z jego implementacji. Te prawa są najczęściej za free, ale to już zależy od konkretnej implementacji (skorzystać z OpenGL na PS3 nie będzie tak łatwo) i zawsze jest jakaś licencja (choćby GPL).

Cytuj
ogl jest darmowy i dx jest 'darmowy'
tylko jeden jest dostepny wszystkim w 100% a drugi z jakimis uwarunkowaniami
OpenGL nie jest darmowy. Właśnie z powodu braku licencji biblioteka Mesa nie może nazywać się implementacją OpenGL, chociaż jest z OpenGL w 100% kompatybilna.

Cytuj
zreszta OpenGL to nie tylko gry to jest tylko jedna z wielu dziedzin gdzie jest wykorzystywany

wejdzcie sobie na strone sgi to zobaczycie gdzie ogl jest wykorzystywny min systemy wojskowe, medycyna, nauka
dx nigdy nie bedzie bo nie ma conformance tests ale to juz inna bajka
Nie przeczę, że w innych dziedzinach OpenGL dominuje. Jednakże, jeżeli chodzi o gry, to Direct3D zaczyna powoli dominować.

Cytuj
zreszta to tylko renderer a jesli chodzi o gry to z 20% roboty, bo gra to tez fizyka, ai itd
i to jest o wiele bardziej trudne do zrealizowania
thx
OpenGL to nie renderer, tylko API graficzne. Poza tym, temat jest o OpenGL i Direct3D, a nie o innych elementach gier, chociaż, swoją drogą, po komercyjnych grach wygląda na to, że renderer i grafika to grubo ponad te 20%. :)