PDA

View Full Version : Differenza tra Direct X e Open GL..


diafino
08-11-2004, 18:02
Che differenza c'è tra Direct X e Open GL?

BTinside
08-11-2004, 18:11
Come scusa?
ma da quanto tempo hai a che fare col mondo delle schede video?

Come si può avere da te che hai oltre 10.000 messaggi di esperienza una domanda dle genere?:confused: :rolleyes:

?!:confused:

strano però,

DNA_RNA
08-11-2004, 18:31
Originariamente inviato da diafino
Che differenza c'è tra Direct X e Open GL?
Sono due API diverse, cioè due librerie grafiche differenti.
Il directX è lo standard attualmente accettato dal mercato e bisogna ricordare che fa da standard non solo per il 3d, con Direct3D, ma anche per la musica, l'audio e altro.
Queste librerie sono supportate da Microsoft e, ormai, la parte a cui si presta maggior attenzione è quella grafica, attorno a cui ruotano le future tecnologie impiegate nei giochi.

L'OGL era uno standard fino a poco tempo fa, per poi essere abbandonato a favore delle DirectX.E' rimasto in vita perché Carmack lo usa per programmare, oltre al fatto che è molto usato per la grafica professionale.
A differenza delle DirectX, usa delle versioni di Shader più vecchie, ma che hanno comunque una resa grafica ottima ed inoltre è libero per chiunque voglia modificarlo.:)

diafino
08-11-2004, 18:31
Tutti hanno un loro campo..e molte volte da domante semplici impara anche uno che ha esperienza..

Vorrei andare a fondo della cosa, man mano... non limitarmi solo a dire che sono due librerie grafiche 3D e non solo... il loro scopo è quello di alleggerire il processore da pesanti calcoli, l' OpenGL circoscritta a pochi giochi come Half-Life e Quake II. Ha soprattutto il vantaggio d'essere "aperta" ovvero costruttore ha la libertà di aggiungere delle funzioni legate alle possibilità dei propri circuiti grafici; le DirectX sono invece sviluppate da Microsoft, alcune delle quali sono sotto il nome Direct3D.

sacd
08-11-2004, 18:36
Originariamente inviato da diafino
Tutti hanno un loro campo..e molte volte da domante semplici impara anche uno che ha esperienza..

Vorrei andare a fondo della cosa, man mano... non limitarmi solo a dire che sono due librerie grafiche 3D e non solo... il loro scopo è quello di alleggerire il processore da pesanti calcoli, l' OpenGL circoscritta a pochi giochi come Half-Life e Quake II. Ha soprattutto il vantaggio d'essere "aperta" ovvero costruttore ha la libertà di aggiungere delle funzioni legate alle possibilità dei propri circuiti grafici; le DirectX sono invece sviluppate da Microsoft, alcune delle quali sono sotto il nome Direct3D.
:mano:

DNA_RNA
08-11-2004, 18:40
Originariamente inviato da diafino
Tutti hanno un loro campo..e molte volte da domante semplici impara anche uno che ha esperienza..

Vorrei andare a fondo della cosa, man mano... non limitarmi solo a dire che sono due librerie grafiche 3D e non solo... il loro scopo è quello di alleggerire il processore da pesanti calcoli, l' OpenGL circoscritta a pochi giochi come Half-Life e Quake II. Ha soprattutto il vantaggio d'essere "aperta" ovvero costruttore ha la libertà di aggiungere delle funzioni legate alle possibilità dei propri circuiti grafici; le DirectX sono invece sviluppate da Microsoft, alcune delle quali sono sotto il nome Direct3D.
Appunto.:D

BTinside
08-11-2004, 18:43
Vorrei andare a fondo della cosa, man mano... non limitarmi solo a dire che sono due librerie grafiche 3D e non solo... il loro scopo è quello di alleggerire il processore da pesanti calcoli, l' OpenGL circoscritta a pochi giochi come Half-Life e Quake II. Ha soprattutto il vantaggio d'essere "aperta" ovvero costruttore ha la libertà di aggiungere delle funzioni legate alle possibilità dei propri circuiti grafici; le DirectX sono invece sviluppate da Microsoft, alcune delle quali sono sotto il nome Direct3D.

Ah allora lo sai, tu vuoi andare ancora più a fondo,
io pensavo invece che fosse la prima volta che senti dire OpenGl o D3D, per cui ero un po' stranizzato, è una cosa che sanno tutti.

Beh Carmack è da apprezzare, programmare in OpenGL per scopo ludico è più difficile di programmare con DirectX,
questo spiega anche i tanti anni voluti di programamzione di Doom3.
Lui è appassionato di questa API la regge in vita nei giochi, anzi l'ha retta in vita(si è ufficialmente ritirato dal ruolo di 3D programmer o quantomeno non produrranno più giochi dopo Quake IV), e ha dimostrato a tutti con D3 che se ne possono fare ancora oggi grandi cose

beejey
08-11-2004, 18:53
Si sa le migliori sono le opengl invece di quella cagata di directx di microsoft
:muro: :mad:
Purtroppo il monopolio della microsoft delle directx come internet explorer se i giochi giravano tutti opengl era meglio
Se Carmack usa solo le opengl ci sara un motivo senno poteva usare le directx per doom3 :D

BTinside
08-11-2004, 18:57
senno poteva usare le directx per doom3

....e gli sarebbe venuto anche più facile:D


Non buttiamo però così a terra la DirectX,
con la 9 si posso fare grandi cose oggi

diafino
08-11-2004, 19:05
Originariamente inviato da BTinside
Ah allora lo sai, tu vuoi andare ancora più a fondo,


Appunto..

Si arriva quindi a dedurre che le due librerie sono pensate per scopi differenti. OpenGL per la grafica 3D professionale mentre DirectX per scopi ludici.

In che cosa si differenziano le OpenGL affinche siano usate in ambito professionale, o meglio, che cosa si può fare a livello grafico con le OpenGL che con le DirectX non si può e contrario.

Grazie :)

fek
08-11-2004, 20:31
Originariamente inviato da beejey
Si sa le migliori sono le opengl invece di quella cagata di directx di microsoft
:muro: :mad:
Purtroppo il monopolio della microsoft delle directx come internet explorer se i giochi giravano tutti opengl era meglio
Se Carmack usa solo le opengl ci sara un motivo senno poteva usare le directx per doom3 :D

Evidentemente non hai mai provato a usare OpenGL o Direct3D, altrimenti faresti affermazioni decisamente diverse ;)

Originariamente inviato da diafino
In che cosa si differenziano le OpenGL affinche siano usate in ambito professionale, o meglio, che cosa si può fare a livello grafico con le OpenGL che con le DirectX non si può e contrario.

Grazie :)

Molto semplicemente, OpenGL e' usato in ambito professionale perche' esistono sue implementazioni per la maggior parte delle Workstation grafiche su svariate piattaforme.

Direct3D e' invece un set di specifiche proprietario che puo' essere solo implementato in ambiente Win32.

Per un gioco in ambiente Win32 non c'e' alcuna ragione (se non masochismo o religione) per scegliere OpenGL come base per un motore 3d.

Banus
08-11-2004, 20:47
Originariamente inviato da beejey
Purtroppo il monopolio della microsoft delle directx come internet explorer se i giochi giravano tutti opengl era meglio
Questa affermezione poteva avere senso prima delle DirectX 8, quando era facile trovare applicazioni in OpenGL che giravano più che degnamente. Con la mia GF2 MX le applicazioni OpenGL girano più veloci.

Ma ormai le DirectX offrono più funzionalità e soprattutto con maggiore anticipo rispetto alle OpenGL. Per avere un linguaggio di shader standarizzato si sono dovuti aspettare 2 anni, e nel frattempo gli sviluppatori DirectX hanno avuto a disposizione l'HLSL.

Le OpenGL non sono nate per la grafica dei videogiochi. Sono state usate (soprattutto in passato) perchè eran un'API già pronta e molto ben strutturata. Le GLide di 3dfx sono state definite ispirandosi alle OpenGL. Le DirectX invece erano ancora immature. Ora la situazione si è invertita.

BTinside
08-11-2004, 20:59
Evidentemente non hai mai provato a usare OpenGL o Direct3D, altrimenti faresti affermazioni decisamente diverse

E ci ho visto giusto 2 volte, è più difficile programmare in OpenGL e non ce n'è motivo,
inoltre a mio parere con questa API non si ottiene una grande vastità d'ambiente.:D

Carmack però se la cava bene con le OpenGl eh..

BTinside
08-11-2004, 21:00
Le DirectX invece erano ancora immature. Ora la situazione si è invertita.
Perfetto;)

diafino
15-11-2004, 23:00
up

BTinside
16-11-2004, 09:52
Originariamente inviato da diafino
up

Non capisco perchè tutti i motori grafici OpenGL per videogame ,tranne i Serious Sam, sono caratterizzati da spazi di esplorazione angusti.

Sempre modelli poligonali compatti e allungati, muri e tetti e pareti tutti d'un pezzo (Quake III o Doom 3 o Serious Sam) mai modelli minuziosi come quelli D3D, anche effetti come fuoco o acqua (tranne che in doom3) sono renderizzati poligonalmente (il fuoco a pallini nella demo GlExcess)
Inoltre nei giochi Direct3D come Far Cry o Painkiller la libertà di esplorazione è mooooolto vasta , e cmq da gioco a gioco , solitamente mai angusta come i giochi Ogl.


A tal proposito, per dimostrare ciò chiedo:
Come mai in OpenGl non ci fanno una simulazione di guida??


Non oso immagginare quei modelli poligonali delle auto , tutti d'un pezzo, che sembrano scivolare per la pista come il burro sulla padella.
Qualcuno mi spiega il perchè di questa caratteristica dell'ogl?
So già cmq che è nato per la grafica professionale ed è stato usato da Carmack per i giochi.

Questa API sembra adatta solo ai First Person Shooter e sembra poco flessibile per altri generi di giochi.

Inoltre secondo voi, se le schede video per gamers abolissero il multi-standard per diventare solo Direct3D abbandonando la compatibilità OpenGL, ne guadagnerebbero in prestazioni?

Banus
16-11-2004, 10:40
Originariamente inviato da BTinside
Non capisco perchè tutti i motori grafici OpenGL per videogame ,tranne i Serious Sam, sono caratterizzati da spazi di esplorazione angusti.
Serious Sam è un caso a parte. Per gestire spazi vasti, e soprattutto le tonnellate di nemici che ti aggredivano di volta in volta, ricorreva a 6 livelli di dettaglio precalcolati per ogni oggetto.
Fek ti saprà dire qualcosa di più ;)

Sempre modelli poligonali compatti e allungati, muri e tetti e pareti tutti d'un pezzo (Quake III o Doom 3 o Serious Sam) mai modelli minuziosi come quelli D3D, anche effetti come fuoco o acqua (tranne che in doom3) sono renderizzati poligonalmente (il fuoco a pallini nella demo GlExcess)
Inoltre nei giochi Direct3D come Far Cry o Painkiller la libertà di esplorazione è mooooolto vasta , e cmq da gioco a gioco , solitamente mai angusta come i giochi Ogl.
Dalla mia limitata esperienza di programmazione in OGL e D3D ti posso dire che entrambe permettono di accelerare la visualizzazione della geometria, forse un po' più flessibile D3D. A parte Doom3, tutti i giochi recenti basati su OGL sfruttano il motore di Quake 3 che non ha gestione del LOD e sfrutta un algoritmo di occlusion culling pensato per spazi chiusi.
Riguardo alla mancanza di texture animate, credo sia un limite di OGL che con le istruzioni standard permette di usare solo texture statiche (si possono cambiare dinamicamente solo le coordinate texture).

Provate a immagginare quei modelli poligonali delle auto , tutti d'un pezzo, che sembrano scivolare per la pista come il burro sulla padella.
Qualcuno mi spiega il perchè di questa caratteristica dell'ogl?
Provo a indovinare... matrix skinning? Può darsi che gli artisti creano un'unico oggetto "auto" invece di "carrozzeria" e "ruote" e passano tutto ai programmatori. In D3D tutto ok, in OGL... ma chi ce lo fa fare? :D

Alberto Falchi
16-11-2004, 10:48
Originariamente inviato da BTinside

A tal proposito, per dimostrare ciò chiedo:
Come mai in OpenGl non ci fanno una simulazione di guida??


La serie Nascar Racing di Papyrus ha anche driver OGL, che permettono di ottenere qualche FPS in più ^_^.


Inoltre secondo voi, se le schede video per gamers abolissero il multi-standard per diventare solo Direct3D abbandonando la compatibilità OpenGL, ne guadagnerebbero in prestazioni?

Non credo proprio: è una questione di soli driver, non penso vada a influenzare l'architettura del chip.

Pape

Banus
16-11-2004, 11:06
Originariamente inviato da BTinside
Questa API sembra adatta solo ai First Person Shooter e sembra poco flessibile per altri generi di giochi.
Perchè la sfrutta solo Carmack :asd:

Inoltre secondo voi, se le schede video per gamers abolissero il multi-standard per diventare solo Direct3D abbandonando la compatibilità OpenGL, ne guadagnerebbero in prestazioni?
Ti ha risposto perfettamente GMCPape, è solo una questione di driver. Ora le feature implementate sono stabilite da MS con le sue DirectX, quindi di fatto è come se ci fosse un solo standard... comunque per praticamente ogni funzionalità esposta da D3D c'è la corrispondente estenzione (ARB o proprietaria) in OGL. Anzi, in passato succedeva che molte feature proprietarie erano accessibili subito da OGL e non da D3D, fino a quando non erano incorporate nello standard.

Infatti le DirectX hanno permettono l'uso di estensioni solo dalla versione 8.

sslazio
16-11-2004, 11:29
ma veramente se non ricordo male call of duty è fatto in open gl e non direi sia fatto male e che visualizza spazzi pingoli ed angusti anzi, direi che non solo permette di avere una ampia visuale ma addirittura permette l'utilizzo di un elevattissimo numero di persone a video perfettamente animate quando in un gioco direct 3d di solito se ne vedono decisamente meno.

BTinside
16-11-2004, 11:52
Originariamente inviato da sslazio
ma veramente se non ricordo male call of duty è fatto in open gl e non direi sia fatto male e che visualizza spazzi pingoli ed angusti anzi, direi che non solo permette di avere una ampia visuale ma addirittura permette l'utilizzo di un elevattissimo numero di persone a video perfettamente animate quando in un gioco direct 3d di solito se ne vedono decisamente meno.

Si , e ci hai fatto caso quanto scende il framerate qundo ci sono più personaggi su schermo e quando guardi verso gli spazi aperti?? in modo drastico, cosa che non succede in D3d

BTinside
16-11-2004, 11:54
Originariamente inviato da GMCPape
La serie Nascar Racing di Papyrus ha anche driver OGL, che permettono di ottenere qualche FPS in più ^_^.



Non credo proprio: è una questione di soli driver, non penso vada a influenzare l'architettura del chip.

Pape


Vabè io intendo dire driver a parte, se si progettassero sin dal principio architetture non compatibili con le OpenGL, ma nativamente solo ed esclusivamente D3d.


Ragazzi ho chiesto aiuto nella sezione tech demo riguardo la tech demo Ruby, potete aiutarmi lì?

Alberto Falchi
16-11-2004, 11:58
Originariamente inviato da BTinside
Vabè io intendo dire driver a parte, se si progettassero sin dal principio architetture non compatibili con le OpenGL, ma nativamente solo ed esclusivamente D3d.



no, perché ogl e d3d fanno esattamente la stessa cosa: sono solo due astraziopni diverse della stessa architettura

Pape

BTinside
16-11-2004, 12:10
Originariamente inviato da GMCPape
no, perché ogl e d3d fanno esattamente la stessa cosa: sono solo due astraziopni diverse della stessa architettura

Pape

Capito in pieno;)
grazie per le informazioni e per i chiarimenti:)