| Now3D's profileNow3D LivePhotosBlogLists | Help |
|
March 09 N3D e le DirectXFinalmente l'accelerazione Hardware!!!Agognata da chiunque utilizzi un programma di grafica 3D, l'accelerazione Hardware ci da la possibilità di sfruttare le potenzialità della nostra Scheda Video.
Dopo tante richieste, l'appurata limitazione della grafica tramite GDI+ e la complessa implementazione del Framework 3.0, ho finalmente implementato una prima versione di accelerazione tramite le DirectX.
Ed ora passiamo alle tante novità di questa volta.
ScanLineL'ultima volta vi descrissi la modalità Flat in ScanLine, adesso parliamo delle ultime modalità ScanLine implementate: Gouraud e Phong.
Per tutte e due le modalità ci sono enormi miglioramenti dei tempi d'elaborazione rispetto alla versione VB6 di Now3D. Per la modalità Gouraud miglioramenti del 600%, mentre per la Phong miglioramenti "solo" del 300%!
Le DirectXA dire la verità iniziai provando ad implementare le OpenGL. Avevo capito come farlo, ed avevo trovato anche delle DLL x Dot.Net abbastanza semplici nell'uso. Ma, dopo settimane di test e poligoni che non si visualizzavano bene (la causa mi è ancora oscura), ho rinunciato.
Così, ho voluto dare retta a chi mi ha sempre consigliato di implementare le DirectX (vero MaxD?
Ho cercato su internet degli esempi di codice, ed ho iniziato a lavorarci.
Da subito ho notato una migliore risposta ai comandi dati via codice, ed anche una maggiore velocità rispetto alle OpenGL.
L'implementazione riguarda la classica modalità Gouraud, mentre per quanto riguarda la Phong (Pixel Shader) la vedo più difficile essendo questa modalità implementabile tramite dei shader scritti in un linguaggio poco pratico (simil assembly).
Ora veniamo al punto cruciale: i Tempi.
Ho notato subito che la scrittura dei poligoni a video tramite le DirectX è immediata, quello che continua a pesare di più è il motore di Now3D.
Con tutte le ottimizzazioni possibili, sono arrivato ai seguenti tempi:
(i test sono stati fatti utilizzando una NVidia 7600GT in modalità AA 4x)
Per quanto riguarda l'applicazione delle DirectX in Now3DPocket (Now3D per Palmare), ho già studiato il codice e lo implementerò sicuramente in un futuro non molto lontano.
I MaterialiSto iniziando anche ad implementare le strutture principali sulle quali si baserà la gestione dei materiali. E' basata su classi ereditabili e con interfacce d'immediato utilizzo, così da renderla facilmente espandibile.
Tra i materiali di default che ho implementato ci sono: Phong, Anisotropico (Ashikhmin), Blinn-Oren Nayar, Glass.
Manca ancora tanto per arrivare alla stessa flessibilità della struttura a materiali e mappe di Now3D VB6, però con molta pazienza sarà implementato tutto e pure meglio.
Prima Demo!!!Per concludere, vi invito a scaricare la prima demo riguardante Now3D.Net e le DirectX al seguente indirizzo: http://www.now3d.it/files/N3DInterface.exe.
Non aspettatevi però meraviglie, è solo una semplice demo per mostrare l'interazione tra il mouse e gli oggetti (passando sopra i cubi cambiano colore e cliccandoci sopra ruotano casualmente) e l'uso delle DirectX (provate a selezionare la casella di spunta: "DirectX").
Se avete qualche idea per abbellire la demo (senza esagerare con le pretese però
Alla prossima!
Giuliano Cornacchiola
Stato Attuale lavori
Comments (2)
Trackbacks (1)The trackback URL for this entry is: http://now3d.spaces.live.com/blog/cns!4DCDB5548CDBFC04!140.trak Weblogs that reference this entry
|
|
|