Dans ce tutoriel nous allons créer un effets de brouillards dans Papervision3D.
Pour cela nous allons tout simplement utiliser un FogMaterial et un FogFilter que nous appliquerons à notre BasicRenderEngine (renderer).
Nous créons notre FogMaterial (ligne 20) et lui passons une couleur, le mieux est de choisir une couleur étant la même que votre couleur de fond. (blanc dans cet exemple)
Puis nous appliquons à notre renderer un nouveau filtre (ligne 21), un FogFilter qui reçoit 4 paramètres, le premier est notre FogMaterial créé précédemment puis le nombre de segments, c’est à dire le nombre de layers entre un fog à 0% et un fog à 100%, plus il y a de segments plus la progression vers le fond du brouillards seras détaillées.
Enfin nous lui passons les paramètres minDepth et maxDepth qui sont les points de départs et d’arrivé en Z de notre Fog.
Enfin nous faisons avancer notre Sphere en Z (ligne 37) pour la voir s’enfoncer progressivement dans le brouillard.
-
package {
-
import org.papervision3d.core.render.filter.FogFilter;
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.materials.special.FogMaterial;
-
import org.papervision3d.objects.primitives.Sphere;
-
import org.papervision3d.view.BasicView;
-
-
import flash.events.Event;
-
-
public class BasicScene extends BasicView {
-
-
public function BasicScene()
-
{
-
initFog();
-
buildSphere();
-
}
-
-
private function initFog() : void
-
{
-
var fogMaterial : FogMaterial = new FogMaterial(0xffffff);
-
renderer.filter = new FogFilter(fogMaterial, 50, 1500, 2000);
-
}
-
-
private function buildSphere() : void
-
{
-
var material : ColorMaterial = new ColorMaterial(0×000000);
-
material.smooth = true;
-
-
sphere = new Sphere(material, 200, 20, 20);
-
scene.addChild(sphere);
-
-
startRendering();
-
}
-
-
override protected function onRenderTick(event:Event=null):void
-
{
-
sphere.z += 5;
-
super.onRenderTick(event);
-
}
-
-
private var sphere : Sphere;
-
}
-
}




La semaine prochaine j’attaque un générateur dynamique de brouillard !