Di robydx (del 24/01/2007 @ 20:59:43, in DirectX9, linkato 2058 volte)
Le superfici in Direct3D potrebbero quasi definirsi un argomento di base dato che compare in molti contesti. Una superficie è una oggetto che rappresenta una zona di memoria in cui è contenuta una immagine. Una superficie si trova dietro ad ogni elemento di Direct3D dato che il backbuffer, lo Z buffer, il front buffer ed addirittura le texture non sono altro che superfici specializzate. Una superficie può lavorare però anche da sola diventanto una specie di sprite ed essere utilizzata per i processi di copia ed incolla di immagini (simili a quelli che si utilizzano in DirectDraw ma meno efficienti). La cosa si presta molto per titoli o per tenere in memoria determinate situazioni (come ad esempio preparare una superficie ed utilizzarla)....
Di RobyDx (del 26/01/2007 @ 19:29:02, in DirectX9, linkato 7409 volte)
Uno dei problemi che si possono incontrare quando si comincia a lavorare in 3D è spesso la gestione stessa degli ambienti tridimensionali. Infatti, a differenza dei giochi bidimensionali, occorre avere una buona matematica per fare in modo che tutto sia visualizzato correttamente. I principi teorici su cui si fonda la grafica a 3 dimensioni sono infatti molto complessi e spesso oggetto solo di corsi universitari e professionali. In grafica 3D movimenti, rotazioni, ridimensionamenti sono comunemente chiamati trasformazioni geometriche e non è sufficiente dire "spostati a destra o ruota" perchè i dettagli sono molti....
Di RobyDx (del 26/01/2007 @ 21:04:15, in DirectX9, linkato 2054 volte)
Inserendo texture nel device salta immediatamente all'occhio la presenza di un indice nell'istruzione setTexture. Una delle possibilità offerte da DirectX ormai da molte versioni è proprio la possibilità di poter inserire molte texture sull'oggetto e regolarne il comportamento. L'utilizzo di texture multiple è alla base di numerosissimi effetti, molti dei quali estremamente complessi e spettacolari....
Di RobyDx (del 27/01/2007 @ 12:40:41, in DirectX9, linkato 1923 volte)
Un fattore molto importante nei giochi fullscreen è la stabilità. Situazioni come la pressione del tasto windows, la riduzione ad icona della finestra o la presa di possesso dello schermo da parte di un'altra applicazione possono interrompere la modalità fullscreen e generare errori. Questo non è il comportamento di un programma serio. Non potete costringere il giocatore a dover ricominciare per un banale errore e tanto meno non potete obbligare il giocatore ad uscire dal gioco perchè deve scaricare un'istante la posta. In definitiva dovete permettere al giocatore di ridurre ad icona il gioco fullscreen senza che questi generi errori. Questa situazione è chiamata Lost Device....
Di RobyDx (del 28/01/2007 @ 15:29:06, in DirectX9, linkato 1671 volte)
L’alphablending è una delle tante possibilità offerte da DirectX per la gestione di effetti grafici. L’alphablending altro non è che la gestione degli effetti di trasparenza che un oggetto può mostrare quando ne copre un altro. La gestione di tale effetto è molto semplice e completa e rappresenta una base per ogni gioco. Gli effetti che è possibile realizzare con questa tecnica sono molti e, con una buona dose di abilità, estremamente spettacolari. Esplosioni, scie luminose, e tutto quello che richiede una trasparenza viene fatto comunemente con l’alphablending....
Di RobyDx (del 28/01/2007 @ 15:55:41, in DirectX9, linkato 2520 volte)
Un sistema a particelle è la realizzazione di un effetto visivo che si basa sul movimento di numerosi oggetti simili tra loro. Un esempio di sistemi a particelle è ad esempio la pioggia o la neve, scintille o tempeste di sabbia. Tutte queste situazioni sono composte da un numero più o meno elevato di oggetti simili tra loro che seguono una regola comune nel loro movimento (la pioggia ad esempio è composta da tante gocce che cadono più o meno verticalmente). Nella computer grafica le particelle sono utilizzate per rappresentare in 3D diverse situazioni non facilmente realizzabili con un modello solido come ad esempio fiamme o getti d’acqua. Quello che a prima vista si potrebbe risolvere muovendo tanti oggetti sullo schermo si scontra con la potenza effettiva dei computer attuali. Una pioggia con appena 100 gocce si tramuterebbe in un appesantimento eccessivo per ogni sistema e di conseguenza agire in questo senso non và bene. Per questo le librerie grafiche hanno adottato sistemi particolarmente efficienti per rappresentare un gran numero di particelle sullo schermo. In DirectX si chiamano Point Sprite.
Di RobyDx (del 28/01/2007 @ 16:06:28, in DirectX9, linkato 1691 volte)
La nebbia in DirectX (o per dirla in modo più fico l'effetto di fogging) è uno dei numerosi effetti che vengono utilizzati nella grafica tridimensionale. Questo effetto, uno dei più utilizzati, consiste semplicemente in quello che il nome suggerisce: la visualizzazione della nebbia nella scena con l'intensità ed il colore che noi preferiamo. Molte persone che hanno seguito l'evoluzione dei giochi 3D hanno spesso una considerazione negativa dell'effetto nebbia. Questo effetto che è nato per dare un maggior realismo alle scene è stato infatti usato per anni per coprire il problema del clipping. Per chi non sapesse cosè il clipping sappiate che il concetto è molto semplice. Un calcolatore ha una certa potenza di calcolo e di conseguenza se deve visualizzare una scena 3D troppo grande (unita alla gestione del resto gioco) non riesce ad aggiornarla sufficientemente veloce. Di conseguenza si cerca di visualizzare solo gli oggetti vicini non renderizzando quelli distanti in modo da diminuire il numero totale di poligoni. Questo si chiama appunto clipping. Dato che in questo modo si creano dei vuoti che dovrebbero contenere gli elementi più distanti si cerca allora di nasconderli. Uno dei modi più usati è proprio la nebbia. Ad esempio si può inserire una nebbia molto fitta che impedisce di vedere oltre i 30 metri e quindi non renderizzare gli oggetti oltre questa distanza. Purtroppo a volte viene impiegata tanta di quella nebbia da rendere troppo stretta la visuale e quindi difficile orizzontarsi negli ambienti di gioco proposti. Da qui la sua connotazione negativa. Oggi i calcolatori attuali e soprattutto le console non dovrebbero più avere questi problemi e quindi non dovrebbe essere necessario utilizzare la nebbia per nascondere problemi nel motore del gioco. Il fogging rimane comunque un effetto molto bello che può dare un tocco di realismo alla scena e (senza esagerare) nascondere un pò di clipping....
Di RobyDx (del 08/02/2007 @ 21:21:27, in DirectX9, linkato 1765 volte)
Quando si programma una qualunque applicazione 3D che deve essere renderizzare grafica in tempo reale è necessario prestare sempre attenzione al numero dei poligoni da utilizzare per non appesantire troppo il sistema. Risulta comunque innegabile che più poligoni ci sono e più bella è la scena. L'idea sarebbe quindi quella di visualizzare oggetti più dettagliati quando sono vicini e meno quando sono lontani. Le progressive mesh sono una forma potenziata delle normali mesh che sono in grado di variare dinamicamente il numero dei poligoni dell'oggetto che contengono. In questo modo potrete variare il numero dei poligoni dell'oggetto per variarlo ad esempio con la distanza o in base al sistema giovando notevolmente sulla leggerezza del motore grafico (se saprete adoperarlo bene)....
Di RobyDx (del 08/02/2007 @ 21:29:30, in DirectX9, linkato 2012 volte)
Nel rendering grafico 3D (così come in quello 2D) DirectX effettua sostanzialmente un processo di scrittura a più fasi. Nella prima fase i modelli 3D e gli sprite vengono tracciati sul backbuffer che rappresenta sostanzialmente l'area di lavoro di DirectX e quando il backbuffer è pronto viene mandato al front buffer e quindi tracciato sullo schermo. Se ora ci pensiamo il backbuffer non è altro che una superficie grafica ossia una specie di grande matrice bidimensionale dove vengono memorizzati per ogni pixel i colori e le posizioni in profondità (questo comunque viene scritto nello Zbuffer) per ogni oggetto tracciato. Ogni volta che un nuovo oggetto viene disegnato sul backbuffer sfrutta i valori esistenti per venire tracciato (sfrutta ad esempio i colori già presenti per calcolare le trasparenze ed i valori dello ZBuffer per capire se un pixel stà dietro o davanti ad un oggetto). DirectX ci offre tra le sue tante funzioni la possibilità di gestire al meglio questo processo e addirittura di eseguirlo non solo sul backbuffer ma su qualsiasi superficie compatibile. Questo processo esistente da ormai molte versioni di DirectX è stato migliorato e semplificato notevolmente tanto da poter essere facilmente utilizzato senza problemi. La superficie più comoda su cui renderizzare una scena è senza dubbio una texture. Le possibilità offerte da questa tecnica sono numerosissime. Potete infatti renderizzare una scena 3D su una texture e metterla su un monitor in modo da simulare una telecamera o mettere su texture la stessa scena vista da diversi angoli e visualizzarle come sprite. Nei videogiochi di ultima generazione il rendering su texture viene utilizzato anche per i riflessi degli oggetti (i riflessi di una pista su un'auto) o per preparare zone molto complesse da utilizzare spesso (ad esempio un quadro). Insomma ci si possono fare tante cose alcune semplici, altre complicate ma tutte passano per questo processo quasi banale che in DirectX9 viene gestito dall'oggetto RenderToSurface....
Di RobyDx (del 08/02/2007 @ 21:43:58, in DirectX9, linkato 2607 volte)
Le environment map sono una classe evoluta di texture che presentano caratteristiche di tridimensionalità. Tra di esse questo tutorial ne illustrerà una: la cube texture. ...