Di RobyDx (del 29/07/2007 @ 08:39:33, in DirectX9, linkato 2322 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....
Di RobyDx (del 29/07/2007 @ 08:45:25, in DirectX9, linkato 2118 volte)
Lo shadow mapping si basa su un concetto semplice ma geniale. Osservate l'immagine:
La scena viene renderizzata su una texture inquadrando la scena dalla telecamera. Il pixel shader restituisce per ogni pixel la sua distanza dalla luce. La matrice world_view_projection usata per renderizzare questa scena viene salvata ed utilizzata durante il rendering della scena. Moltiplicando la posizione del vertice per questa motrice si ottiene infatti la posizione del vertice come se fosse inquadrato dalla luce....
Di robydx (del 29/07/2007 @ 21:27:42, in Direct3D10, linkato 2500 volte)
Le tecniche di post processing sono tutti quegli effetti che si basano sull'utilizzo di texture che contengono il rendering della scena. Un esempio è il blur (la sfocatura dell'immagine). Tutta la scena viene renderizzata su una texture che poi viene applicata su un rettangolo e renderizzata con uno shader che restituisce per ogni pixel la media dei pixel circostante. Questo è possibile solo usando una texture contenente la scena in quanto è l'unico modo per poter leggere i pixel intorno a quello che stiamo per renderizzare.
Molte tecniche comunque si basano sulla necessità di avere molteplici rendering contemporaneamente. Non è difficile nei giochi moderni avere scene che necessitano di 2, 4 o anche più versioni della scena (ad esempio contenenti solo le normali, la distanza dalla telecamera etc). Utilizzando il render target su una singola texture è necessario ripetere il rendering tante volte quante sono le scene processando la geometria tante volte. Per ovviare a questo fin da DirectX9 è stato introdotto il rendering su multi texture, ossia la possibilità di renderizzare la scena su 4 texture contemporaneamente.
Questo avveniva utilizzando un pixel shader che restituisse 4 colori, anzichè 1, ognuno da riempire a seconda delle proprie necessità.
Direct3D10 non solo potenzia questo processo portando ad 8 il numero di render target da poter utilizzare contemporaneamente ma supera anche il limite che c'era in DirectX9. ...
Di VinceDX (del 31/07/2007 @ 12:20:53, in News, linkato 1313 volte)
Buongiorno a tutti. Come vi avevamo promesso qualche giorno fa, un nuovo forum è ora disponibile. Il link lo trovate nella barra laterale, qui a destra. In ogni caso, basta aggiungere la parola forum al nostro dominio.
Di RobyDx (del 01/08/2007 @ 10:41:16, in Software, linkato 1222 volte)
E' stata rilasciata la versione finale di FX Composer, il tool per programmare i vostri shader per poi importarli nei vostri motori grafici. Molte novità, tra cui il supporto a formati come fbx e Collada, calcoli delle prestazioni e molti effetti già inclusi.
Nota dolente: ad un primo avvio l'FX Composer rimane sempre poco user friendly (quindi o vi leggete con attenzione la guida o non riuscirete neanche a farlo partire).
Infine, dramma per me, l'FX Composer 2.0 non supporta le DirectX10, quindi almeno per me che ormai sono passato all'ultimo capolavoro della Microsoft non mi resta che chiuderlo ed utilizzare i miei demo per fare i test. Per il resto se ci perdete un pò di tempo ad impararne l'utilizzo lo troverete senz'altro utile.
Qui potete trovare l'FX Composer con tanto di guida e documentazione
Di RobyDx (del 01/08/2007 @ 11:07:52, in DirectX9, linkato 1272 volte)
Come spiegato nei tutorial di base di Direct3D i triangoli vengono visualizzati solo se disegnari in senso orario. La cosa può essere cambiata (se ad esempio si usa una riflessione l'ordine dei punti viene invertito). Occorre usare la proprietà cullmode del device e cambiarla prima del rendering che vi interessa.
Di RobyDx (del 01/08/2007 @ 11:08:45, in DirectX9, linkato 1299 volte)
Le figure sono normalmente viste come solidi con facce piene. Per creare alcuni simpatici effetti potete cambiare prima di ogni rendering come riempire le figure impostanto
device.RenderState.FillMode
Uguale ad uno di questi valori.
FillMode.Solid
Standard di default corrisponde a figure piene.
FillMode.Point
Si vedranno solo i vertici del solido
FillMode.WireFrame
Letteralmente "fil di ferro" permette di vedere solo le linee che compongono i triangoli.
Di RobyDx (del 01/08/2007 @ 11:10:28, in DirectX9, linkato 1776 volte)
Il viewport è un oggetto che se passato al device permette di specificare una zona dello schermo di cui rappresentare una scena. Tutta la grafica verrà disegnata all'interno della zona rettangolare specificata. Questo significa che la grafica 3D verrà rimpicciolita all'interno del rettangolo ma quella 2D (sprite e texture) dovrà essere proporzionate e posizionata per bene (altrimenti zone della grafica 2D verranno tagliate)....
Di RobyDx (del 02/08/2007 @ 08:30:18, in DirectX9, linkato 1583 volte)
La luce speculare è in pratica il riflesso metallico che alcuni oggetti emanano. L'esempio tipico è quello dell'auto che nonostante sia di un colore (ad esempio rosso) ha dei riflessi bianchi sotto la luce del sole. Impostare la luce speculare risulta quindi fondamentale per oggetti metallici (specie se unito ad altri effetti di riflessione dell'immagine).
Esempio di teiera con specular light da sinistra a destra: effetto disattivato, con sharpness a 10, con sharpness a 25....
Di RobyDx (del 02/08/2007 @ 08:32:44, in DirectX9, linkato 1662 volte)
Può risultare utile a volte salvare le texture su file, specie se sono il risultato di un rendering su texture o di un trattamento particolare della stessa. Salvare una texture è molto semplice e non richiede la creazione di nessun oggetto....