Microsoft spiega il futuro della tecnologia DirectX

Microsoft spiega il futuro della tecnologia DirectX

Siamo da poco entrati nella generazione DirectX 10, ma Microsoft pensa già al futuro: ecco i primi dettagli delle DirectX 10.1.

di pubblicata il , alle 11:18 nel canale Videogames
Microsoft
 
134 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
coschizza13 Marzo 2007, 11:28 #121
Originariamente inviato da: -fidel-
EDIT: poi ora grazie ad XBox, anche Carmack ha "capitolato" verso DirectX (del resto i soldi sono soldi ): ma nella PS3 invece che librerie grafiche si usano? Mi pareva una versione modificata di OGL.


per ora le principali tecnologie sono:

OpenGL ES 2.0 compliant except for the use of nVidia's Cg instead of GLSL
OpenMAX
OpenVG
^TiGeRShArK^13 Marzo 2007, 11:31 #122
Originariamente inviato da: Pr|ckly
La mia non è una scheda Dx 9.0b ma 9.0
E' una 9800, shader 2.0 ma non credo proprio che non supporti le 9.0c, una volta me le ha pure richieste per far partire un gioco.
Penso che un conto sia non avere un'effetto come gli shader 3.0 perchè la scheda non lo supporta, un conto non supportare del tutto una versione di directx...



Qua nessuno sta dicendo che le schede non partono con i giochi scritti con le dx 10.1.
Si sta dicendo che non sono compatibili con questa versione di dx e quindi NON ne possono sfruttare le nuove caratterisitche.
^TiGeRShArK^13 Marzo 2007, 11:34 #123
Originariamente inviato da: Bellaz89
X ^TiGeRShArK^

E vero ieri è vero oggi e sarà vero domani, le dx sono di troppo alto livello per fare certe cose, e inoltre sono pensate per fare giochi e basta (escludendo utilizzi non molto complessi). Inoltre da un certo punto di vista le opengl possono fare cose che in dx non si può neanche immaginare, sennò come me lo spieghi che la gente compra Quadro e Firegl o workstation della sgi ?Senza andare poi nel campo dell' integrato e del critico....

Dimmi, a livello di codice, in cosa sarebbero meglio le opengl rispetto alle directx.
Con le Directx puoi fare tutto quello ke fai con le opengl con minor sforzo.
Pr|ckly13 Marzo 2007, 11:51 #124
Originariamente inviato da: ^TiGeRShArK^

Qua nessuno sta dicendo che le schede non partono con i giochi scritti con le dx 10.1.
Si sta dicendo che non sono compatibili con questa versione di dx e quindi NON ne possono sfruttare le nuove caratterisitche.


Si ok ma voglio dire, siamo sicuri che le dx 10.1 intordurranno tecnologie non supportate dalle schede dx10 ora in commercio?
Era questo che volevo dire, forse mi sono spiegato male.
-fidel-13 Marzo 2007, 11:57 #125
Originariamente inviato da: coschizza
per ora le principali tecnologie sono:

OpenGL ES 2.0 compliant except for the use of nVidia's Cg instead of GLSL
OpenMAX
OpenVG


Interessante. Penso che questo potra fare da traino per un non-abbandono delle OpenGL su larga scala, forse anche per il mondo PC, visto che sempre più spesso i giochi sono multipiattaforma (sia in ambito console che per PC).
diabolik198113 Marzo 2007, 12:08 #126
Originariamente inviato da: -fidel-
Interessante. Penso che questo potra fare da traino per un non-abbandono delle OpenGL su larga scala, forse anche per il mondo PC, visto che sempre più spesso i giochi sono multipiattaforma (sia in ambito console che per PC).


Il fatto è che in ambito PC, come detto sopra, le schede video vengono progettate su specifiche DX, quindi sarà dura che le OGL tornino ad imporsi, soprattutto se poi si pensa che anche le console ormai usano schede video derivate dal mondo PC, quindi anche li prima o poi le DX faranno il loro ingresso in modo definitivo.
^TiGeRShArK^13 Marzo 2007, 12:37 #127
Originariamente inviato da: Pr|ckly
Si ok ma voglio dire, siamo sicuri che le dx 10.1 intordurranno tecnologie non supportate dalle schede dx10 ora in commercio?
Era questo che volevo dire, forse mi sono spiegato male.


si, io sono piuttosto sicuro
^TiGeRShArK^13 Marzo 2007, 15:26 #128
Originariamente inviato da: Bellaz89
^TiGeRShArK^ , le Opengl sono di più basso livello, e se da una parte le dx rendono più facili lo sviluppo di cose come giochi o simili, dall altra mettono in difficoltà lo sviluppo dei programmi che richiedono un controllo totale sulla scheda video o genericamente sull' unità di elaborazione.
Questo lo dico non perchè mi piacciono più le ogl che le dx (anche se con queste posso portare i miei programmi su ogni piattaforma mi venga in mente) ma perchè la struttura di queste due essenzialmente è differente: ci sono campi in cui è faticoso programmare con un' api di basso livello, che è solo un insieme di chiamate scritte in C alla vga, e altri in cui non puoi permetterti di sviluppare codice basato su api closed source , che hanno maggiore ruolo interpretativo dei tuoi comandi, in cui non sai nemmeno che genere di algoritmi vengono utilizzati e che non hanno praticamente portabilità.

E questo non lo dico solo io , anche la stessa microsoft lo diceva tempo fa.

E poi, anche senza addentrarsi nel codice, pensa a un elaboratore per scopi scientifici/militari/civili o quello che ti pare che ha migliaia di gpu/cpu magari anche diverse: con le directx semplicemente sei impossibilitato a fare qualsiasi cosa.

Inoltre vai a guardare i membri di Khronos.org, non è che siano propio 2 azienducce in croce a promuovere opengl.


ancora non mi hai spiegato cosa intendi quando dici che le open gl sono + a basso livello delle direct x.
Fammi un esempio di codice Open GL che in directx secondo te sarebbe impossibile da scrivere.
Inoltre mi sfugge il motivo per cui Direct X dovrebbe supportare meno schede video rispetto ad Open GL.
Forse in realtà è vero il contrario.
Le schede supportano meglio direct x di quanto non suportino open gl (basta pensare alle schede ATI tanto per fare un esempio che in open gl rendono di meno)
jappilas13 Marzo 2007, 16:47 #129
Originariamente inviato da: Bellaz89
^TiGeRShArK^ , le Opengl sono di più basso livello,
in realtà è il contrario
DX è come dicevo precedentemente , poco più di un wrapper sulle caratteristiche e funzioni dell' HW, OpenGL invece mi risulta essere una libreria molto più complessa, con una macchina a stati propria
e se da una parte le dx rendono più facili lo sviluppo di cose come giochi o simili, dall altra mettono in difficoltà lo sviluppo dei programmi che richiedono un controllo totale sulla scheda video o genericamente sull' unità di elaborazione.
in realtà è il contrario, le versioni di DX dalla 5 (se non ricordo male) in poi sono strutturate proprio in modo da consentire agli sviluppatori di giochi un controllo praticamente pieno sulle funzioni HW
(anche se con queste posso portare i miei programmi su ogni piattaforma mi venga in mente)
questa è l' unica cosa giusta, motivo per cui vedrei bene una reimplementazione open source delle DX sotto sistemi operativi alternativi - e laddove per le versioni fino alla 9 si poteva addurre la scusa della dipendenza del codice dall' OS sottostante, paradossalmente per le DX 10 la distinzione tra il KMD e l' UMD ( kernel - e user- mode driver) dovrebbe essere molto più pulita e di conseguenza replicabile tramite IOCTL...
come anche le novità introdotte con il WDDM 2 nell' hardware fatto per supportarlo, dovrebbero essere parecchio benefiche nei riguardi dei nuovi desktop accelerati per linux...
ma perchè la struttura di queste due essenzialmente è differente: ci sono campi in cui è faticoso programmare con un' api di basso livello, che è solo un insieme di chiamate scritte in C alla vga,
non confondere il linguaggio usato con il modello di programmazione richiesto all' una o all' altra API (non foss' altro perchè esistono svariate librerie con classi di incapsulazione che permettono di accedere a OGL in una maniera consona alla parogrammazione Object Oriented)
e altri in cui non puoi permetterti di sviluppare codice basato su api closed source,
una API non è per definizione closed source o open source - una API, è esattamente una interfaccia ed è aperta finchè le sue specifiche sono documentate e disponibili (e su questo mi pare che le DX lo siano tanto quanto le opengl) - nonconfoderti con la disponibilità o meno del codice sorgente di una implementazione della API in oggetto (perchè se è vero che le DX sono closed source lo stesso vale anche per le implementazioni proprietarie delle opengl, come delle altre API del khronos group - per dire, OpenVG è una specifica pubblica ma la libreria Amanith che la implementa, no)
che hanno maggiore ruolo interpretativo dei tuoi comandi, in cui non sai nemmeno che genere di algoritmi vengono utilizzati e che non hanno praticamente portabilità.
sulla portabilità ti posso dare ragione (ma la portabilità di una soluzione SW ha comunque un costo)
sugli algoritmi, quelli che ricadono nella sfera della geometria analitica e della matematica/fisica ad uso grafico o videoludico sono se non risaputi, quantomeno noti e diffusi tra gli addetti ai lavori del settore
se invece ti riferisci a quelli che ricadono nel dominio del kernel e delle operazioni che questo compie per inviare i comandi grafici alle GPU come I/O, beh, non credo il programmatore di videogiochi se ne debba interessare più di tanto , almeno non prima di aver padroneggiato alla perfezione l' API grafica ...
E poi, anche senza addentrarsi nel codice, pensa a un elaboratore per scopi scientifici/militari/civili o quello che ti pare che ha migliaia di gpu/cpu magari anche diverse: con le directx semplicemente sei impossibilitato a fare qualsiasi cosa.
per scopi scientifici/militari/civili quello che conta non è "fare qualsiasi cosa", ma fare quello che si deve fare in un modo che sia sicuro e affidabile, il che implica maggiori attenzioni e cure per il testing delle funzioni del proprio codice per assicurarsi che segua le specifiche, il che richiede maggiori capacità e competenze ma questo a prescidere dall' uso di una libreria piuttoto che un' altra
Inoltre vai a guardare i membri di Khronos.org, non è che siano propio 2 azienducce in croce a promuovere opengl.
da una parte è proprio quello il punto, quando in un consorzio coesistono più aziende, specialmente quando ognuna ha dimensioni ragguardevoli e quindi pretende la sua parte di voce in capitolo, uno dei problemi da risolvere è proprio portare avanti la soluzione in un modo che accontenti tutti nonostante le diversità di vedute, gli interessi, ambiti applicativi e obiettivi industriali dei singoli membri
laddove ti venga il sospetto che per certi aderenti l' obiettivo possa essere proprio il mantenimento della compatibilità con il passato, o magari assecondare le esigenze dei produttori di strumenti CAD (in cui magari si lavori in wireframe) o laddove ti renda conto che imporre specifiche a livello HW sia sempre stato al di là degli intenti del gruppo (proprio perchè le opengl sono nate api trasversali, non è nell' interesse del consorzio fissare delle specifiche HW ufficiali) , ma e ripensando semplicemente che OpenGL è una API grafica, arrivi a comprendere che questo contesto non sia esattamente uno che spinga l' innovazione tecnologica nell' ambito delle GPU ... l' innovazione viene da altrove, e opengl sembra subirla al più avvantaggiandosene...
sennò come me lo spieghi che la gente compra Quadro e Firegl o workstation della sgi ?
semplice, driver certificati nonchè multithreaded (aspetto da non sottovalutare)
da quel che so, in passato, cioè con schede della passata generazione, per non dire di quelle a pipeline non programmabile (nessun supporto shader), la gestione di contesti grafici multipli a livello di scheda grafica, era notevolmente ardua, prona a errori e in certi casi introducente pesanti overhead (se non ricordo male, hanno fatto storia i rallentamenti delle prime versioni mac os x tenendo aperte finestre opengl 3D insieme ad applicazioni normali...) - e non è un caso che fino a tempi recenti, driver grafici multithreaded siano stati appannaggio delle schede professionali, lo sforzo di SW design per far lavorare in modo concorrente un oggetto complesso come una gpu, non è banale (per non dire di quello di testing)
jappilas13 Marzo 2007, 17:00 #130
Originariamente inviato da: Bellaz89
Un' api è a basso livello rispetto a un'altra è quando la prima è a uno strato software più vicino all' hardware della seconda, ovvero meno librerie incluse possibili, meno codice frapposto , linguaggi (ma questo non è del tutto vero) di livello più basso.Le opengl sono scritte in C e sono Os indipendent, mentre le dx usano risorse del sistema e sono scritte in C++.

proprio perchè closed source non puoi affermare con certezza in quale linguaggio siano scritte - il linguaggio in cui è scritta una libreria e quello dell' interfaccia che esporta non è detto che coincidano, a maggior ragione su Windows, dove non bisogna dimenticare la presenza di COM...
Per l'ultima richiesta ti dico che non esistono solo ATI e NVIDIA sul mercato vga(che peraltro sono membri dell' arb di ogl e la supportano) ma anche aziende come matrox e miriadi di aziende che producono solo prodotti dedicati.
se io producessi schede grafiche mi iscriverei all' ARB perchè se la grafica 3d fosse il mio core business, mi convierrebbe ... la presenza di determinati marchi nel consorzio non è indicativa, dal mio pdv è anzi pressochè scontata
Ti fo un miglioramento del mio esempio sopra descritto: come pensi che possano girare qualche migliaio di cell o di arm destinati alla grafica sotto dx? secondo me non girano.
mi spieghi perchè dovrei volere usare un cluster di processori embedded attraverso una libreria grafica piuttosto che attraverso una api dedicata al messaging di dati tra sistemi separati (openMPI), quando poi buona parte dei core ARM non ha eccezionali prestazioni in virgola mobile per la mancanza di unità dedicate?
Infine gli utilizzatori hanno il grosso vantaggio di poter creare estensioni a loro piacimento per le loro macchine cosa che non puoi fare sotto le dx visto che sono closed e propietarie.
grosso vantaggio (opinabile comunque) per i produttori di HW, grosso svantaggio per chi sviluppa applicazioni per la API in pratica se la tua applicazione fa uso di un misto di estensioni ti tocca controllare la presenza di ciascuna a livello di supporto HW e usare potenzialmente un code path per ciascuna
le funzioni opzionali non sono mai una cosa positiva - vedi che anche le DirectX hanno elimiinato i cosiddetti "capability bits" , ma d' altra parte anche opengl in realtà ingloba in ogni major release quelle che per la precedente erano estensioni, solo che avviene molto di rado per va della frequenza degli aggiornamenti alla API

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^