Salut à tous,
Comme demandé dans un commentaire voici une classe squelette de la nouvelle monture de Papervision : Papervision3D 3.0.
En pré-requis, il vous faudra bien entendu le package Papervision3D 3.0 que vous pouvez récupérer ici.
La possibilité de compiler en Flash Player 10 (avec Flash CS4, ou autre) et le Flash Player 10 pour pouvoir lire la scène. (si vous avez des erreurs à l’ouverture du swf ça viens surement de ça)
Une classe comme BasicView n’ayant pas encore été implanté, il nous faudra recréer notre scène à la main (ce qui n’est pas plus mal pour comprendre les nouveautés).
La première Chose est de créer notre Viewport (lignes 38-39), notre scene (ligne 41), qui maintenant est un DisplayObject3D en attendant la création de la classe Scene3D, notre caméra (lignes 43-44) qui maintenant doit être ajoutée à notre scene !
Et enfin nous créons notre rendrerer (ligne 49).
Puis nous créons notre Cube (lignes 52-54) en lui passant un WireframeMaterial , pour l’instant notre cube ne peu recevoir qu’un seul material et qu’une seule taille (on peu le scaler en X ou en Y pour le transformer par contre).
Enfin nous obligeons notre camera à regarder le cube, grâce à la propriété lookAt (ligne 56).
Le reste ne change pas, dans notre fonction EnterFrame, nous lançons le rendu de la scène
Papervision3D 3.0 débute mais ça annoncera surement que du bon !
-
package
-
{
-
import flash.display.Sprite;
-
import flash.events.Event;
-
-
import org.papervision3d.cameras.Camera3D;
-
import org.papervision3d.materials.WireframeMaterial;
-
import org.papervision3d.objects.DisplayObject3D;
-
import org.papervision3d.objects.primitives.Cube;
-
import org.papervision3d.render.BasicRenderEngine;
-
import org.papervision3d.view.Viewport3D;
-
-
public class BasicScene extends Sprite
-
{
-
-
public function BasicScene()
-
{
-
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
-
}
-
-
private function addedToStage(e:Event):void
-
{
-
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
-
-
init();
-
}
-
-
private function init() : void
-
{
-
initScene();
-
buildCube();
-
-
addEventListener(Event.ENTER_FRAME, render);
-
}
-
-
private function initScene():void
-
{
-
viewport = new Viewport3D(0, 0, true);
-
addChild(viewport);
-
-
scene = new DisplayObject3D();
-
-
camera = new Camera3D();
-
scene.addChild( camera );
-
camera.z = 1000;
-
-
renderer = new BasicRenderEngine();
-
}
-
-
private function buildCube():void
-
{
-
var wfm : WireframeMaterial = new WireframeMaterial(0xff00ff);
-
cube = new Cube(wfm, 200);
-
scene.addChild( cube );
-
-
camera.lookAt(cube);
-
}
-
-
private function render(event:Event=null):void
-
{
-
cube.rotationX++;
-
cube.rotationY++;
-
-
renderer.renderScene(scene, camera, viewport);
-
}
-
-
private var cube : Cube;
-
private var camera : Camera3D;
-
private var viewport : Viewport3D;
-
private var scene : DisplayObject3D;
-
private var renderer : BasicRenderEngine;
-
}
-
}





Merci, c’est vachement sympa! C’est à cause de la caméra que j’ai eu du mal. L’API est vraiment jeune et limitée, mais ça reste de bonne augure.