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…
-
package {
-
import org.papervision3d.core.effects.view.ReflectionView;
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.objects.DisplayObject3D;
-
import org.papervision3d.objects.primitives.Plane;
-
-
import flash.events.Event;
-
import flash.filters.BlurFilter;
-
-
public class BasicScene extends ReflectionView {
-
-
public function BasicScene()
-
{
-
buildPlane();
-
configReflection();
-
}
-
-
private function buildPlane() : void
-
{
-
do3d = new DisplayObject3D();
-
-
var colorMaterialFront : ColorMaterial = new ColorMaterial(0xff00ff);
-
var planeFront : Plane = new Plane(colorMaterialFront, 50, 50, 4, 4);
-
do3d.addChild(planeFront);
-
planeFront.z = 1;
-
-
var colorMaterialBack : ColorMaterial = new ColorMaterial(0×00ff00);
-
var planeBack : Plane = new Plane(colorMaterialBack, 50, 50, 4, 4);
-
do3d.addChild(planeBack);
-
planeBack.rotationY = 180;
-
-
scene.addChild(do3d);
-
-
do3d.z = ( camera.zoom * camera.focus ) – Math.abs(camera.z);
-
-
startRendering();
-
}
-
-
private function configReflection() : void
-
{
-
viewportReflection.filters = [new BlurFilter(3,3,1)];
-
setReflectionColor(1, 1, 0.5);
-
surfaceHeight = -100;
-
}
-
-
override protected function onRenderTick(event:Event=null):void
-
{
-
do3d.rotationY ++;
-
super.onRenderTick(event);
-
}
-
-
private var do3d : DisplayObject3D;
-
}
-
}


