| Now3D's profileNow3D LivePhotosBlogLists | Help |
|
July 11 NURBS e DemoNuove potenzialitàDopo mesi di silenzio, eccomi di nuovo a presentarvi gli ultimi sviluppi di Now3D versione Dot.Net.
Dall'ultima volta ho voluto aggiungere nuove funzionalità che, spero, daranno un qualcosa in più a Now3D.
Ed ora veniamo alle news.
Le NURBSUna delle strutture tridimensionali che mi hanno sempre incuriosito sono le superfici parametriche.
Fanno parte di questa tipologia: le NURBS, le B-spline e le Bezier.
Tempo fa studiai le curve Bezier con dei buoni risultati, adesso ho messo in pratica quello che appresi di queste curve e l'ho ampliato in termini tridimensionali.
Esistono vari algoritmi di visualizzazione delle superfici parametriche, da quelli che suddividono la patch in poligoni a quelli basati sull'intersezione di un raggio con la superficie (Raytracing), per adesso, ho scelto quella più semplice da implementare, anche se non la più veloce, la tessellazione (tesselation), dove suddivido ogni singola patch in una griglia N*M dove N e M definiscono il dettaglio con il quale sarà resa la patch, maggiore è il dettaglio e più morbida sarà la silhouette della patch. Massive DemoCome promesso la volta scorsa, ho implementato la prima Demo di Now3D.Net.
Contiene molte delle funzionalità di Now3D.Net, e per l'occasione ho voluto inserito il rendering RayTracing di un oggetto molto particolare.
Lo shape MeshInstancePer questo motivo ho voluto implementare uno shape speciale di tipologia mesh ai quali vertici è possibile applicare ulteriori shape di qualsiasi tipologia. L'implementazione è stata più complessa di quello che pensavo, ma i risultati valgono la fatica. Ho dovuto inserire un limite all'utilizzo di questo particolare Shape, non si potrà istanziare più di una volta lo stesso Shape. Comunque, prossimamente, renderò questa struttura ancora più flessibile, e spero che in futuro di poterla utilizzare per simulare i peli (Fur) o per estendere una pianta più volte fino a formarne delle distese. La DemoPotete scaricare la demo da questo indirizzo: http://www.now3d.it/files/N3DNetMassiveDemo.msi
Questa demo è incentrata su una nuova potenzialità di Now3D.Net, e cioè la possibilità di renderizzare miliardi di poligoni, un qualcosa di impensabile per il vecchio Now3D versione VB6.
In questa modalità vedrete la renderizzazione di uno shape MeshInstance dove lo shape principale è una teiera a 8 suddivisioni e gli shape "figli" sono anch'essi delle teiere ma a a 128 suddivisioni. Il numero di poligoni presenti in questa scena sono ben 1.618.577.408! Dopo aver premuto il pulsante "Render", si avvierà una fase durante la quale verranno effettuati dei precalcoli atti a velocizzare il rendering finale. Una volta conclusa la fase di precalcolo, potrete testare con mano le potenzialità del nuovo Now3D. I tempi di rendering (teiera in posizione di default e finestra nelle dimensioni iniziali) sono 34 sec su un PC equipaggiato di una CPU E8400 3GHz e 3GB di Ram. Altre NewsI Riflessi RayTracingIl risultato potrebbe sembrare poco fotorealistico, e il motivo principale sta nella mancanza di vari algoritmi di fall-off (caduta). Ottimizzazione della memoriaCon l'occasione di rivedere da zero il motore grafico di N3D ho deciso di ottimizzare l'occupazione di memoria in caso del RayTracing di shape di tipo Mesh, ottenendo ottimi risultati.
Ho rivisto completamente le strutture dati che utilizzavo per appoggiare dei dati di precalcolo, queste le usavo per velocizzare il rendering, ma adesso, grazie all'algoritmo octree, non sono più necessarie.
Una scena formata da 1792 oggetti-istanza da 903.224 poligoni ciascuno per un totale di 1.618.577.408 poligoni occupa appena 250MB di ram (vedi la Demo Massive)!
Alla prossima!
Giuliano Cornacchiola
Stato Attuale lavori
TrackbacksThe trackback URL for this entry is: http://now3d.spaces.live.com/blog/cns!4DCDB5548CDBFC04!182.trak Weblogs that reference this entry
|
|
|