PDA

View Full Version : Interessante articolo di programmatori su OpenGL vs directX


andrew
09-01-2010, 12:39
Se a più esperti del settore interessa approfondire ho trovato un analitico articolo in inglese da parte esperti del settore ( con botta e risposta) circa la superiorità dell'OpenGL e il suo boicottaggio di MS a favore delle directX .

Non sono esperto ma mi è parso utile:

http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

ciao

II ARROWS
09-01-2010, 13:32
Mah, in quell'articolo parlano di FUD, ma io lo vedo solo verso DirectX il fud...

Anche perché dicono che Microsoft voglia prendersi il merito per la tassellazione dicendo come l'estensione per OpenGL ci sia da 3 anni... la tassellazione c'è per Xbox 360... quindi è venuta prima su DirectX. E AMD l'ha implementata dalle Radeon 9000... quindi non la vedo tutta questa velocità di OpenGL nel supportare le funzionalità hardware. :rolleyes:

john18
09-01-2010, 14:09
Mah, in quell'articolo parlano di FUD, ma io lo vedo solo verso DirectX il fud...

Anche perché dicono che Microsoft voglia prendersi il merito per la tassellazione dicendo come l'estensione per OpenGL ci sia da 3 anni... la tassellazione c'è per Xbox 360... quindi è venuta prima su DirectX. E AMD l'ha implementata dalle Radeon 9000... quindi non la vedo tutta questa velocità di OpenGL nel supportare le funzionalità hardware. :rolleyes:


Permettimi ma la tessellazione è data come feature esclusiva directx 11. Oltretutto dovrebbe essere proprio la punta di diamante di queste nuove api...Il che mi fa pensare che se fosse come dici te,qualcuno ci stia prendendo in giro!:rolleyes:

javaboy
09-01-2010, 14:36
A me sembra il solito articolo anti microsoft......
Tra parentesi DirectX e opengl non sono due librerie direttamente confrontabili in quanto opengl offre solamente funzionalità legate alla grafica mentre directX è un vero e proprio SDK per lo sviluppo di giochi. DirectX offrono funzionalità legate al networking, all'audio, all'input....

Ashgan83
09-01-2010, 14:48
A me sembra il solito articolo anti microsoft......
Tra parentesi DirectX e opengl non sono due librerie direttamente confrontabili in quanto opengl offre solamente funzionalità legate alla grafica mentre directX è un vero e proprio SDK per lo sviluppo di giochi. DirectX offrono funzionalità legate al networking, all'audio, all'input....


A me sembra invece che tu neanche l'abbia letto l'articolo, visto che quanto dici viene ovviamente citato e viene anche detto che questo è sì un limite di opengl ma è anche un pregio in quanto l'occuparsi della sola grafica gli permette di girare praticamente su qualsiasi sistema operativo.

AnonimoVeneziano
09-01-2010, 14:53
A me sembra il solito articolo anti microsoft......
Tra parentesi DirectX e opengl non sono due librerie direttamente confrontabili in quanto opengl offre solamente funzionalità legate alla grafica mentre directX è un vero e proprio SDK per lo sviluppo di giochi. DirectX offrono funzionalità legate al networking, all'audio, all'input....

A dire il vero la microsoft sta piano piano dismettendo tutte le API delle directX diverse dal 3D. DirectInput è fermo alla versione 8 uscita originariamente con DX8 . La microsoft consiglia di usare le API di gestione di mouse e tastiera standard di Windows anzichè le DirectInput e XInput per la gestione dei Joystick (come quello della 360) .Stessa cosa per le DirectSound che è in sostituzione da parte di XAudio o dalle api del sistema operativo . DirectPlay non l'ha mai usato nessuno. DirectDraw è in disuso da anni.

Insomma, l'unica API delle DX usata oggi giorno è Direct3D e le altre esistono ancora solo per retrocompatibilità e stanno piano piano essendo rimpiazzate da layer di emulazione (nei nuovi sistemi operativi) che traducono le chiamate DirectSound/Play/Input direttamente a chiamate alle nuove librerie o alle API low-level del sistema operativo.

Ciao

javaboy
09-01-2010, 15:18
A dire il vero la microsoft sta piano piano dismettendo tutte le API delle directX diverse dal 3D. DirectInput è fermo alla versione 8 uscita originariamente con DX8 . La microsoft consiglia di usare le API di gestione di mouse e tastiera standard di Windows anzichè le DirectInput e XInput per la gestione dei Joystick (come quello della 360) .Stessa cosa per le DirectSound che è in sostituzione da parte di XAudio o dalle api del sistema operativo . DirectPlay non l'ha mai usato nessuno. DirectDraw è in disuso da anni.

Insomma, l'unica API delle DX usata oggi giorno è Direct3D e le altre esistono ancora solo per retrocompatibilità e stanno piano piano essendo rimpiazzate da layer di emulazione (nei nuovi sistemi operativi) che traducono le chiamate DirectSound/Play/Input direttamente a chiamate alle nuove librerie o alle API low-level del sistema operativo.
Ciao

Si tratta sempre e comunque di api perfettamente integrate con directX e disponibili solo su sistemi microsoft. Se decidi di usarle ha poco senso utilizzare opengl al posto di direct3d....

AnonimoVeneziano
09-01-2010, 15:33
Si tratta sempre e comunque di api perfettamente integrate con directX e disponibili solo su sistemi microsoft. Se decidi di usarle ha poco senso utilizzare opengl al posto di direct3d....

A dire il vero sono librerie indipendenti dalle directx, anzi, le diverse librerie delle directx a loro volta erano librerie separate distribuite sotto un unico nome e nessuno impediva di utilizzare DirectSound con OpenGL ignorando completamente Direct3D e tutte le altre componenti delle directX come se neanche esistessero.

Lo stesso vale per queste nuove librerie.

In ogni caso l'unica libreria che ha senso utilizzare tra quelle che ho nominato è XAudio, facilmente sostituibile da altre librerie audio se si vuole avere un alternativa Cross-platform.

Estwald
09-01-2010, 17:19
questo è sì un limite di opengl ma è anche un pregio in quanto l'occuparsi della sola grafica gli permette di girare praticamente su qualsiasi sistema operativo.

Non capisco il senso di questa affermazione. Occuparsi della sola grafica non è condizione necessaria o sufficiente perché possa girare su qualsiasi piattaforma, infatti anche Direct3D si occupa esclusivamente di grafica.

Comunque l'articolo solleva degli aspetti interessanti e sui quali posso anche concordare, ma criticando la campagna marketing di Microsoft sembra mettersi sullo stesso piano evitando di fare una vera comparazione tra OpenGL e Direct3D, o comunque evitando di scendere su aspetti più tecnici legati all'uso delle api o all'astrazione che si introduce nelle applicazioni per poter passare più facilmente dall'una all'altra.

Non si fa praticamente menzione del fatto che DirectX si è evoluta attraverso una serie di release mentre, al tempo stesso, OpenGL è rimasta ferma, vedi articolo su Tom's Hardware di qualche tempo fa. Si cita Carmack, ma si glissa sull'ottimo giudizio che ha espresso verso DX9.

Ashgan83
09-01-2010, 17:34
Non capisco il senso di questa affermazione. Occuparsi della sola grafica non è condizione necessaria o sufficiente perché possa girare su qualsiasi piattaforma, infatti anche Direct3D si occupa esclusivamente di grafica.

Da wiki:

Al fine di imporre le sue caratteristiche multi-linguaggio e multi-piattaforma, vari binding e port sono stati sviluppati per OpenGL in molti linguaggi. Tra i più notevoli, la libreria Java 3D può appoggiarsi su OpenGL per sfruttare l'accelerazione hardware. Molto recentemente, Sun ha rilasciato le versioni beta del sistema JOGL, che fornisce binding ai comandi OpenGL in C, diversamente da Java 3D che non fornisce tale supporto a basso livello. La pagina OpenGL ufficiale [2] elenca vari bindings per i linguaggi Java, Fortran 90, Perl, Pike, Python, Ada, e Visual Basic. I binding sono disponibili anche per C++ e C#, vedere [3].

II ARROWS
09-01-2010, 18:57
Da wiki:

Al fine di imporre le sue caratteristiche multi-linguaggio e multi-piattaforma, vari binding e port sono stati sviluppati per OpenGL in molti linguaggi. Tra i più notevoli, la libreria Java 3D può appoggiarsi su OpenGL per sfruttare l'accelerazione hardware. Molto recentemente, Sun ha rilasciato le versioni beta del sistema JOGL, che fornisce binding ai comandi OpenGL in C, diversamente da Java 3D che non fornisce tale supporto a basso livello. La pagina OpenGL ufficiale [2] elenca vari bindings per i linguaggi Java, Fortran 90, Perl, Pike, Python, Ada, e Visual Basic. I binding sono disponibili anche per C++ e C#, vedere [3].E con ciò? Che cosa centra con questa discussione?

Ma l'hai letto quello che ha copiato? Bene, si possono chiamare le OpenGL da tanti linguaggi... e allora? Vuoi fare un gioco in Fortran?

Ashgan83
09-01-2010, 19:09
E con ciò? Che cosa centra con questa discussione?

Ma l'hai letto quello che ha copiato? Bene, si possono chiamare le OpenGL da tanti linguaggi... e allora? Vuoi fare un gioco in Fortran?


Non ho ben capito che vuoi, ho solo risposto a estwald che chiedeva il motivo per il quale le opengl lavorano su diverse piattaforme. Non mi pare difficile.

II ARROWS
09-01-2010, 19:11
Ah, ma non è per quello che sono multi piattaforma...

Per essere multipiattaforma devono, appunto, supportare più piattaforme e ciò non ha nulla a che fare con i linguaggi di programmazione da cui possono essere richiamate.

Estwald
09-01-2010, 20:21
ho solo risposto a estwald che chiedeva il motivo per il quale le opengl lavorano su diverse piattaforme.

Non ho chiesto questo. In precedenza hai affermato (o riportato) che il fatto di occuparsi esclusivamente di grafica permette ad OpenGL di girare su qualsiasi piattaforma. Per me ciò non ha senso.

Se OpenGL è un'api standardizzata, di suo non gira da nessuna parte. Piuttosto vengono sviluppate delle implementazioni, in alcuni casi dai produttori hardware, in altri casi da progetti indipendenti come Mesa. Poi, queste implementazioni/librerie possono essere utilizzate in applicazioni scritte con linguaggi diversi ma questo è un altro aspetto.

Il fatto che una libreria sia disponibile su piattaforme diverse non dipende dall'essere più o meno specializzata, ma dal consenso e dall'interesse che vi ruotano attorno. Dietro OpenGL gravita un nucleo di aziende che producono hardware e software, dietro DirectX c'è esclusivamente Microsoft. L'ultima versione di OpenGL sembra essere stata fortemente condizionata dai produttori di applicativi cad o simili che chiedevano maggiore retrocompatibilità. Sul versante Microsoft, ovviamente, si fanno scelte diverse.

Estwald
09-01-2010, 20:30
A dire il vero la microsoft sta piano piano dismettendo tutte le API delle directX diverse dal 3D.

Però l'articolo, parlando di "fud" Microsoft, copre un periodo di tempo in cui quelle api erano pienamente supportate, quindi penso che l'appunto di javaboy sia sensato. Se all'epoca sono state ignorate lo si sarebbe dovuto specificare, diversamente sembra un comodo sorvolare.

RoMZERO
09-01-2010, 20:44
come si siano evolute le opengl ora non lo so, non ho più seguito la diatriba con d3d... ma non molti anni fa lo stesso Carmack disse che le opengl erano dannatamente superiori e non a caso programmava i suoi giochi proprio su queste api ;)
come tutti sanno Carmack, oltre che geniaccio, è uno senza peli sulla lingua... ha sempre esposto critiche laddve c'era da criticare con cognizione di causa, tant'è che non poco tempo fa ha bacchettato tutte le console definite erronamente, a suo dire, next-gen

edit: non avevo letto l'articolo prima di postare e ora, leggendolo, trovo proprio una citazione di Carmack :asd:

II ARROWS
09-01-2010, 20:56
come tutti sanno Carmack, oltre che geniaccio, è uno senza peli sulla lingua... ha sempre esposto critiche laddve c'era da criticare con cognizione di causa, tant'è che non poco tempo fa ha bacchettato tutte le console definite erronamente, a suo dire, next-genE ti ricordi la sua contro affermazione più recentemente? :rolleyes:
Carmak per me è stato un pagliaccio, che ha migliorato i suoi spettacoli.

Niente a che fare con quello che era all'inizio.

Estwald
09-01-2010, 21:00
come tutti sanno Carmack, oltre che geniaccio, è uno senza peli sulla lingua... ha sempre esposto critiche laddve c'era da criticare con cognizione di causa, tant'è che non poco tempo fa ha bacchettato tutte le console definite erronamente, a suo dire, next-gen

edit: non avevo letto l'articolo prima di postare e ora, leggendolo, trovo proprio una citazione di Carmack :asd:

Aggiornati:
http://www.dailytech.com/John+Carmack+Speaks+on+DX10+Vista+Xbox+360+PS3+Wii/article5665.htm

"DX9 is really quite a good API level … Microsoft has done a very, very good job of sensibly evolving it at each step--they’re not worried about breaking backwards compatibility--and it’s a pretty clean API,” he said. “I especially like the work I’m doing on the 360, and it’s probably the best graphics API as far as a sensibly designed thing that I’ve worked with."

Estwald
09-01-2010, 21:02
Niente a che fare con quello che era all'inizio.

Perché questo astio? Nel caso, basta anche un link ad un'altra discussione sul tema.

II ARROWS
09-01-2010, 21:10
Per questo speravo che se lo ricordasse, visto che non saprei dove ritrovare la notizia...

In pratica elogiava le console, visto che ospiteranno il suo prossimo lavoro.

RoMZERO
09-01-2010, 21:12
E ti ricordi la sua contro affermazione più recentemente? :rolleyes:
Carmak per me è stato un pagliaccio, che ha migliorato i suoi spettacoli.

Niente a che fare con quello che era all'inizio.

no, perché appunto come ho scritto non mi son tenuto aggiornato

Aggiornati:
http://www.dailytech.com/John+Carmack+Speaks+on+DX10+Vista+Xbox+360+PS3+Wii/article5665.htm

"DX9 is really quite a good API level … Microsoft has done a very, very good job of sensibly evolving it at each step--they’re not worried about breaking backwards compatibility--and it’s a pretty clean API,” he said. “I especially like the work I’m doing on the 360, and it’s probably the best graphics API as far as a sensibly designed thing that I’ve worked with."

ora leggo tnx

RoMZERO
09-01-2010, 21:17
Per questo speravo che se lo ricordasse, visto che non saprei dove ritrovare la notizia...

In pratica elogiava le console, visto che ospiteranno il suo prossimo lavoro.

ma riguardo al nuovissimo rage non aveva detto che le console attuali son troppo poco potenti per spingersi dove vorrebbe lui o ricordo male?

cmq il fatto che elogi le d3d attuali non contraddice le sue affermazioni passate riguardo opengl
ricordo che quando criticò le dx si era alla versione 5, definita da molti una spudorata copia delle ben più prestanti opengl

II ARROWS
09-01-2010, 21:26
E vabbhe, ma che vuol dire? :rolleyes:

Ovvio che se devi citare una affermazione deve essere valida anche adesso... :rolleyes:
Cavolo sono 12 anni fa!
Non è che perché possa aver avuto ragione 12 anni fa ce la debba avere anche adesso.

Un po' come dire che le Voodoo sono le migliori schede video mai create. Vero 10 anni fa, ma se le metti a confronto con la HD5870 impallidisce.

akfhalfhadsòkadjasdasd
09-01-2010, 22:25
Tesselation il futuro, dx11 nuovi fiammanti.. che si sono inventati questi geniacci :eek:

Coxeter, H.S.M.. Regular Polytopes, Section IV : Tessellations and Honeycombs. Dover, 1973. ISBN 0-486-61480-8.

javaboy
09-01-2010, 22:34
Tesselation il futuro, dx11 nuovi fiammanti.. che si sono inventati questi geniacci :eek:

Ma che vuol dire? Anche le ombre tramite shadow volume sono state proposte per la prima volte negli anni 70 ma abbiamo dovuto aspettare doom 3 per vederle.

Life bringer
09-01-2010, 23:27
Car chiiiiiii?
Quello di doom3 dove non si rompevano nemmeno i vetri? :rotfl:

Lasciando stare questo "tizio".
Le OGL sono affascinanti, ma sono soprattutto costruite sulla grafica professionale, d'altra parte non mi stupirei se microsoft le sabotasse, sarei curioso di vedere un gioco che sfrutti le ogl al "massimo" delle loro potenzialità...

javaboy
09-01-2010, 23:30
Car chiiiiiii?
Quello di doom3 dove non si rompevano nemmeno i vetri? :rotfl:

Lasciando stare questo "tizio".
Le OGL sono affascinanti, ma sono soprattutto costruite sulla grafica professionale, d'altra parte non mi stupirei se microsoft le sabotasse, sarei curioso di vedere un gioco che sfrutti le ogl al "massimo" delle loro potenzialità...

L'engine di doom 3 era il migliore della sua epoca, migliore di quello di far cry e di quello di hl2. Che poi doom 3 fosse un gioco troppo old style a livello di game play è un'altra storia ma non è di gameplay che si occupa carmack.

RoMZERO
09-01-2010, 23:58
E vabbhe, ma che vuol dire? :rolleyes:

Ovvio che se devi citare una affermazione deve essere valida anche adesso... :rolleyes:
Cavolo sono 12 anni fa!
Non è che perché possa aver avuto ragione 12 anni fa ce la debba avere anche adesso.

Un po' come dire che le Voodoo sono le migliori schede video mai create. Vero 10 anni fa, ma se le metti a confronto con la HD5870 impallidisce.

mi spiego meglio
il fatto che Carmack ora parli diversamente delle DX non va a smentire quello che ha detto anni fa, perché si parlava di API differenti e non fa di lui un pagliaccio (almeno per quanto riguarda il discorso in questione, se poi ha fatto scivoloni in altri ambiti non so)

RoMZERO
09-01-2010, 23:59
Car chiiiiiii?
Quello di doom3 dove non si rompevano nemmeno i vetri? :rotfl:

Lasciando stare questo "tizio".
Le OGL sono affascinanti, ma sono soprattutto costruite sulla grafica professionale, d'altra parte non mi stupirei se microsoft le sabotasse, sarei curioso di vedere un gioco che sfrutti le ogl al "massimo" delle loro potenzialità...

stai parlando di quello che ha inventato gli fps... non quello di doom3 o il "tizio"

Life bringer
10-01-2010, 00:00
L'engine di doom 3 era il migliore della sua epoca, migliore di quello di far cry e di quello di hl2. Che poi doom 3 fosse un gioco troppo old style a livello di game play è un'altra storia ma non è di gameplay che si occupa carmack.

Beh questa è la tua rispettabile opinione, io non la vedo così.
Come al solito l'engine di Carmack ha avuto un buon successo commerciale, ma imho è inferiore al source engine e non di poco ;)

II ARROWS
10-01-2010, 00:11
mi spiego meglio
il fatto che Carmack ora parli diversamente delle DX non va a smentire quello che ha detto anni fa, perché si parlava di API differenti e non fa di lui un pagliaccio (almeno per quanto riguarda il discorso in questione, se poi ha fatto scivoloni in altri ambiti non so)Non è un pagliaccio per NON aver cambiato idea(visto che le DX9 non sono le 5).

Ma per aver detto quello sulle console. E anche altre cose tecnologicamente discutibili negli anni. Comunque dopo, visto che non mi interessavo di queste cose ai tempi.

javaboy
10-01-2010, 00:18
Beh questa è la tua rispettabile opinione, io non la vedo così.
Come al solito l'engine di Carmack ha avuto un buon successo commerciale, ma imho è inferiore al source engine e non di poco ;)

Anche la tua è una rispettabile opinione. Mi riferisco però alla tua opinione sugli engine non a quella su carmack:D

RoMZERO
10-01-2010, 00:29
Non è un pagliaccio per NON aver cambiato idea(visto che le DX9 non sono le 5).

Ma per aver detto quello sulle console. E anche altre cose tecnologicamente discutibili negli anni. Comunque dopo, visto che non mi interessavo di queste cose ai tempi.

Precisiamo, non ha cambiato idea... essendo le DX9 un'altra cosa, ha effettivamente valutato API differenti... penso che se gli chiedessi come erano le DX5 ti direbbe le stesse cose che disse allora

Delle console, che io sappia, si è sempre lamentato durante lo sviluppo di Rage, perché hanno dei limiti che gli impediscono di fare ciò che vorrebbe.

Sappi che lo stimo come programmatore. Per il resto il mio divertimento coi giochi ID si è fermato al primo quake e mi aspetto ben poco da Rage, quindi non sono certo un suo fan.

Ashgan83
10-01-2010, 14:51
Ma infatti carmack è un programmatore con i controcoglioni, ce ne stanno pochi in giro come lui.

II ARROWS
10-01-2010, 16:07
Precisiamo, non ha cambiato idea... essendo le DX9 un'altra cosa, ha effettivamente valutato API differenti... penso che se gli chiedessi come erano le DX5 ti direbbe le stesse cose che disse alloraTi consiglio di rileggere il mio messaggio.

akfhalfhadsòkadjasdasd
10-01-2010, 17:10
Ma che vuol dire? Anche le ombre tramite shadow volume sono state proposte per la prima volte negli anni 70 ma abbiamo dovuto aspettare doom 3 per vederle.

come che vuole dire... come al solito si tende spacciare qualcosa che in ambito accademico si sa da decine di anni, come qualcosa di appena inventato. Quante chiacchiere..