Le Blog

  • : Le blog de Romain Dedenis
  • : Un blog relatif à la programmation web, vous trouverez ici des tutoriels sur différents langages tel que le flash, le php... Ainsi que différentes astuces et articles. Bonne visite :)
  • Contact

Contacts

viadeo-icone-5757-48.png linkedin.png

Liens Utiles

 

Documentation Flash as 3.0 :

Flash as 3.0

 

Documentation moteurs 3D Flashs :


Documentation Utilitaires 3D Flashs :

Et bien sûr, le fil RSS du Blog ! rss

27 février 2012 1 27 /02 /février /2012 11:05

 

en.png

 

Pour commencer cette série de tutos sur Alternativa3D 8 tournant avec le Flash Player 11, nous allons commencer par configurer notre Flash CS5 ou 5.5:

 

Pour pouvoir developper pour le Flash Player 11 avec CS5 ou 5.5, pas très compliqué, ça se passe par là : http://blogs.adobe.com/rgalvan/2011/11/adding-fp11-support-to-flash-pro-cs5-and-cs5-5.html

 

Ensuite, téléchargez la bibliothèque Alternativa3D 8 : http://alternativaplatform.com/en/download8/

Pour lier la bibliothèque à votre projet, regarder par ici (et profitez en pour créer et lier un fichier Main.as): http://romaindedenis.over-blog.com/article-alternativa-3d-premiers-pas-66018030.html

 

Nous voilà prêt à commencer!

Pour ce premier tutoriel, nous n'allons pas aller bien loin, juste un petit Plane :).

 

Code source

package {

   import alternativa.engine3d.core.Camera3D;

   import alternativa.engine3d.core.Object3D;

   import alternativa.engine3d.core.Resource;

   import alternativa.engine3d.core.View;

   import alternativa.engine3d.materials.FillMaterial;

   import alternativa.engine3d.primitives.Plane;

 

   import flash.display.Sprite;

   import flash.display.Stage3D;

   import flash.display.StageAlign;

   import flash.display.StageScaleMode;

   import flash.events.Event;

 

   public class Main extends Sprite {

      //Le conteneur dans lequel nous allons ajouter nos objets

      private var rootContainer:Object3D = new Object3D();

      private var camera:Camera3D; //notre caméra

      private var stage3D:Stage3D; //le stage3D qui va être associé à Alternativa3D

      private var plane:Plane; //Notre plane


      public function Main() {

         //On aligne notre scène et l'empeche de se déformer

         stage.align = StageAlign.TOP_LEFT;

         stage.scaleMode = StageScaleMode.NO_SCALE;

 

         //On créer notre caméra et la vue associée

         camera = new Camera3D(0.1, 10000);

         camera.view = new View(stage.stageWidth, stage.stageHeight, false, 0, 0, 4); //C'est la zone dans laquelle          notre contenu va être affiché

          addChild(camera.view);

         addChild(camera.diagram); //On affiche un moniteur pour voir les perfs


         //On initialise la position de notre caméra

         camera.rotationX = -120*Math.PI/180;

         camera.y = -800;

         camera.z = 400;

         rootContainer.addChild(camera); //On ajoute la caméra à notre conteneur


         //On créer notre plane et on la texture en orange

         plane = new Plane(500, 500, 5, 5);

         var material:FillMaterial = new FillMaterial(0xFF7700);

         plane.setMaterialToAllSurfaces(material); //On applique la texture aux 2 faces de notre plane

         rootContainer.addChild(plane);

 

         //C'est ici que nous récupérons le stage3D.

         stage3D = stage.stage3Ds[0];

         stage3D.addEventListener(Event.CONTEXT3D_CREATE, onContextCreate);

         stage3D.requestContext3D(); //On demande au Flash Player d'initialiser notre stage3D(c'est un peu plus             compliqué que cela, mais l'essentiel est là)

       }

 

      private function onContextCreate(e:Event):void {

                        //Ici, on passe nos objets 3D au stage3D pour qu'il puisse les envoyer au GPU

         for each (var resource:Resource in rootContainer.getResources(true)) {

            resource.upload(stage3D.context3D);

         }

 

         //Quand le stage3D est prêt à être utiliser, nous lui demandons d'effectuer nos actions toutes les frames

         stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);

      }

 

      private function onEnterFrame(e:Event):void {

         //Au cas où le stage soit redimensionné, nous adaptons la taille de notre View.

         camera.view.width = stage.stageWidth;

         camera.view.height = stage.stageHeight;

 

         //Nous faisons tourner notre Plane de 0.01 radians/frame

         plane.rotationZ -= 0.01;

 

         //On demande au moteur 3D de redessiner notre scène

         camera.render(stage3D);

      }

   }

}

 

Voilou pour notre première application d'Alternativa3D 8.

 

Résultat obtenu


Il vous faut impérativement la version Flash Player 11 ou supérieur pour voir tourner le résultat.

 

 

Dans le prochain article ( Alternativa 3D 8 : Cube et gestion de la lumière... ), nous créerons notre premier cube et nous affecterons une source de lumière à notre scène.

 

Ce tutoriel vous a été utile?rssAbonnez-vous au fil RSS !




  Romain Dedenis.

 

 

 

 

Partager cet article
Repost0

commentaires