| Now3D 的个人资料Now3D Live照片日志列表 | 帮助 |
|
11月16日 Shape & ScanLineBuone nuove o Cattive nuove?Ciao a tutti,
proprio adesso che stavo ottenendo i primi frutti della programmazione DotNet Framework 2.0 applicata a Now3D, è uscito il Framework 3.0. La differenza tra questo nuovo Framework e quello precedente è sostanziale! L'implementazione di una qualunque compatibilità tra la versione attuale di Now3D Dot.Net e questo nuovo Framework sembra decisamente complicata.
Quindi, ho deciso di continuare (per adesso) a programmare con il Framework 2.0, comunque quando deciderò di convertire Now3D nel Framework 3.0 avrò almeno il beneficio di una struttura di classi già bella e fatta (a meno che la Microsoft non decida di cambiare anche il linguaggio VB.Net
Ed ora parliamo delle novità.
La MemoriaUna rivisitazione nel modo con cui memorizzo i vertici e di come li trasformo nelle coordinate World e poi Camera, ha portato ad un risparmio nell'uso della memoria anche del 300%.
Gli ShapeDurante il primo intervento vi avevo parlato delle istanze, cioè una astrazione di tutti gli oggetti che devono essere manipolati o visualizzati sullo schermo (oggetti, telecamere, luci, ecc...), a queste istanze si può associare una Mesh (cioè un insieme di triangoli) e la stessa mesh si può associare a una o più istanze, così da ottimizzare l'uso della memoria.
Ora ho deciso di astrarre anche la classe mesh che di fatto è diventata lo Shape.
Lo shape potrà essere di tipologie diverse ed ogni tipologia potrà avere un modo differente di ottenere l'HitTest (metodo per sapere se il mouse sta dentro o fuori l'oggetto visualizzato sullo schermo), di essere visualizzata in Wireframe in ScanLine ed in RayTracing.
Per ora ho sviluppato due tipologie principali di Shape: le Mesh e i Path.
Tramite le mesh si possono costruire gli oggetti contenenti poligoni, per esempio le primitive della sezione "Poligoni" creabili con la vecchia versione di Now3D.
Invece grazie ai Path è possibile implementare le visualizzazioni delle Telecamere, delle Luci, e delle primitive come quelle della sezione "Funzioni Matematiche" sempre della prima versione di Now3D.
In definitiva tramite questa classe sarà facilmente possibile aggiungere nuovi modi di visualizzare un qualcosa nello schermo, penso ad esempio ad una possibile e futura implementazione delle superfici NURBS.
Lo ScanLineRicordate le modalità di Anteprima della prima versione di Now3D? Flat Shading, Gouraud Shading, Quick Phong Shading e Z Phong vi ricordano qualcosa? Si? Perfetto perchè sto iniziando a lavorare proprio su queste modalità di visualizzazione.
Ho cominciato (naturalmente) dalla più semplice il Flat Shading, e come potete vedere dalle immagini allegate anche con discreti risultati.
I primi risultati sono sorprendenti! In alcuni casi (dipende dalla grandezza dello schermo e dal numero di poligoni dell'oggetto) si possono ottenere miglioramenti nelle prestazioni del 500% su sfere con circa 4000 poligoni e perfino del 1600% con 65000 poligoni, rispetto alla vecchia versione di Now3D. E sopratutto riesco facilmente a muovere 500.000 poligoni!!!
Una novità delle modalità ScanLine è la possibilità di visualizzarle in AntiAliasing, l'immagine in allegato della versione di Now3D.Net per PC ne è un valido esempio.
Siamo arrivati alla conclusione di questo intervento e vi chiedo gentilmente di essere più interattivi.
Se avete richieste o dubbi non aspettate. Chiedetemi!
Alla prossima!
Giuliano Cornacchiola
P.S.: Mi dispiace per tutti coloro che mi spediscono e-mail e che non hanno ancora ricevuto una risposta, ma tra il lavoro, il programmare Now3D, lo scrivere in questo Blog, e lo stare in famiglia, il tempo rimanente è diventato veramente poco.
Abbiate pazienza, prima o poi rispondo a tutti.
Stato Attuale lavori
|
|
|