Tipos de materiales en Papervision 1.5

Tipos de materiales en Papervision 1.5

Etiquetas: MovieScene3D Cube MaterialsList WireframeMaterial MovieMaterial MovieAssetMaterial BitmapAssetMaterial ColorMaterial BitmapFileMaterial renderCamera

Imagen en reemplazo de flash
Este ejemplo muestra como crear un cubo con 6 tipos diferentes de materiales en Papervision (AS3). He utilizado los más básicos, en la wiki de Papervision se puede encontrar un listado completo con los materiales disponibles.

  1. //Importo las clases necesarias
  2. import flash.display.Sprite;
  3. import flash.events.Event;
  4.  
  5. import org.papervision3d.cameras.Camera3D;
  6. import org.papervision3d.objects.Cube;
  7. import org.papervision3d.scenes.MovieScene3D;
  8. import org.papervision3d.materials.*;
  9.  
  10. //Defino variables
  11. var container: Sprite;
  12. var scene: MovieScene3D;
  13. var camera: Camera3D;
  14. var cubo: Cube;
  15. //Esta variables va a contener los nombres de los 6 materiales que voy a utilizar para cada cara del cubo
  16. var listaMateriales:MaterialsList = new MaterialsList();
  17.  
  18. //FUNCIONES
  19.  
  20. //Función inicial
  21. function Empezar(){
  22. 	CrearEscena();
  23. 	CrearCamara();
  24. 	CrearMatrizMateriales();
  25. 	CrearCubo();
  26. }
  27.  
  28. //Crea la escena 3D
  29. function CrearEscena(){
  30. 	//Creo un contenedor para la escena y lo coloco en el centro del escenario
  31. 	container = new Sprite;
  32. 	container.x = 200;
  33. 	container.y = 200;
  34. 	addChild( container );
  35. 	//Creo la escena 3D a partir del contenedor
  36. 	scene = new MovieScene3D( container );
  37. }
  38.  
  39. //Creo la cámara que va a "mostrar" la escena
  40. function CrearCamara(){
  41. 	//Creo la camara y la "alejo" de la escena para que muestre el cubo
  42. 	camera = new Camera3D();
  43. 	camera.z = -200;
  44. 	camera.zoom = 2;
  45.  
  46. }
  47.  
  48. //Relleno la matriz de materiales. Se puede utilizar rejilla, imágenes, clips, relleno de color, etc....
  49. function CrearMatrizMateriales(){
  50. 	//Creo los materiales
  51. 	//Material del tipo rejilla de color rojo
  52. 	var material1:WireframeMaterial = new WireframeMaterial(0xFF0000);
  53. 	//Material del tipo MovieClip, con el clip llamado MaterialClip del escenario
  54. 	var material2:MovieMaterial = new MovieMaterial(MaterialClip);
  55. 	//Material del tipo MovieClip almacenado en biblioteca. Su Clase debe ser MaterialClipBiblioteca 
  56. 	var material3:MovieAssetMaterial = new MovieAssetMaterial("MaterialClipBiblioteca");
  57. 	//Material del tipo BitMap almacenado en Biblioteca. La clase de vinculacion es árbol
  58. 	var material4:BitmapAssetMaterial = new BitmapAssetMaterial("arbol");
  59. 	//Material del tipo ColorMaterial, de color azul. Simplemente especificamos de que color se tiene 
  60. 	//que rellenar la cara
  61. 	var material5:ColorMaterial = new ColorMaterial(0x0000FF);
  62. 	//Material del tipo BitmapFileMaterial, con una imagen externa. Indicamos
  63. 	//La ruta de la imagen
  64. 	var material6:BitmapFileMaterial = new BitmapFileMaterial("cielo.jpg");
  65. 	//Creo la lista de materiales para el cubo, indicando que material va en cada cara
  66. 	listaMateriales.addMaterial(material1,"top");
  67. 	listaMateriales.addMaterial(material2,"bottom");
  68. 	listaMateriales.addMaterial(material3,"front");
  69. 	listaMateriales.addMaterial(material4,"back");
  70. 	listaMateriales.addMaterial(material5,"left");
  71. 	listaMateriales.addMaterial(material6,"right");
  72. }
  73.  
  74. //Crear el cubo
  75. function CrearCubo(){
  76. 	//Creo el Cubo
  77. 	cubo = new Cube( listaMateriales, 128, 128, 128, 2, 2, 2);
  78. 	// rotate the cube a bit
  79. 	cubo.rotationX = 35;
  80. 	cubo.rotationY = 55;
  81. 	//Añado el cubo al escenario
  82. 	scene.addChild( cubo );
  83. 	//Renderizo la escena
  84. 	scene.renderCamera( camera );
  85. 	addEventListener(Event.ENTER_FRAME,RotarCubo);
  86. }
  87.  
  88. //Función para rotar el cubo. Al acabar de rotar renderizo la escena para que
  89. //se visualicen los cambios
  90. function RotarCubo(e:Event){
  91. 	trace("Aqui");
  92. 	cubo.rotationX+=3;
  93. 	cubo.rotationY++;
  94. 	cubo.rotationZ++;
  95.  
  96. 	scene.renderCamera(camera);
  97. }
  98.  
  99. //Ejecutamos
  100. Empezar();

Descargar archivos

Comentarios
    • Autor
    • milenka guadalupe pared
    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
    • Autor
    • Marina
    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?
    • Autor
    • Mara
    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 !!!
    • Autor
    • Emanuell
    Gracias por el aportey el tiempo dedicado, muy buen tutorial, sencillo y eficaz.
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: