notJustCode.it
 
\\ Home : Storico : DirectX9 (inverti l'ordine)
Di seguito gli interventi pubblicati in questa sezione, in ordine cronologico.

Di RobyDx (del 29/07/2007 @ 08:39:33, in DirectX9, linkato 2152 volte)

Il rendering delle ombre è sicuramente uno degli aspetti più complessi da analizzare. In attesa che directX gestisca in maniera automatica questo problema vi propongo un nuovo metodo, alternativo allo stencil: lo shadow mapping.

Il presupposto da cui partire è la definizione di ombra. Un ombra è una schermatura tra tutto quello che si trova tra la luce e l'oggetto. Lo shadow mapping si basa su questo: renderizzare su una texture quello che si trova tra la luce e l'oggetto. L'oggetto ombreggiato semplicemente userà questa texture per creare zone d'ombra....

Vai all'articolo...

dividerMark
Di RobyDx (del 29/07/2007 @ 08:33:01, in DirectX9, linkato 1720 volte)

Nonostante la potenza dell'hardware aumenti di anno in anno sembra non sia mai sufficiente il numero di poligoni da renderizzare. Infatti anche se le moderne schede video promettono di gestire centinaia di milioni di poligoni al secondo, in realtà questo numero scende drasticamente senza oppurtune ottimizzazioni. Il problema si manifesta soprattutto quando occorre mandare a schermo tantissimi oggetti separatamente.

Una scena molto complessa viene di solito renderizzata con pochi passaggi cercando di raggruppare i poligoni in modo da fare meno rendering possibili. In genere il motore grafico raggruppa tutti gli elementi con le stesse caratteristiche, li fonde insieme ed effettua il draw di molti vertici contemporaneamente (tecnica di batching). Al contrario non è possibile renderizzare insieme poligoni dinamici perchè la posizione dei vertici cambia continuamente e di conseguenza o si modificano i vertici nel vertexbuffer per ogni frame o si fa il draw separatamente per ognuno. Entrambe le soluzioni uccidono il frame rate. Un simile problema era già stato riscontrato per i point sprite, i sistemi particellari. Occorreva renderizzare tante immagini, ad esempio delle scintille, e non si poteva fare il draw per centinaia o migliaia di sprite. DirectX introdusse quindi un sistema che permettesse di gestire tanti sprite semplicemente come un array di punti ottimizzando moltissimo le prestazioni.

Il geometry instancing è qualcosa di simile ma applicato a modelli interamente 3D. Attraverso il device è possibile caricare un modello 3D e moltiplicarlo sullo schermo dando ad ognuna di queste copie caratteristiche specifiche di posizione, colore o qualsiasi altra cosa vogliate; il tutto accellerato dall'hardware.

Unica nota dolente è che solo le schede video con tecnologia shader 3.0 implementano tale caratteristica e sarà quindi necessario aspettare ancora un pò prima di vedere tale tecnologia sfruttata appieno....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 16:01:19, in DirectX9, linkato 2420 volte)

La struttura più utilizzata da tutti per il rendering è la mesh, ma pochissime persone sanno esattamente come è strutturata una mesh e come crearla in assenza di fileX. Una mesh è per definizione un oggetto 3D, una figura composta da un insieme di triangoli, eventualmente raggrupati in insiemi che si differenziano per materiale (texture e colori)....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 15:52:41, in DirectX9, linkato 1410 volte)

I vertex buffer sono utilizzati come sappiamo per contenere i dati sui vertici di un modello. Questi possono essere inclusi in una mesh o utilizzati separatamente e passati al device. Riuscire a creare da zero un vertexbuffer può risultare fondamentale in moltissime situazioni, specie se si deve creare un oggetto da zero o lo si deve caricare da un formato diverso dal formatoX....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 15:41:50, in DirectX9, linkato 2798 volte)

La possibilità per directX di renderizzare una scena su una texture anzichè direttamente nello schermo è senza dubbio la caratteristica più importante per la realizzazione dei moderni effetti grafici, specie se in Vertex e Pixel shader. Lo stile che si adopera è chiamato multi pass: la scena viene renderizzata su una texture e questa poi viene elaborata ed infine presentata sullo schermo. Il motivo di ciò sta nel fatto che molti effetti sono notevolmente complessi e richiedono quindi il passaggio per varie fasi.

Ad esempio riportato nel sito è il depth of field. Questo richiede 3 passaggi:

1)rendering normale su una texture

2)rendering del cosiddetto depth space cui il colore della scena è la distanza dal punto di messa a fuoco con colore in scala di grigio

3)sfocatura finale in cui finalmente sullo schermo viene renderizzata la prima texture a pieno schermo sfocata tramite i dati contenuti nella seconda.

Essendo impossibile sfocare i poligoni è necessario trasformare la scena in una texture renderizzandola alla fine come un rettangolo che copra l'intero schermo.

Questo è solo un semplice esempio. Molti giochi, come ad esempio Half Life 2, richiedono decine di rendering separati che vengono dal modello iniziale generano luci, rilievi e riflessioni che vengono poi assemblati per ottenere il risultato finale....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 15:33:05, in DirectX9, linkato 1531 volte)

Lo swap chain è il sistema creato da DirectX per gestire il rendering su più oggetti separati (più form o più pictureBox). Non molto utile per la maggior parte dei giochi lo swap chain è fondamentale per numerosissime applicazioni. Un editor grafico 3D ha ad esempio bisogno di gestire su più aree diverse inquadrature di una stessa scena o potrebbe servire realizzare un programma su più finestre separate. Cosa fate in questo caso? Ci sono solo 2 soluzioni:

1) creazione di più device (appesantimento eccessivo del programma);

2) utilizzo dei swapChain.

Ogni oggetto swapChain è una specie di miniDevice in grado di mantenere al suo interno un backBuffer e di direzionale un rendering verso un oggetto stabilito da noi. Inoltre ogni swap sarà indipendente per caratteristiche ma potrà utilizzare tutte le risorse messe a disposizione....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 15:21:43, in DirectX9, linkato 1716 volte)

Il termine CAD, Computer Aided Design tradotto in italiano come Progettazione Assistita al Calcolatore è la disciplicana che prevede il disegno grazie all'utilizzo del computer. Il termine trova il suo pieno significato nel disegno tridimensionale e quindi nella rappresentazioni di oggetti ed ambienti virtuali. I videogames derivano dal CAD da cui però non ereditano tutte le possibilità in quanto a differenza dei programmi di grafica come 3DStudioMax i primi devono lavorare in real time ad alta velocità. Una delle caratteristiche usate in CAD e disponibile ormai anche su molte schede video sono le High Order Primitive, ossia delle curve geometriche. Tra queste rientrano molte curve che a volte sono state nominate senza spiegare cosa siano. Curve di Hermite, le BSpline, le ormai "leggendarie" curve di Bezier o le NURBS. Queste particolari curve altro non sono che curve dotate di grandi flessibilità che possono essere tracciate tramite pochissime informazioni e che possiedono numerose proprietà....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 15:09:56, in DirectX9, linkato 1350 volte)

Come per lo stencil buffer anche lo ZBuffer presenta caratteristiche impostabili per ottimizzare e migliorare il calcolo delle profondità in DirectX. Le possibilità offerte da semplici manipolazioni possono risolvere infatti numerosi problemi offrendo ad esempio la possibilità di modificare la sensazione di profondità di una scena....

Vai all'articolo...

dividerMark
Di RobyDx (del 27/07/2007 @ 14:52:22, in DirectX9, linkato 1317 volte)

Il mipmapping è una sistema di gestione delle texture basato sull'utilizzo di numerose texture per uno stesso oggetto ma che differiscono tra loro solo per la dimensione. Se ci avviciniamo ad un oggetto infatti possiamo notare che una texture di dimensioni non sufficienti appare priva di definizione e quindi poco gradevole. Contemporaneamente però texture troppo definite per oggetti distanti sono solo un grande spreco di risorse. La soluzione è quindi creare numerose copie della texture in questione cambiandole a secondo della distanza. Questa soluzione fu usata manualmente già nei primi giochi 3D: directX è in grado di gestire tutto ciò tramite il MipMapping generando automaticamente una texture contenente tutte le mappe....

Vai all'articolo...

dividerMark
Di RobyDx (del 25/07/2007 @ 16:43:42, in DirectX9, linkato 1714 volte)

Una delle funzioni che non può mancare in un programma CAD è la possibilità di spostare un oggetto con il mouse. La cosa è tutt'altro che semplice perchè richiede numerosi conti e soprattutto un buon sistema di collisioni. DirectX ci viene incontro offrendoci una istruzione chiamata IntersectMesh che ci permette di ottenere facilmente il rayCollision, ossia la collisione di una semiretta con una mesh in modo da ottenere qualsiasi dato sull'impatto. La cosa può risultare peraltro utile per calcolare le collisioni di spari (che sono essenzialmente immediati ed in linea retta) ed in definitiva in molte situazioni di calcolo di collisioni. Ad esempio possiamo verificare se una linea che va da noi ad un nemico è interposta da un muro e quindi regolarci di conseguenza....

Vai all'articolo...

dividerMark
Pagine: 1 2 3 4 5 6 7 8 9
"Se tutto deve rimanere com'è, è necessario che tutto cambi"

Giuseppe Tomasi di Lampedusa, Il gattopardo


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

04/12/2021 @ 15:25:49
script eseguito in 67 ms