Blog Papervision3D

Blog Français sur Papervision3D

Plane à double face.

Posté par Ocelyn le 15 septembre, 2009
Publié dans Tutoriaux

Créer une plane avec deux faces différentes est relativement simple.

Il suffit d’ajouter deux planes dans un même objets 3D, un DisplayObject3D (ligne 20), tout objets 3D (plane, cube, sphere…) dans Papervision3D ont été créé à partir de ce dernier.

Afin que nos deux planes ne se superposent pas, nous allons augmenter la distance en Z de notre planeFront (ligne 25), puis nous allons retourner la planeBack en rotationY (ligne 30) afin qu’elle soit visible, n’ayant pas activé la propriété doubleSided de la texture de notre planeBack.

A partir de là, il nous est facile de rendre un coté de la plane cliquable et non l’autre, d’ajouter deux différents types de textures à chaque face…

  1. package {
  2. import org.papervision3d.core.effects.view.ReflectionView;
  3. import org.papervision3d.materials.ColorMaterial;
  4. import org.papervision3d.objects.DisplayObject3D;
  5. import org.papervision3d.objects.primitives.Plane;
  6.  
  7. import flash.events.Event;
  8. import flash.filters.BlurFilter;
  9.  
  10. public class BasicScene extends ReflectionView {
  11.  
  12. public function BasicScene()
  13. {
  14. buildPlane();
  15. configReflection();
  16. }
  17.  
  18. private function buildPlane() : void
  19. {
  20. do3d = new DisplayObject3D();
  21.  
  22. var colorMaterialFront : ColorMaterial = new ColorMaterial(0xff00ff);
  23. var planeFront : Plane = new Plane(colorMaterialFront, 50, 50, 4, 4);
  24. do3d.addChild(planeFront);
  25. planeFront.z = 1;
  26.  
  27. var colorMaterialBack : ColorMaterial = new ColorMaterial(0×00ff00);
  28. var planeBack : Plane = new Plane(colorMaterialBack, 50, 50, 4, 4);
  29. do3d.addChild(planeBack);
  30. planeBack.rotationY = 180;
  31.  
  32. scene.addChild(do3d);
  33.  
  34. do3d.z = ( camera.zoom * camera.focus )Math.abs(camera.z);
  35.  
  36. startRendering();
  37. }
  38.  
  39. private function configReflection() : void
  40. {
  41. viewportReflection.filters = [new BlurFilter(3,3,1)];
  42. setReflectionColor(1, 1, 0.5);
  43. surfaceHeight = -100;
  44. }
  45.  
  46. override protected function onRenderTick(event:Event=null):void
  47. {
  48. do3d.rotationY ++;
  49. super.onRenderTick(event);
  50. }
  51.  
  52. private var do3d : DisplayObject3D;
  53. }
  54. }
Share and Enjoy:
  • Facebook
  • Twitter
  • LinkedIn
  • del.icio.us
  • Technorati
  • Digg
  • Netvibes
  • Wikio FR
  • Live
  • Google Bookmarks
  • email
  • Print

Aucun commentaire dans ce post, pour l'instant.

Suivre ce post par RSS ou poser un trackback

Laisser un commentaire

Currently browsing Plane à double face.

 Pseudo(*requis)

 Email (*privée)

 Site internet (*optionnel)