Papervision – Tutorial 2 ( Material )

Dando continuidade, dessa vez veremos como aplicar materiais em objetos primitivos utilizando a classe ColorMaterial.

Vamos continuar utilizando os mesmos arquivos Tutorial1.as e Tutorial1.fla do artigo anterior.

Papervision Tutorial 2 - Materiais


Vamos aproveitar para adicionar outro objeto a cena :

import org.papervision3d.objects.primitives.Plane;

E basicamente acrescentar as classes necessárias :

import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;

Declaramos as variáveis :

public var plano:Plane;
public var materialUm:ColorMaterial;
public var materialDois:ColorMaterial;

Atenção aqui : você precisa acionar a função de materiais antes de chamar os objetos

public function Tutorial1 () {
Set ();
Materiais ();
Objetos ();
Listeners ();
}

Criamos os materiais :

public function Materiais ():void {
materialUm = new ColorMaterial(0XFF0000, 1);

materialDois = new ColorMaterial(0X00FF00, 1);
materialDois.doubleSided=true;// aplica o material nas duas faces do plano ( experimente trocar por false )
}

E aplicamos os materiais nos objetos :

public function Objetos ():void {
esfera = new Sphere(materialUm, 100, 18, 18);
esfera.x -= stage.stageWidth/2;
esfera.y=0;
esfera.z=0;
esfera.rotationX = 15;
esfera.rotationY = 25;
esfera.rotationZ = -75;
cena.addChild (esfera);

plano = new Plane(materialDois, 200, 200, 0, 0);
plano.x += stage.stageWidth/2;
plano.y=0;
plano.z=0;
plano.rotationX = 35;
plano.rotationY = 15;
plano.rotationZ = 45;
cena.addChild (plano);
}

Temos então o código completo :

package {
// Importamos as classes necessárias
// Flash AS3
import flash.display.Sprite;
import flash.events.Event;
// Papervision
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.render.BasicRenderEngine;
// objeto
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.objects.primitives.Plane;
// materiais
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;

// Declaramos nossa classe
public class Tutorial1 extends Sprite {
// e as variáveis
public var cena:Scene3D;
public var viewport:Viewport3D;
public var camera:FreeCamera3D;
public var renderer:BasicRenderEngine;
public var esfera:Sphere;
public var plano:Plane;
public var materialUm:ColorMaterial;
public var materialDois:ColorMaterial;

// Declaramos o método da classe
public function Tutorial1 () {
// que irá acionar as funções auxiliares
Set ();
Materiais ();
Objetos ();
Listeners ();
}

// funções básicas do Papervision
public function Set ():void {
cena = new Scene3D();
viewport = new Viewport3D(stage.stageWidth, stage.stageHeight, true, false, true, true);
addChild (viewport);
camera = new FreeCamera3D();
renderer = new BasicRenderEngine();
}

// materiais
public function Materiais ():void {
materialUm = new ColorMaterial(0XFF0000, 1);

materialDois = new ColorMaterial(0X00FF00, 1);
materialDois.doubleSided=true;// aplica o material nas duas faces do plano ( experimente trocar por false )
}

// função que irá criar o objeto
public function Objetos ():void {
esfera = new Sphere(materialUm, 100, 18, 18);
esfera.x -= stage.stageWidth/2;
esfera.y=0;
esfera.z=0;
esfera.rotationX = 15;
esfera.rotationY = 25;
esfera.rotationZ = -75;
cena.addChild (esfera);

plano = new Plane(materialDois, 200, 200, 0, 0);
plano.x += stage.stageWidth/2;
plano.y=0;
plano.z=0;
plano.rotationX = 35;
plano.rotationY = 15;
plano.rotationZ = 45;
cena.addChild (plano);

// alterando alguns parâmetros na câmera
camera.focus = 300;
camera.zoom = 2;
}

// função que irá receber novas funções auxiliares
public function Listeners ():void {
addEventListener (Event.ENTER_FRAME, Render);
}

// função responsável pela renderização do Papervision
public function Render (e:Event):void {
// algumas propriedades básicas de movimento de objetos
esfera.rotationX -= 2;

plano.rotationX += 1;
plano.rotationY += 2;

renderer.renderScene (cena, camera, viewport);
}
}
}

Salve o arquivo Tutorial1.as e compile o swf.
Faça alterações nos parâmetros e veja as alterações.

Até a próxima …

Deixe um comentário