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

Di RobyDx (del 25/03/2007 @ 14:57:55, in DirectX9, linkato 3075 volte)

Come abbiamo visto il backbuffer è una grossa superficie (diciamo una matrice grande quanto lo schermo) che contiene l'immagine che stiamo creando man mano che disegniamo cose; ogni volta che disegniamo qualcosa Direct3D non fa altro che cambiare il valore numerico dei pixel interessati dal disegno con quelli della nuova immagine. Il tutto quindi si riduce a numeri. Abbiamo anche visto che la seconda superficie è il depth buffer (detto anche Z buffer) responsabile delle profondità: quando viene disegnato un modello Direct3D controlla sullo Z buffer la profondità di ogni pixel e solo se la profondità è minore (il pixel del modello 3D si trova avanti a quelli precedentemente disegnati) fa modificare sia il backbuffer che il depth buffer. Lo stencil buffer è la terza superficie speciale di DirectX ed in qualche modo opzionale visto che si potrebbe benissimo vivere senza. Per spiegare il funzionamento farò un esempio.
Immaginate di renderizzare un cubo. Nelle zone interessate dal rendering vengono modificati i pixel del backbuffer ma possiamo tenere in memoria il fatto che in quei punti è stato disegnato un oggetto. In questo caso diciamo allo stencil buffer di memorizzare questo fatto. Ora abbiamo sulla superficie stencil dei valori che ci indicano dove è stato disegnato qualcosa oppure no. Abbiamo creato una maschera. Finchè non puliamo lo stencil possiamo dire a DirectX di non disegnare i quei punti o di disegnare solo lì....

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 25/03/2007 @ 15:12:22, in DirectX9, linkato 2968 volte)

La stencil buffer permette, come ho detto, la possibilita di creare maschere per delimitare con precisione delle zone dello schermo in cui renderizzare. Uno degli infiniti usi è la gestione delle ombre volumetriche. Un ombra si dice volumetrica se un oggetto la proietta non solo a terra ma su tutti gli oggetti che si trovano in ombra. Una cosa normale in natura ma molto difficile in computer grafica specie se in real time. Giocate a qualche gioco in terza persona e osservate l'ombra a terra: questa nella maggior parte dei casi si proietterà perfettamente al suolo e su un muro ma non su nemici che potrebbero trovarsi nel cono d'ombra. In questo caso l'ombra non è reale ma solo approssimata. Una vera ombra invece dovrebbe coprire tutti gli oggetti. Lo stencil permette proprio questo.

Ombra Volumetrica...

Vai all'articolo...

Articolo (p)Link   Storico Storico  Stampa Stampa
dividerMark
Di RobyDx (del 27/03/2007 @ 10:34:09, in Direct3D10, linkato 3241 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
Di RobyDx (del 27/03/2007 @ 21:10:20, in English, linkato 2335 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 01/04/2007 @ 12:03:14, in Direct3D10, linkato 2166 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 07/04/2007 @ 10:18:12, in Software, linkato 1107 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 10/04/2007 @ 10:00:51, in DirectX9, linkato 1420 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 10/04/2007 @ 10:09:03, in DirectX9, linkato 2463 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:16:15, in DirectX9, linkato 2124 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:24:33, in DirectX9, linkato 1857 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
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 progettista sà di aver raggiunto la perfezione non quando non c'è più niente da aggiungere, ma quando non c'è più nulla da eliminare"

Antoine de Saint-Exupéry


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 983 persone collegate
Sono state visualizzate  pagine

22/11/2024 @ 16:14:56
script eseguito in 47 ms