Articoli

Papervision3D - Il materiale wireframe

logoPV3D

Tutti gli esempi che abbiamo visto fino ad ora utilizzano un materiale wireframe. Papervision3D imposta questo come tipo predefinito di materiale per la maggior parte degli oggetti. Esso disegna le linee tra tutti i vertici che formano i triangoli di un oggetto 3D. Questo è utile per il debug perché si visualizzano tutti i triangoli che vengono disegnati in runtime. Anche se si potrebbe ritenere un materiale leggero, è in realtà molto pesante per il rendering. Essa si avvale del disegno al tratto di Flash, che è un'operazione relativamente pesante.

Per impostazione predefinita, un materiale wireframe viene generato quando si lavora con le primitive.
Tuttavia, possiamo creare un materiale wireframe a mano. Creiamo un nuovo progetto chiamato WireframeMaterialExample per definire il materiale manualmente.
Prima di poter utilizzare il materiale wireframe, abbiamo bisogno di importare la classe che lo crea.
Come la maggior parte dei materiali, si trova nel pacchetto org.papervision3d.materials.
Aggiungere le importazioni seguenti in cima alla vostra classe, subito dopo le altre importazioni:

import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.objects.primitives.Cone;

A seconda del progetto, può o non può essere un problema definire un materiale come una variabile locale, invece di farne una proprietà della classe. Quando un materiale è definito inline, viene assegnato a un oggetto e non viene usato mai più. Se si vuole accedere al materiale, è possibile farlo utilizzando la proprietà materiale dell'oggetto e il cast al tipo di materiale. Per esempio:

var material:WireframeMaterial = do3D.material as WireframeMaterial;

Istanziare una WireFrameMaterial prevede tre parametri come mostrato nella tabella seguente:
 

Parametro  Tipo di dato
Valore di default Descrizione
1 color Numero 0xFF00FF Un colore definito da un numero a 24 bit, che può essere in formato esadecimale, utilizzato come colore della linea dei fili.
2 alpha Numero 1 Un valore di alfa compreso tra 0 e 1, utilizzatio per la trasparenza della linea.
3 thickness Numero 0 Un numero tra 0 e 255 che definisce lo spessore della linea dei fili. Il valore predefinito di 0 il filetto.

Flash utilizza entrambi le profondità di colore, a 24 bit e 32 bit. Un colore a 24 bit è ciò che noi conosciamo come colore RGB, che a sua volta contiene 256 valori possibili di rosso, 256 valori di verde e 256 valori di blu. Un colore a 32 bit contiene pure l'informazione sul canale alfa, che aggiunge i valori alfa alla notazione RGB ed è chiamato RGBA. 
Un valore di alfa pari a 0 significa completamente trasparente e un valore di 256 sta per nessuna trasparenza.
Entrambi i colori a 24-bit e 32-bit possono essere rappresentati in formato esadecimale. Un colore a 24-bit in esadecimale potrebbe assomigliare a 0x00FF00, che indica 00 di colore rosso, FF di colore verde e 00 di colore blu.
Una notazione a 32-bit colore puo essere piuttosto simile, ma ha i valori alfa aggiunti alla fine. Così si ottiene 0x00FF00FF, che rappresenta uno 00 di rosso, FF di verde, 00 di blu e un valore FF per il canale alfa. Un valore FF significa nessuna trasparenza e un valore di 00 significa completamente trasparente.
Il più delle volte si lavora con colori a 24 bit e si fornisce il valore di alpha come parametro separato di trasparenza. Tuttavia, in alcune occasioni è necessario impostare i colori a 32-bit, invece. Nel caso del materiale wireframe, si utilizzerà un valore a 24-bit di colore e un valore alpha di trasparenza separato.

Quando non si imposta alcun parametro, il materiale wireframe utilizzerà i suoi valori di default.
Ma diamo un'occhiata a come possiamo creare un cono con un wireframe con 50% di nero trasparente che ha uno spessore di 2:

private function init():void
{
   var material:WireframeMaterial = new WireframeMaterial(0x000000,0.5,2);
   var cone:Cone = new Cone(material,500,500);
   scene.addChild(cone);
}
Filippo Porcari
Author: Filippo PorcariWebsite: http://filippo.porcari.oranjuice.org/Email: Questo indirizzo email è protetto dagli spambots. E' necessario abilitare JavaScript per vederlo.
designer freelance
Sono un graphic designer e mi occupo di pubblicità. Da più di 10 anni dedico le mie energie alla realizzazioni d'immagine aziendale e comunicazione visiva con un'attenzione alle nuove tecnologie del web. Da qualche anno ho scoperto il software open source e mi sono dedicato alla sua introduzione nel mio workflow produttivo ottenendo ottimi risultati.

© copyright 2011

Porcari Filippo studio grafico - p.iva 01985590023

Tutti i diritti riservati.