notJustCode.it
 
\\ Home : Storico (inverti l'ordine)
Di seguito tutti gli interventi pubblicati sul sito, in ordine cronologico.

Di RobyDx (del 16/04/2007 @ 21:41:01, in Direct3D10, linkato 1839 volte)

Il Geometry Shader è la novità più conosciuta e forse più importante di DirectX10. Questo nuovo tipo di Shader si posiziona tra il Vertex Shader ed il Pixel Shader.

La pipeline di DirectX10 esegue questi step: 

  1. ogni vertice viene passato al Vertex Shader che restituisce il vertice trasformato
  2. i vertici vengono raggruppati in primitive e passati al Geometry Shader che restituisce la primitiva trasformata
  3. DirectX10 prende la primitiva e per ogni Pixel contenuta in essa calcola il valore interpolato da passare al Pixel Shader (operazione di Rastering)
  4. Il Pixel Shader prende il valore dal rastering e restituisce il colore finale
  5. Il colore viene confrontato con quello già presente ed il risultato viene stampato sul target...

    Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 10/04/2007 @ 20:09:04, in Direct3D10, linkato 1868 volte)

Nel precedente tutorial abbiamo caricato una texture da file. Ora la useremo nello shader.

A differenza di DirectX9, una texture può essere utilizzata senza problemi in tutti i tipi di shader.

Una texture viene dichiarata nel codice HLSL usando le parole chiavi texture1D, texture2D e texture3D

Texture1D myTexture1;

Texture2D myTexture2;

Texture3D myTexture3;

Nel codice C++ vi basterà passare la risorsa alla corretta variabile

ID3D10EffectShaderResourceVariable* texVal =  texVal = effect-> GetVariableByName("myTexture2")-> AsShaderResource();

texVal->SetResource(texture);

In DirectX10 è possibile utilizzare la texture sia direttamente, cosa non possibile prima, che tramite i sample. La sintassi è molto cambiata quindi conviene leggere di seguito. ...

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 10/04/2007 @ 10:24:33, in DirectX9, linkato 1734 volte)

L’animazione dei modelli in 3D è sempre stata una delle caratteristiche più difficili da gestire. Infatti una delle tecniche più usate nei giochi 3D della precedente generazione (esempio Quake 3) per deformare un oggetto era il tweening. Un vero spreco di risorse visto che la quasi totalità del processo veniva fatto a livello software ossia utilizzando quasi esclusivamente il processore. Nel tweening infatti noi estraiamo i vertici dal modello per modificarli nel codice del programma. Inoltre il processo veniva utilizzato anche per la deformazione di semplici oggetti come ad esempio la superficie dell’acqua che segue regole di deformazione ben più semplici di quello di un modello complesso. Il geometry blending è un sistema di deformazione hardware abbastanza semplice da usare che non solo permette di piegare un modello in modo molto leggero per la macchina ma addirittura conferisce un grande morbidezza alle curve. La deformazione di un oggetto viene eseguita attraverso l’uso di più world matrix (le matrici usate per muovere un oggetto) e di valori chiamati weight (pesi)....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 10/04/2007 @ 10:16:15, in DirectX9, linkato 1981 volte)

motion blur

Il motion blur è una tecnica atta a riprodurre il normale effetto di sfocamento di un oggetto che si muove a forte velocità. Questo permette di dare un maggiore senso di velocità agli oggetti e per questo moltissimi videogiochi usano questo effetto. Se ad esempio un personaggio muove una spada questa sarà più realistica se lascerà una scia dietro di essa (spesso nei videogiochi si esagera volutamente l'effetto per dare l'idea che il colpo sia ancora più potente e veloce). Per una cosa così astratta esistono numerosi approcci ma quelli che tratterò ora saranno il motion blur per ripetizione (tra i più usati), quello per deformazione e quello per accumulo di buffer (il più pesante ma il più spettacolare)....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 10/04/2007 @ 10:09:03, in DirectX9, linkato 2302 volte)

Il billboarding è una tecnica molto vecchia per ingannare l'occhio dello spettatore facendogli sembrare delle semplici immagini 2D delle immagini 3D inserite nella scena. Ad esempio se abbiamo necessità di aggiungere molti alberi alla nostra scena: se l'albero è molto complicato sarà formato da un certo numero di poligoni che moltiplicati per tutti gli alberi renderebbe difficile il lavoro del PC. In questo caso noi possiamo utilizzare semplicemente una foto di un albero ed attaccarla ad un rettangolo. Se non abbiamo necessità di avvicinarci troppo (ad esempio degli alberi in una zona distante) il risultato sarà molto elevato e le richieste hardware minime. Creare un rettangolo con coordinate texture non dovrebbe essere difficile, i problemi sono essenzialmente 2: fare in modo che si veda solo l'albero e non lo sfondo della texture (alphablending) e soprattutto fare in modo che da qualsiasi posizione noi guardiamo il rettangolo questo sia rivolto sempre verso di noi....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 10/04/2007 @ 10:00:51, in DirectX9, linkato 1307 volte)

Come abbiamo visto DirectX usa degli array di vertici per rappresentare gli oggetti tridimensionali. Si suppone quindi che all'interno delle mesh ci siano array di vertici che vengano passati in qualche modo al device. Questo è corretto ma abbastanza approssimativo. La mesh tra i tanti campi che contiene (a noi nascosti) comprende 2 parti in cui sono contenuti i vertici e gli indici. I vertici sapete già cosa sono mentre forse non sapete cosa sono gli indici.
Una figura tridimensionale deve essere divisa in triangoli e come abbiamo visto dobbiamo riempire l'array di vertici in modo consecutivo per formare tutti i triangoli. Può capitare quindi che alcuni vertici debbano essere ripetuti. Ad esempio un cubo che ha solo otto vertici deve essere rappresentato con 12 triangoli ossia 36 vertici. Dato che i vertici occupano molta memoria (se contengono anche normali, coordinate texture e così via) si è preferito inserire un array di vertici senza ripetizioni (quindi solo gli 8 ipotetici) ed un array di short che determinano l'ordine con cui prenderli. Questi sono gli indici.
Gli indici sono in numero uguali al numero di triangoli moltiplicati per 3 (che vanno da 0 a n-1).
Inserendo i valori nell'array di vertici sarà quindi possibile ricostruire i triangoli e quindi l'intera figura. In realtà non si usano quasi mai gli array degli indici se non in qualche raro caso in cui occorra ricostruire la figura. Inoltre i vertici del nostro cubo potrebbero essere un pò più di 8 dato che esistono anche le normali e le coordinate texture ed è quindi necessario ripetere vertici uguali ma con altri componenti diversi. Rimane comunque il principio che non esistono 2 vertici identici nell'array dei vertici.
I vertici e gli indici sono memorizzati all'interno di due zone di memoria chiamate vertexbuffer e indexbuffer gestiti dagli oggetti omonimi che possono venir creati dalla mesh.
Tramite opportuni metodi potete accedere e modificare i valori in essi contenuti. Questo si rivela importante per milioni di cose come modificare la posizione o le coordinate texture o modificare la struttura dei vertici....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 07/04/2007 @ 10:18:12, in Software, linkato 970 volte)

A questo indirizzo potete trovare la nuova SDK di aprile di DirectX.  Ci sono i soliti miglioramenti e risoluzione bug ed un nuovo esempio nella sezione DirectX10. Importante però, c'è un cambiamento in un paio di funzioni che ora prendono dei parametri in più, come un HRESULT finale a cui potete semplicemente passare NULL ed un fx profile nelle funzioni di compilazione del codice a cui dovete passare "FX_4_0" per digli di utilizzare lo shader model 4.0. Io aggiornerò i tutorial per correggere questi dettagli. Quindi la versione di Aprile sarà la versione "ufficiale" da utilizzare.

Approfitto per fare a tutti voi auguri per una buona pasqua

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di robydx (del 01/04/2007 @ 12:03:14, in Direct3D10, linkato 2011 volte)

DirectX memorizza tutte le sue risorse in buffer di memoria. Abbiamo già visto alcuni tipi di risorsa, come i vertex buffer.

Un tipo ormai fondamentale di risorsa è la texture. Una texture è una risorsa adibita alla gestione di immagini che sono utilizzate come rivestimento per il modello 3D. L’utilità è abbastanza ovvia. Per simulare la forma di un oggetto servono triangoli e se di dovesse rappresentare come triangoli ogni singolo dettaglio di un oggetto ne servirebbero troppi anche per una scheda DirectX10. Per questo si tende a rappresentare molti dei dettagli che non necessitano di uno spessore su di una immagine bitmap che viene avvolta attorno all’oggetto. Così un nostro ipotetico serpente non avrà le squame poligonali ma sarà un tubo con la foto della pelle applicata al modello. ...

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 27/03/2007 @ 21:10:20, in English, linkato 2109 volte)

 

Previous DirectX version worked with fixed pipeline. On the contrary, DirectX 10 it’s based on shaders. A shader it’s a code that describes trasformation rules that from vertex generates the scene. The 2 main shaders are vertex and pixel shader. The first moves vertex from its position in object space and from its position in projection space. The second, starting from output information given by vertex shader, creates all pixels and executes for each one the shader giving them the middle weight, using the output position given by pixel shader....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 27/03/2007 @ 10:34:09, in Direct3D10, linkato 3060 volte)
HLSL
 
Gli shader come mostrato finora sono scritti in HLSL, un linguaggio simil C molto semplice che permette di poter gestire con estrema libertà i nostri effetti. Far pratica con questo linguaggio è la cosa più importante in DirectX10 visto che ciò che vedremo dipenderà per la maggior parte dalla nostra abilità nello sfruttarlo. In effetti DirectX10 non fa altro che creare e passare risorse per il codice HLSL. Il compilatore come abbiamo visto è incluso nella classe ID3D10Effect ...

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Pagine: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
"Un matematico è un dispositivo che trasforma il caffè in teoremi."

Paul Erdos


Cerca per parola chiave
 

Titolo
Articoli (4)
C++ (4)
Direct3D10 (30)
Direct3D11 (20)
DirectX9 (82)
DotNet (10)
English (9)
FanGames (22)
ManagedDX11 (2)
Materiale Utile (4)
News (39)
Shader Library (12)
SharpDX (1)
Software (25)
Tecnologia (19)
Varie (9)

Gli interventi più cliccati

Ultimi commenti:
If you wish to retai...
23/05/2013 @ 13:07:45
Di chanel outlet
You deficit of self-...
23/05/2013 @ 13:07:13
Di cartier watches uk
Reinforce your own l...
23/05/2013 @ 13:06:37
Di replica watches
Whenever you"re shiv...
23/05/2013 @ 13:06:11
Di swiss replica watches
It's likely you have...
23/05/2013 @ 13:05:02
Di chanel handbags
Cheap automobile ins...
23/05/2013 @ 13:04:28
Di replica watches

Titolo
Con quale tecnologia state realizzando o avete intenzione di realizzare i vostri progetti?

 DirectX11
 DirectX10
 DirectX9
 XNA
 DirectX8 o Precedenti
 OpenGL
 Motori grafici già pronti
 Altro

Titolo
Umorismo (17)

Le fotografie più cliccate



Ci sono 31 persone collegate
Sono state visualizzate  pagine

01/12/2021 @ 07:53:16
script eseguito in 66 ms