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

Di RobyDx (del 09/08/2007 @ 11:06:17, in DirectX9, linkato 4822 volte)

DirectInput è la componente di DirectX responsabile della gestione degli input da periferiche esterne. Nonostante Visual Basic fornisca una gestione molto affidabile per la gestione di tastiera e mouse questa si rivela troppo lenta per affrontare "le fatiche" di un gioco in real time. Se ad esempio un gioco gira a 60 frame al secondo, anche gli input devono essere gestiti con la stessa frequenza ed è quindi necessaria un controllo più diretto. Inoltre Direct Input è l'unico modo per ottenere input da JoyStick, gamepad, volanti ed ogni altra periferica esistente. Capite quindi che Direct Input è fondamentale per un gioco. Usare Direct Input è molto semplice ed in DirectX 9 ancora di più. La prima periferica che andiamo ad analizzare sarà la tastiera del PC....

Vai all'articolo...

dividerMark
Di RobyDx (del 06/08/2007 @ 09:54:33, in DirectX9, linkato 2214 volte)

La tecnica dell'occlusion query è un meccanismo grazie al quale directX riesce a dirvi se un poligono è visibile o meno agli occhi della telecamera.

Dim q As Direct3D.Query

q = New Direct3D.Query(device, QueryType.Occlusion)

Con queste istruzioni avete creato un oggetto per effettuare una query di tipo occlusion. All'interno della scena

q.Issue(IssueFlags.Begin)
renderizzate qualcosa
q.Issue(IssueFlags.End)

Ora tutto ciò che è stato renderizzato sullo schermo all'interno del blocco begin e end non è stato renderizzato ma solo calcolato. Nella query è stato memorizzato il numero dei pixel visibili dell'oggetto.

Dim n As Integer
n = q.GetData(GetType(Integer), True)

Con queste istruzioni possiamo leggere questo numero, in n ci sarà il numero dei pixel che verranno renderizzati sullo schermo....

Vai all'articolo...

dividerMark
Di RobyDx (del 06/08/2007 @ 09:48:43, in DirectX9, linkato 1635 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.

dividerMark
Di RobyDx (del 06/08/2007 @ 09:47:20, in DirectX9, linkato 1537 volte)

Il texture wrapping è semplicemente un sistema con cui le texture possono essere avvolte attorno ad un oggetto in modo automatico.

device.RenderState.Wrap0=WrapCoordinates.One

Il primo parametro indica da 0 a 15 le coordinata texture da avvolgere mentre l'ultimo la direzione.

Le opzioni sono

Zero: lungo U
One: lungo V
Two: lungoW
Three: lungo una ipotetica quarta coordinate...

Vai all'articolo...

dividerMark
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....

Vai all'articolo...

dividerMark
Di RobyDx (del 04/08/2007 @ 09:12:23, in DirectX9, linkato 1575 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....

Vai all'articolo...

dividerMark
Di RobyDx (del 04/08/2007 @ 09:09:34, in DirectX9, linkato 1331 volte)

Se dovete far diventare un oggetto gradatamente trasparente non c'è molto da fare: basta impostare l'alphablending con queste opzioni

device.RenderState.AlphaBlendEnable = True
device.RenderState.SourceBlend = Blend.SourceAlpha
device.RenderState.DestinationBlend = Blend.InvSourceAlpha
device.TextureState(0).AlphaArgument1 = TextureArgument.TFactor
device.RenderState.TextureFactor = Color.FromArgb(alpha, 255, 255, 255).ToArgb

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à.

dividerMark
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....

Vai all'articolo...

dividerMark
Di RobyDx (del 03/08/2007 @ 09:56:07, in DirectX9, linkato 1404 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

dividerMark
Di RobyDx (del 03/08/2007 @ 09:55:17, in DirectX9, linkato 1283 volte)

E' possibile in DirectX escludere uno o più dei quattro colori basi (rosso, verde, blu e alpha). La cosa è molto semplice.

device.RenderState.ColorWriteEnable = valore

valore è uno di questi valori.

ColorWriteEnable.Alpha
ColorWriteEnable.Blue
ColorWriteEnable.Green
ColorWriteEnable.Red
ColorWriteEnable.RedGreenBlueAlpha
ColorWriteEnable.RedGreenBlue

In Questo modo solo i colori specificati verranno visualizzati e tutta la scena assumerà quella tonalità.

Sono possibili combinazioni tramite OR (ColorWriteEnable.Red OR ColorWriteEnable.Blue ad esempio).

dividerMark
Pagine: 1 2 3 4 5 6 7 8 9
"Avete mai notato che la velocità del computer è sempre inversamente proporzionale alla fretta di chi lo sta usando?"

Sergio Boarina


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

22/11/2024 @ 10:16:53
script eseguito in 47 ms