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
-
package {
-
import org.papervision3d.lights.PointLight3D;
-
import org.papervision3d.materials.shadematerials.PhongMaterial;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.view.BasicView;
-
-
import flash.events.Event;
-
-
public class BasicScene extends BasicView {
-
-
public function BasicScene()
-
{
-
initMaterial();
-
startRendering();
-
}
-
-
private function initMaterial() : void
-
{
-
buildPlane();
-
}
-
-
private function buildPlane() : void
-
{
-
var light : PointLight3D = new PointLight3D();
-
scene.addChild(light);
-
-
var pm : PhongMaterial = new PhongMaterial(light, 0xffffff, 0×000000, 10);
-
pm.doubleSided = true;
-
-
plane = new Plane(pm, 50, 50, 4, 4);
-
scene.addChild(plane);
-
-
plane.z = ( camera.zoom * camera.focus ) – Math.abs(camera.z);
-
}
-
-
override protected function onRenderTick(event:Event=null):void
-
{
-
plane.rotationY += 3;
-
super.onRenderTick(event);
-
}
-
-
private var plane : Plane;
-
}
-
}




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