Articoli

Papervision3D - Combinare i materiali

logoPV3D

In alcuni casi si potrebbe desiderare di combinare materiali diversi e usarli insieme come un singolo materiale. Per esempio, durante lo sviluppo può essere molto utile poter combinare un materiale wireframe con un altro tipo di materiale. Ciò può essere ottenuto con la classe CompositeMaterial.

L'utilizzo di questo tipo di materiale è diverso da quello che abbiamo visto prima con altri tipi di  materiale, in quanto non si assume alcun parametro di istanziamento. Invece, si aggiungono materiali alla classe CompositeMaterial, simile all'aggiunta di materiali a una lista di materiali, come a abbiamo fatto nel caso del cubo. Dare uno sguardo a come funziona rende tutto più chiaro:

import flash.events.Event;

import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.materials.special.CompositeMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;

Nel metodo init () creiamo due materiali, che saranno combinati dal materiale composito. In questo esempio un materiale file bitmap sara combinato con un materiale wireframe.

private function init():void
{
  var bmpMaterial:BitmapFileMaterial = new BitmapFileMaterial
  ("assets/mill.jpg");
  var wireMaterial:WireframeMaterial = new WireframeMaterial();

Successivamente, si definisce il materiale composito. Dopo che viene creata un'istanza, si aggiunge la bitmap di file e il materiale wireframe al materiale composito chiamando il suo metodo addMaterial ().

  var material:CompositeMaterial = new CompositeMaterial();
  material.addMaterial(bmpMaterial);
  material.addMaterial(wireMaterial);

L'aggiunta del materiale a un oggetto 3D è come al solito:

  var plane:Plane = new Plane(material,500,375,3,3);
  scene.addChild(plane);

Dopo la pubblicazione vedrete il materiale combinato, contenente una bitmap e un wireframe:

combinato

Si noti che alcune delle proprietà del materiale sono impostate sui sottomateriali e vengono ignorati quando li utilizzano come elementi del materiale composito. Per esempio, quando dobbiamo cambiare la proprietà fronte-retro del materiale bitmap in questo esempio e impostarlo a true, non comporterà alcun cambiamento visivo. Invece questi valori devono essere definiti sul materiale composito stesso. D'altra parte, quando si desidera applicare la lisciatura al materiale, si può provare a impostare la proprietà di regolazione del materiale composito su true, ma questo non cambierà nulla. In questo caso particolare, è necessario impostare la proprietà smooth sul file materiale bitmap a true. Nella maggior parte dei casi, andrà comunque bene impostare le proprietà dei materiali che fanno parte del materiale composito.
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.