Papervision 3D – template de base

Un petit post pour se faire un petit template réutilisable pour commencer un projet sous paper …

Quelques éléments de vocabulaire pour bien débuter avec Paper : (Si vous connaissez les logiciels de conception 3D, vous y retrouverez quelques similitudes)

- VIEWPORT : Le viewport est l’objet grace auquel on visualise les éléments 3D, c’est cet objet qui est placé (added to stage) sur la timeline Flash, on peut le voir comme une sorte de fenetre.

- RENDERER : C’est le moteur de rendu ou RenderEngine, c’est cet objet qui calculera l’affichage des éléments 3D. L’idée est de l’utiliser dans un “enterframe” afin de calculer la scene et les animations en temps réél.

- SCENE3D : C’est la scene 3D, comme dans les logiciels 3D de 3dsmax ou Maya. Elle contient toute la scene, les objets 3D, les lumieres, les cameras …

- CAMERA : C’est la caméra qui sera utilisée dans le renderer pour visualiser la scene3D, se déplacer dedans etc …

Voici déjà le petit template :

package
{

import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.cameras.*;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;

public class PaperBase extends Sprite {

public var viewport:Viewport3D;
// — Renderer– //
public var renderer:BasicRenderEngine;
// — Scenes — //
public var default_scene:Scene3D;
// — Cameras –//
public var default_camera:Camera3D;

public function init(vpWidth:Number = 800, vpHeight:Number = 600):void {
initPapervision(vpWidth, vpHeight);
init3d(); // Initialise les éléments 3d
init2d(); // Initialise the interface..
initEvents(); // Mise en place des listeners
}

// Fonction d’initialisation de la scene Papervision3D : Viewport, Rendering, Scene, Camera
protected function initPapervision(vpWidth:Number, vpHeight:Number):void {

viewport = new Viewport3D(vpWidth, vpHeight);
addChild(viewport); // Add the viewport to the stage

// Initialise the rendering engine
renderer = new BasicRenderEngine();

// Initialise la scene3D
default_scene = new Scene3D();

// — Initialise la Camera — //
default_camera = new Camera3D();
}

// Cette fonction sert à créér tous ce qui sera utilisé dans papervision, les modèles 3D, les materiaux, cameras etc….
protected function init3d():void {

}

// Cette fonction sert à créér les éléments de l’interface non 3D
protected function init2d():void {

}

// Cette fonction sert à initialiser tous les écouteur d’évènements.
protected function initEvents():void {

// ici l’enterFrame qui sera appelé à chaque frame de la timeline Flash
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}

// Cette fonction initialise les éléments qui seront updaté(animés) à chaque frame
protected function processFrame():void {

}

// Fonction EnterFrame : Rendu de la scene en temps réél
protected function onEnterFrame( ThisEvent:Event ):void {
processFrame();
renderer.renderScene(default_scene, default_camera, viewport);
}
}
}

Ce contenu a été publié le Web par steph. Mettez-le en favori avec son permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>