//Importo las clases necesarias
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.Cube;
import org.papervision3d.scenes.MovieScene3D;
import org.papervision3d.materials.*;
//Defino variables
var container: Sprite;
var scene: MovieScene3D;
var camera: Camera3D;
var cubo: Cube;
//Esta variables va a contener los nombres de los 6 materiales que voy a utilizar para cada cara del cubo
var listaMateriales:MaterialsList = new MaterialsList();
//FUNCIONES
//Función inicial
function Empezar(){
CrearEscena();
CrearCamara();
CrearMatrizMateriales();
CrearCubo();
}
//Crea la escena 3D
function CrearEscena(){
//Creo un contenedor para la escena y lo coloco en el centro del escenario
container = new Sprite;
container.x = 200;
container.y = 200;
addChild( container );
//Creo la escena 3D a partir del contenedor
scene = new MovieScene3D( container );
}
//Creo la cámara que va a "mostrar" la escena
function CrearCamara(){
//Creo la camara y la "alejo" de la escena para que muestre el cubo
camera = new Camera3D();
camera.z = -200;
camera.zoom = 2;
}
//Relleno la matriz de materiales. Se puede utilizar rejilla, imágenes, clips, relleno de color, etc....
function CrearMatrizMateriales(){
//Creo los materiales
//Material del tipo rejilla de color rojo
var material1:WireframeMaterial = new WireframeMaterial(0xFF0000);
//Material del tipo MovieClip, con el clip llamado MaterialClip del escenario
var material2:MovieMaterial = new MovieMaterial(MaterialClip);
//Material del tipo MovieClip almacenado en biblioteca. Su Clase debe ser MaterialClipBiblioteca
var material3:MovieAssetMaterial = new MovieAssetMaterial("MaterialClipBiblioteca");
//Material del tipo BitMap almacenado en Biblioteca. La clase de vinculacion es árbol
var material4:BitmapAssetMaterial = new BitmapAssetMaterial("arbol");
//Material del tipo ColorMaterial, de color azul. Simplemente especificamos de que color se tiene
//que rellenar la cara
var material5:ColorMaterial = new ColorMaterial(0x0000FF);
//Material del tipo BitmapFileMaterial, con una imagen externa. Indicamos
//La ruta de la imagen
var material6:BitmapFileMaterial = new BitmapFileMaterial("cielo.jpg");
//Creo la lista de materiales para el cubo, indicando que material va en cada cara
listaMateriales.addMaterial(material1,"top");
listaMateriales.addMaterial(material2,"bottom");
listaMateriales.addMaterial(material3,"front");
listaMateriales.addMaterial(material4,"back");
listaMateriales.addMaterial(material5,"left");
listaMateriales.addMaterial(material6,"right");
}
//Crear el cubo
function CrearCubo(){
//Creo el Cubo
cubo = new Cube( listaMateriales, 128, 128, 128, 2, 2, 2);
// rotate the cube a bit
cubo.rotationX = 35;
cubo.rotationY = 55;
//Añado el cubo al escenario
scene.addChild( cubo );
//Renderizo la escena
scene.renderCamera( camera );
addEventListener(Event.ENTER_FRAME,RotarCubo);
}
//Función para rotar el cubo. Al acabar de rotar renderizo la escena para que
//se visualicen los cambios
function RotarCubo(e:Event){
trace("Aqui");
cubo.rotationX+=3;
cubo.rotationY++;
cubo.rotationZ++;
scene.renderCamera(camera);
}
//Ejecutamos
Empezar();
|
| Comentarios: |
| milenka guadalupe pared dijo: |
| me gustaria que me mostraran una foto de algo material qua este hecho de los tipos de materiales que son los siguientes:metalicos, ceramicos, y polimeros
|
|
| Marina dijo: |
| Es probable que lo que estoy preguntando sea una tontería, pero el caso es que no sé cómo hacerlo. Todo el listado este que escribís aquí para la creación del modelo, dónde hay que copiarlo? |
|
| Mara dijo: |
| Me da un error
1067: Conversión implícita de un valor de tipo org.papervision3d.materials:MaterialsList a un tipo org.papervision3d.core.proto:MaterialObject3D no relacionado.
en esta línea.....
cubo = new Cube( listaMateriales, 128, 128, 128, 2, 2, 2);
Ayuda plis necesito éste cubo en as3 !!! |
|
| Dejar un comentario: |
|
|
|