Di RobyDx (del 06/03/2007 @ 11:40:12, in DirectX9, linkato 1736 volte)
L'evoluzione della computer grafica in real time ha un solo nome: Shaders. DirectX9 infatti si è rinnovato maggiormente sulla gestione shaders introdotta in DirectX introducendo nuove versioni del linguaggio ASM (le versioni 2.0 e 3.0) e l' HLSL, il linguaggio simil C che semplifica notevolemente la vita del programmatore eliminando il complesso codice assembler. L'ultima novità fondamentale sono gli Effects. L'effect è una tecnologia che permette di integrare in pochi passaggi complicatissimi effetti shaders all'interno delle applicazioni....
Di RobyDx (del 05/03/2007 @ 16:20:47, in DirectX9, linkato 3273 volte)
La più grande innovazione che directX8 aveva portato è stata senza dubbio l'introduzione della tecnologia shader. Il poter intervenire direttamente sulla renderizzazione grafica dei vertici e dei pixel direttamente tramite accellerazione hardware ha portato a nuovi ed impensabili effetti grafici. DirectX9 ha poi aggiunto nuovi versioni di linguaggio assembler ma subito si è notata una cosa: il linguaggio assembler usato nei vertex e pixel shader doveva essere sostituito con un linguaggio più vicino ai programmatori. Nasce HLSL, un linguaggio simile al C per la programmazione di vertex e pixel shader. Non esiste paragone tra la semplicità di codice C rispetto al codice assembler. Il codice HLSL viene caricato in maniera simile a quello assembler ed utilizzato in maniera perfettamente identica. Descrivere in un solo tutorial la ricchezza di un linguaggio così avanzato rispetto al codice assembler è cosa abbastanza difficile. Introdurrò quindi la base della sintassi e le istruzioni. Solo la pratica aiuterà ad impadronirsi della tecnica. ...
Di RobyDx (del 18/02/2007 @ 13:41:10, in DirectX9, linkato 1355 volte)
Gli Shaders 3.0 sono la versione ultima del linguaggio assembler destinato alle schede con GPU programmabile. La versione 3 dei vertex e pixel shader amplia ulteriormente le possibilità offerte da 2.0 e 2_x e diventerà nei prossimi anni lo standard base per gli effetti shaders. Al momento esistono pochissime schede video che supportano gli shader 3.0 e prima che venga utilizzato in un qualunque gioco occorreranno molti anni visto che i primi giochi shaders 2.0 stanno appena affacciandosi. Il tutorial è il seguito del tutorial sugli shaders 2_x....
Di RobyDx (del 18/02/2007 @ 13:36:22, in DirectX9, linkato 1301 volte)
Le versioni dei linguaggi disponibili nei linguaggi shaders per DirectX9 vanno dalle 1 alle 3. Le versioni 2_x sono qualcosa di per sé anomalo ed intermedio. Con buona probabilità le schede passeranno direttamente dalla versione 2.0 alla versione 3.0 e le versioni 2_x verranno scavalcate, un po’ come è stato per i pixel shader 1.4 ai tempi di DirectX8. Questo tutorial sarà un’aggiunta delle istruzioni dei vertex e pixel shader 2.0, cosa che Microsoft sta in effetti facendo: migliorare le versioni non modificando completamente il linguaggio ma aggiungendo nuove istruzioni (quanti di voi hanno rifiutato i pixel shader 1.4 che erano completamente diversi dai 1.3)....
Di RobyDx (del 13/02/2007 @ 09:39:06, in DirectX9, linkato 1512 volte)
La tecnologia shader già affermatasi con l’introduzione di DirectX8 continua ad evolversi e diventare sempre più presente nei giochi e nelle applicazioni di oggi. Molti giochi ormai usano effetti shader che portano la grafica a livelli altissimi e sempre più simili alla realtà. Con DirectX9 vengono introdotte nuove versioni dei linguaggi assembler destinati ai vertex e pixel shader. In questo tutorial vi illustrerò il funzionamento dei pixel shader 2.0 supportato ad oggi solo sulle schede di ultima generazione. La nuova versione shader ritorna come meccanismo di funzionamento alle prime 4 versioni di pixel shader (dalla 1.0 alla 1.3) eliminando la scomoda, seppur utile, doppia fase. Tuttavia i miglioramenti introdotti sono tali da rendere le precedenti versioni completamente antiquate ed inutili....
Di RobyDx (del 13/02/2007 @ 09:22:45, in DirectX9, linkato 1759 volte)
La grande novità di DirectX9 è il perfezionarsi della tecnologia degli shader che diventano sempre più importanti per il rendering di effetti nuovi ed innovativi. I vertex shader arrivano fino alla versione 3.0. In questo tutorial introdurrò il funzionamento della versione 2.0 dei vertex shader che portano un gran numero di funzionalità. Oltre al maggior numero di istruzioni la nuova versione include nuovi registri, l'introduzioni di cicli di controllo e soprattutto la possibilità di creare subroutine all'interno del codice shader. Ora i vertex shader possono realizzare davvero l'impossibile permettendo ad esempio di gestire con un solo shader più effetti tramite l'utilizzo di istruzioni if then else o di ripetere una stessa funzione un numero qualsiasi di volte tramite il loop. L'esempio riportato in fondo al tutorial mostra come sia possibile tramite vertex shader utilizzare un numero qualsiasi di luci puntiformi in una scena, ben oltre le otto ottenibili con le schede più recenti....
Di RobyDx (del 11/02/2007 @ 14:14:07, in DirectX9, linkato 1671 volte)
La versione di Pixel shader 1.4 si differenzia completamente dalle precedenti non solo per il maggior numero di registri texture e temporary a disposizione ma soprattutto per l’introduzione di un meccanismo articolato in 2 fasi, uno in cui elaborare le texture fin dal posizionamento delle coordinate e l’altro in cui fondere i risultati. Questo tuttavia modifica notevolmente la situazione facendo perdere di significato molte istruzioni e cambiando addirittura significato ai registri....
Di RobyDx (del 11/02/2007 @ 14:08:05, in DirectX9, linkato 1421 volte)
Esistono diversi tipi di linguaggi per i pixel shader con differenze più o meno marcate. Le prime 4 versioni sono molto simili e per questo raggruppate in un unico tutorial....
Di RobyDx (del 11/02/2007 @ 13:56:17, in DirectX9, linkato 1640 volte)
Usare i vertex shader non è facile ma ancor meno lo è scrivere dei codici assembler. La cosa è senza dubbio interessante per la possibilità di creare effetti come ad esempio il Cell shading. A parte la spettacolarità degli effetti i vertex shader permettono di anche di generare dei codici utili per ogni occasione. Potete infatti inserire il codice per il tweening (una tecnica per l’animazione dei poligoni) all’interno del codice assembler con un guadagno enorme sulla velocità. ...
Di RobyDx (del 11/02/2007 @ 13:40:27, in DirectX9, linkato 7385 volte)
Osservate questa immagine. Questo schema rappresenta il processo che DirectX compie a partire dal modello 3D che gli diamo (vertex data) fino al compimento degli ultimi calcoli tra cui spiccano i vari testing (come ad esempio lo stencil) ed il blending.
Come vedete ci sono 2 punti in cui il processo si separa (non contate le Tesselation). Nel primo vedete i vertex shader e il "trasformation and lighting engine". I vertex shader infatti si pongono come alternativa al normale processo di trasformazione dei vertici proponendo sistemi completamente nuovi e personalizzabili (vedi ad esempio il cell shading). Se i vertex shader servono per la manipolazione dei vertici, i pixel shader servono per personalizzare il processo di elaborazione finale di ogni singolo pixel in base al colore di base e alle texture....