domenica 28 dicembre 2008 #

WPF e il 3D (prima parte)

Indice degli articoli su WPF e il 3D

Una delle grandi novità del .NET Framework 3.0 è Windows Presentation Foundation (WPF).

Inizialmente usato da pochi coraggiosi programmatori, con l'avvento del .NET Framework 3.5 e del successivo SP1 è diventato un ambiente più maturo ed  imparare ad utilizzarlo sta diventando un must se non si vuole perdere il “treno della tecnologia”.

Vedremo in questa serie di articoli come e quando utilizzare le sue capacità grafiche 3D sviluppando passo passo un cubo di Rubiks programmabile in 3D.

 

Halo 4 in WPF?

Il supporto grafico 3D di WPF non è pensato per videogiochi all’ultimo grido o per altri programmi che fanno pesantemente uso di grafica tridimensionale, sebbene sia basato su DirectX e si avantaggi dell’accelerazione grafica delle recenti schede video.
Per creare videogiochi con codice gestito (come C#) è possibile utilizzare XNA, un buon punto di partenza per impararlo è il sito XnaLearners, negli articoli saranno comunque evidenziate le differenze tra WPF e XNA per facilitare la “transizione” da un framework all’altro.
Con WPF è possibile creare visualizzazioni tridimensionali come grafici e modelli di oggetti/prodotti per rendere più usabile e accattivante il proprio programma.

 

In principio furono… i triangoli!

Alla base di tutti i modelli tridimensionali (anche i più complessi) ci sono solamente triangoli. Una sfera ad esempio è formata solamente da triangoli, più triangoli ci sono e più la sfera è definita.

lowTriangles highTriangles
Sfera con pochi triangoli Sfera con molti triangoli

NB: Esistono diverse tecniche per “far sembrare” più definito un modello composto da pochi triangoli (Texture Mapping, Bump mapping, etc..).

 

Sistema di coordinate 3D di WPF

Per poter definire i triangoli occorrono dei punti che hanno determinate coordinate, il sistema di riferimento per i punti nello spazio tridimensionale (a differenza del sistema di riferimento bidimensionale) è mostrato dalla seguente figura:

XYZ

I punti sono formalmente oggetti di tipo Point3D che contengono le coordinate X,Y e Z, in XNA i punti sono chiamati Vertici (Vertex) e possono essere rappresentati dal tipo Vector3.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (2)