16 mars 2010
2
16
/03
/mars
/2010
15:51
Sandy 3D nous permet d'importer des objets 3D type Collada puisqu'il intègre un parser de fichier DAE.
I/ Import d'un fichier DAE
Pour se faire, nous allons repartir de notre tout premier tutoriel où nous avons écrit notre squelette Sandy 3D ( Sandy 3D : Premiers Pas... ).
Il existe beaucoup de bibliothèques de modèles 3D sur internet, pour ma part j'utilise principalement celle de google disponible à l'adresse suivante : http://sketchup.google.com/.
Pour notre exemple, nous allons utiliser le modèle 3D suivant : cocotier. Choississez de télécharger le fichier sous forme Collada puis l'extraire du zip. Placer le dossier extrait dans le même dossier que notre projet PaperVision.
Pour importer un fichier Collada, il nous suffit d'utiliser le parser Collada intégré dans Sandy 3D pour parser notre fichier, puis afficher le résultat dans notre scène.
Voili voilou pour ce tutoriel sur l'import de modèle 3D. Nous avons fait à peu près le tour des principales fonctionnalités de Sandy 3D.
I/ Import d'un fichier DAE
Pour se faire, nous allons repartir de notre tout premier tutoriel où nous avons écrit notre squelette Sandy 3D ( Sandy 3D : Premiers Pas... ).
Il existe beaucoup de bibliothèques de modèles 3D sur internet, pour ma part j'utilise principalement celle de google disponible à l'adresse suivante : http://sketchup.google.com/.
Pour notre exemple, nous allons utiliser le modèle 3D suivant : cocotier. Choississez de télécharger le fichier sous forme Collada puis l'extraire du zip. Placer le dossier extrait dans le même dossier que notre projet PaperVision.
Code Source
package {
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import flash.display.*;
//Ajout
import flash.events.*;
import sandy.parser.*;
public class Main extends Sprite {
private var scene:Scene3D;
private var camera:Camera3D;
//Ajout
private var parser:IParser;
public function Main():void{
initSandy();
initDae();
}
private function initSandy():void{
camera = new Camera3D(300, 300);
scene = new Scene3D("scene", this, camera, new Group());
}
//Ajout
private function initDae():void{
parser = Parser.create( "Untitled/models/Untitled.dae", Parser.COLLADA, 0.5 );
ColladaParser(parser).RELATIVE_TEXTURE_PATH = "Untitled/images"; //Chemin vers les textures
parser.addEventListener( ParserEvent.INIT, createScene );
parser.parse();
}
private function createScene(e:ParserEvent):void{
scene.root.addChild(e.group);
addEventListener( Event.ENTER_FRAME, render );
}
private function render(e:Event):void {
scene.render();
}
}
}
import sandy.core.Scene3D;
import sandy.core.data.*;
import sandy.core.scenegraph.*;
import flash.display.*;
//Ajout
import flash.events.*;
import sandy.parser.*;
public class Main extends Sprite {
private var scene:Scene3D;
private var camera:Camera3D;
//Ajout
private var parser:IParser;
public function Main():void{
initSandy();
initDae();
}
private function initSandy():void{
camera = new Camera3D(300, 300);
scene = new Scene3D("scene", this, camera, new Group());
}
//Ajout
private function initDae():void{
parser = Parser.create( "Untitled/models/Untitled.dae", Parser.COLLADA, 0.5 );
ColladaParser(parser).RELATIVE_TEXTURE_PATH = "Untitled/images"; //Chemin vers les textures
parser.addEventListener( ParserEvent.INIT, createScene );
parser.parse();
}
private function createScene(e:ParserEvent):void{
scene.root.addChild(e.group);
addEventListener( Event.ENTER_FRAME, render );
}
private function render(e:Event):void {
scene.render();
}
}
}
Résultat Obtenu
Explications
Pour importer un fichier Collada, il nous suffit d'utiliser le parser Collada intégré dans Sandy 3D pour parser notre fichier, puis afficher le résultat dans notre scène.
Voili voilou pour ce tutoriel sur l'import de modèle 3D. Nous avons fait à peu près le tour des principales fonctionnalités de Sandy 3D.
Cordialement, Romain Dedenis.