L’affichage des objets 3D à leur vrai taille peu s’avérer compliqué si on ne connais pas la formule magique.
Pour les planes (ligne 19) il suffit de mettre la position Z égale à ( camera.zoom * camera.focus ) – Math.abs (camera.z), on remarquera qu’on peu accéder à la caméra en BasicView sans avoir à la définir dans une variable.
Pour un cube la formule sera : ( camera.zoom * camera.focus ) – ( Math.abs (camera.z) – « cube.depth » / 2 ), « cube.depth » correspond à la profondeur du cube (quand vous créez un nouveau cube c’est la 3ème propriétés), vous ne pouvez pas y accéder directement, il faudra donc la stocker dans une variable pour l’utiliser par exemple.
-
package {
-
import org.papervision3d.materials.ColorMaterial;
-
import org.papervision3d.objects.primitives.Plane;
-
import org.papervision3d.view.BasicView;
-
-
public class BasicScene extends BasicView {
-
-
public function BasicScene()
-
{
-
buildPlane();
-
}
-
-
private function buildPlane() : void
-
{
-
var colorMaterial : ColorMaterial = new ColorMaterial(0xff00ff);
-
var plane : Plane = new Plane(colorMaterial, 50, 50, 4, 4);
-
scene.addChild(plane);
-
-
plane.z = ( camera.zoom * camera.focus ) – Math.abs (camera.z);
-
-
startRendering();
-
}
-
}
-
}



Pourquoi est-ce si compliqué pour avoir les dimension réel de notre cube. Pourquoi ne fait t-il pas dès le début 200*200*200 quand on fixe ses dimension a 200, c’est une logique qui m’échappe