Di RobyDx (del 02/08/2007 @ 08:38:11, in DirectX9, linkato 1919 volte)
L'antialiasing è un processo atto ad evitare la seghettatura che inevitabilmente viene a crearsi durante il rendering di poligoni 3D. Soprattutto per risoluzioni non altissime l'effetto di aliasing può influire notevolmente sulla qualità grafica. Tuttavia in DirectX è possibile utilizzare questo effetto per migliorare sensibilmente la qualità ma a caro prezzo: l'antialiasing appesantisce molto il PC e di conseguenza il gioco subirà inevitabilmente dei rallentamenti su sistemi non sufficientemente potenti. L'effetto viene quindi consigliato come opzione per sistemi potenti....
Di RobyDx (del 02/08/2007 @ 08:41:49, in DirectX9, linkato 2383 volte)
Quando si realizzano giochi occorre sempre tenere presente tutti i possibili tipi di computer che il giocatore può avere. Una delle tante cose da tenere presente (forse la più banale ma non per questo meno importante) è la velocità del gioco. Cosa succede se il PC in cui gira il gioco è troppo debole: semplice andrà lento! Tuttavia se è troppo potente il gioco schizzerà a velocità altissime rendendolo ingiocabile. Se il primo caso richiede molte soluzioni complesse per il secondo è sufficiente tenere costanti i numeri di frame del gioco. Queste solitamente corrispondono al numero di giri che il ciclo principale effettua....
Di RobyDx (del 03/08/2007 @ 09:56:07, in DirectX9, linkato 1405 volte)
Come in DirectDraw è possibile anche in Direct3D creare velocemente dei rettangoli pieni di ogni colore sullo schermo. Questo tramite l'istruzione
device.ColorFill(superficie, rettangolo, Color)
Con questa istruzione potete facilmente riempire rettangoli su una qualunque superficie (estratta ad esempio anche dalle texture). Naturalmente anche il backbuffer è una superficie quindi potete usare direttamente questa
device.ColorFill(device.GetBackBuffer(0, 0, BackBufferType.Mono), New Rectangle(0, 0, 300, 300), Color.White)
In questo esempio riempio il backbuffer di bianco nel rettangolo specificato. Utile
Di RobyDx (del 03/08/2007 @ 09:58:19, in DirectX9, linkato 1780 volte)
La gamma correction è la gestione della luminosità dei colori sullo schermo. Ognuno dei 16 milioni di colori che le schede di oggi supportano ha un diverso grado di luminosità espresso con un valore da 0 a 65535 permettendo migliore resa grafica. Molte schede danno la possibilità di modificare la gamma del monitor ma DirectX permette di farlo dinamicamente nei giochi fullscreen. Possibilità? Potete ad esempio scurire tutti i colori per creare chiusure degli schermi o aumentarli per far sembrare più luminosa una stanza. Potete addirittura aumentare solo una tonalità per far virare i colori verso quello che volete....
Cambiando il colore nell'opzione TextureFactor potrete far virare il colore ed in particolare modificando il valore alpha del colore potrete deciderne il grado di trasparenza. Per tornare alla normalità impostare l'alphaArgument a Diffuse. Nota fondamentale: come dovreste aver capito gli effetti di alphablending funzionano solo se gli oggetti vengono renderizzati in ordine dal più lontano al più vicino. Se invece l'oggetto più vicino verrà renderizzato prima di quello che gli sta dietro l'effetto non funzionerà.
Di RobyDx (del 04/08/2007 @ 09:12:23, in DirectX9, linkato 1576 volte)
Le superfici in DirectDraw sono come sappiamo degli array di numeri corrispondenti ai colori. L'array di colori viene estratto eseguengo una operazione chiamata accesso alla memoria che genera una matrice di dimensione larghezza x altezza. Ogni punto di questa matrice è un intero che tramite la classe color possiamo facilmente gestire per ottenere o inserire il colore. Prima che iniziate a procedere vi avverto che DirectDraw presenta un grosso bug in questa istruzione. Se avete aggiornato alla versione 9.0b questa funzionerà altrimenti non troverete questa istruzione e vi sarà impossibile compiere questa azione....
Di RobyDx (del 04/08/2007 @ 09:14:06, in DirectX9, linkato 2078 volte)
Come sappiamo in DirectX possiamo usare molti formati per le immagini come bitmap, jpeg o tga. Tutte queste però vengono gestiste come bitmap al momento dell'effettivo utilizzo sia dal punto di vista della memoria che della velocità. Esistono però alcuni formati speciali che vengono sfruttati in maniera migliore i DXT. Ci sono 5 formati da DXT1 a DXT5 che si differenziano per spazio occupato e velocità di rendering. Per utilizzare questi formati potete o caricare un immagine effettuando una conversione in questo formato o caricare un'immagine da file già in questo formato....
Di RobyDx (del 06/08/2007 @ 09:48:43, in DirectX9, linkato 1636 volte)
Caricate una bitmap 32x32 su una superficie
Dim c As Surface c = device.CreateOffscreenPlainSurface(32, 32, Format.A8R8G8B8, Pool.Default) SurfaceLoader.FromFile(c, AppPath() & "\icona.bmp", Filter.None, Color.White.ToArgb)
ora assegnatela al device
device.SetCursorProperties(X, Y, c)
X e Y sono lo slittamento che il cursore avrà rispetto all'effettiva posizione del mouse (ad esempio impostando 16,16 il mouse cliccherà nel centro dell'icona mentre con 0,0 nell'angolo alto-sinistro). C è la superficie creata
device.ShowCursor(True)
Questa istruzione mostra l'icona. Va inserita nel ciclo, possibilmente immediatamente subito dopo il doEvents
Impostando a false invece il mouse sarà invisibile. Questo sistema è abbastanza inutile per cursori fissi mentre è utile per cursori in movimenti per la velocità di cambio.