Blog Papervision3D

Blog Français sur Papervision3D

La lumière dans Papervision3D.

Posté par Ocelyn le 22 septembre, 2009
Publié dans Tutoriaux

Dans cet articles nous allons voir comment créer une lumière dans Papervision grâce au PointLight3D, et afficher l’ombre sur notre Plane.

Tout d’abord, nous créons notre PointLight3D (ligne 24), le premier argument à la création est showLight qui affichera l’objet PointLight3D en fil de fer si il est dans votre champ de caméra, si vous le passez à true, puis nous l’ajoutons à notre scene.

Ensuite nous créons la texture de notre Plane qui sera un PhongMaterial (ligne 27), il affichera un dégradé en fonction de l’éclairage que reçois votre Plane, vous noterez que nous lui passons notre objets Light, une couleur pour la lumière 0xffffff dans le cas présent, une ambiantcolor 0×000000 ici, qui sera la couleur de notre plane quand elle n’est pas éclairé et enfin le specularLevel qui agrandit ou rétrécit le dégradé.

A partir de là, il ne nous reste plus qu’à ajouter le material à notre plane :)

  1. package {
  2. import org.papervision3d.lights.PointLight3D;
  3. import org.papervision3d.materials.shadematerials.PhongMaterial;
  4. import org.papervision3d.objects.primitives.Plane;
  5. import org.papervision3d.view.BasicView;
  6.  
  7. import flash.events.Event;
  8.  
  9. public class BasicScene extends BasicView {
  10.  
  11. public function BasicScene()
  12. {
  13. initMaterial();
  14. startRendering();
  15. }
  16.  
  17. private function initMaterial() : void
  18. {
  19. buildPlane();
  20. }
  21.  
  22. private function buildPlane() : void
  23. {
  24. var light : PointLight3D = new PointLight3D();
  25. scene.addChild(light);
  26.  
  27. var pm : PhongMaterial = new PhongMaterial(light, 0xffffff, 0×000000, 10);
  28. pm.doubleSided = true;
  29.  
  30. plane = new Plane(pm, 50, 50, 4, 4);
  31. scene.addChild(plane);
  32.  
  33. plane.z = ( camera.zoom * camera.focus )Math.abs(camera.z);
  34. }
  35.  
  36. override protected function onRenderTick(event:Event=null):void
  37. {
  38. plane.rotationY += 3;
  39. super.onRenderTick(event);
  40. }
  41.  
  42. private var plane : Plane;
  43. }
  44. }
Share and Enjoy:
  • Facebook
  • Twitter
  • LinkedIn
  • del.icio.us
  • Technorati
  • Digg
  • Netvibes
  • Wikio FR
  • Live
  • Google Bookmarks
  • email
  • Print

2 commentaires dans ce post, pour l'instant.

Suivre ce post par RSS ou poser un trackback
mygif
377. ROUDY dit,
4 octobre, 2009 à 3:56

Bonjour juste un petit mot pour soulever un petit soucis lors du copier/coller du code en vue de tester.
Lorsque l’on fait un c/c on obtient un signe qui n’est pas un moins de soustraction a la ligne 33.
cf => – / -.
Cordialement :)

mygif
393. bast_65 dit,
11 octobre, 2009 à 23:51

ne peut-on pas mettre un effet de lumière non pas sur une couleur (ceux qui donne ici un dégradé) mais sur un objet3D avec des texutre comme une image , une video ou encore un movie clip ?

Laisser un commentaire

Currently browsing La lumière dans Papervision3D.

 Pseudo(*requis)

 Email (*privée)

 Site internet (*optionnel)