[3D] Away3D une première approche

25 août 2008 – 16:17

Dernièrement je me suis intéressé plus sérieusement à Away3D, un moteur 3D pour Flash en ActionScript 3 dérivé du très connu Papervision3D. Ce sont des problèmes (gestion des profondeurs) lors d'un projet développé avec ce dernier qui m'ont poussé à regarder vers une alternative.

Au début j'ai été assez dérouté par les différences entre les deux moteurs, je m'attendais à pouvoir copier-coller le code que j'avais écrit pour Papervision3D avec juste quelques changements dans le nom des packages et des classes... mais ça n'a pas été si simple et c'est pourquoi je me suis dit qu'il serait intéressant que je garde une trace de cette première approche d'Away3D, ça servira peut-être à quelqu'un...

Parfait pour débuter :

Away3D est beaucoup plus simple à mettre en place que Papervision3D et je pense que c'est à tort que l'on conseille souvent aux débutants de commencer avec ce dernier. La seule raison vraiment valable étant la quantité d'articles que l'on trouve sur internet comparé à Away3D qui ne dispose pas de beaucoup d'exemples, mais on va y remédier.

Ci-dessous un exemple inspiré d'un article très complet sur Flash Magazine. Je considère que vous avez téléchargé les librairies Away3D.

package
{
	import away3d.containers.View3D;
	import away3d.primitives.Sphere;
	import flash.display.MovieClip;
	public class Main3D extends MovieClip
	{
		public function Main3D()
		{
			var view:View3D = new View3D();
 
			// position la view au centre de la scène
        		view.x = stage.stageWidth * .5;
			view.y = stage.stageHeight * .5;
			addChild(view);
 
			// on crée une sphère
			var sphere:Sphere = new Sphere();
        		view.scene.addChild(sphere);
 
			// on fait un rendu 3D
			view.render();
		}
	}
}

Vous n'avez plus qu'a lier cette classe à votre fla (document class) et compiler pour voir une sphère.
Ceux qui viennent de Papervision3D auront certainement remarqué que je n'ai pas déclaré de caméra, de texture pour la sphère ni même de scène. En fait Away3D possède des valeurs par défaut pour toutes les fonctions. En déclarant ma "view" je possède déjà une "camera" et une "scene". Par contre il y a des petits détails qui diffèrent entre les deux moteurs 3D. Par exemple la caméra par défaut de Papervision3D se trouve en x:0 y:0 z:-1000 mais celle d'Away3D est dans l'autre sens x:0 y:0 z:1000, quand on ne le sait pas on se demande pourquoi la sphère va sur la gauche lorsqu'on augmente la position en x.

Voilà, je fais court, c'est vraiment une première approche pour montrer à quel point Away3D est simple à mettre en place. J'essayerai de mettre de continuer à mettre des exemples à l'avenir.

inspiré de l'article écrit par Jens C Brynildsen sur Flash Magazine.

Post a Comment