Di robydx (del 30/08/2007 @ 20:45:54, in Direct3D10, linkato 3357 volte)
L’Output Stream è una delle nuove funzionalità di DirectX10, che insieme al Geometry Shader permette di trasportare la gestione dei vertici dalla CPU alla GPU.
L’Output Stream è l’equivalente del Rendering su Texture applicato però al vertex buffer. Quando si utilizza un Output Stream i vertici invece di essere mandati al pixel shader vengono inviati in questo buffer che provvede a conservare questi dati. Successivamente si potrà usare l’Output Stream come una normale mesh contenente tutto ciò che ci abbiamo renderizzato sopra.
L’utilizzo di questa tecnologia permette di accelerare il rendering in modo veramente incredibile. ...
Di RobyDx (del 16/08/2007 @ 12:58:40, in Direct3D10, linkato 3363 volte)
Detto anche Toon Mapping è una tecnica di rendering per simulare il disegno dei cartoni animati, caratterizzato dall'utilizzo di ombre nette e di contorni.
Il Cell shading è un algoritmo che si compone di due fasi
Il cell shading vero e proprio, ossia il rendering della scena con ombre nette
L'outline rendering, ossia il rendering dei contorni...
Di RobyDx (del 09/08/2007 @ 11:20:25, in DirectX9, linkato 2490 volte)
Se realizzerete dei giochi da distribuire al publico incontrerete subito un problema di compatibilità nel settore del controllo. Se tutti infatti possiedono una tastiera più o meno uguale a quelle degli altri, questo non vale per i mouse e soprattutto non vale per i vari joystick, gamepad e volanti. Quanti pulsanti ha il joypad? Il mouse ha la rotellina? La leva è analogica? Tutti fattori che se non considerati potrebbero rendere i vostri giochi letteralmente incontrollabili. Risulta quindi molto importante conoscere a priori il tipo di controllo che si ha a disposizione in modo da gestire al meglio eventuali situazioni. Sapere quali sono le periferiche collegate al PC è molto semplice. Ecco come fare....
Di RobyDx (del 09/08/2007 @ 11:19:58, in DirectX9, linkato 4288 volte)
Senza dubbio la gestione delle periferiche di controllo è la parte più interessante di Direct Input. In Direct Input è possibile creare un sistema per la gestione di tutti i tipi di Joypad, volanti e qualsiasi diavoleria voi possediate. Potete inoltre controllare molti joypad contemporaneamente e la cosa risulta utile per giochi multiplayer. L'utilità non finisce qui dato che alcuni tipi di mouse potrebbero necessitare un controllo più preciso. Insomma la cosa si fa interessante....
Di RobyDx (del 09/08/2007 @ 11:10:47, in DirectX9, linkato 2806 volte)
Come per la tastiera anche per il mouse DirectInput rappresenta la migliore soluzione soprattutto per la velocità. Tuttavia, a seconda di quello che dovete fare, non tutti useranno questo tipo di controllo. Perchè? Il motivo è che Direct Input non restituisce la posizione in cui si trova lo schermo ma il numero di pixel di cui si è spostata la freccia in una direzione. La cosa è ottima per i Pc dato che la maggior parte dei giochi hanno controlli Mouse e Tastiera ma per alcuni programmi può essere più semplice da usare il sistema standard di VB (o meglio ancora un unione tra i due)....
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....
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....
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.
Di RobyDx (del 05/08/2007 @ 16:34:57, in Direct3D10, linkato 3973 volte)
Le cubemap sono particolari rappresentazioni di texture esistenti in DirectX ormai da molte versioni. Come dice il nome, una cubemap è una texture che contiene al sue interno 6 superfici quadrate disposte a cubo.
Il motivo per cui queste sono state create è sostanzialmente per simulare riflessioni dell'ambiente circostante gli oggetti (il cosidetto environment mapping). Come ripeto spesso nei miei tutorial, ogni volta che si renderizza un oggetto questo non può sapere cosa c'è intorno e l'unico modo per un oggetto di vedere ciò che c'è intorno a se è quello di renderizzare su una texture da utilizzare successivamente. ...