2010-05-19 5 views
0

Je suis en train de recoller une image en utilisant plusieurs instances de sandy.primitive.Box. Chaque boîte est 96x91 tandis que la fenêtre d'affichage est de 960x273 ce qui devrait faire un ajustement parfait si je place les boîtes dans une grille parfaite de 10x3. Cependant, je n'arrive pas à obtenir la caméra exacte fieldOfView. J'ai essayé quelques formules (une pour ajuster la "distance focale" et une pour ajuster le fov, directement). Ces deux formules produisent un angle fov trop étroit.En utilisant Sandy 3D AS3, remplissez la fenêtre (ajustement exact) avec plusieurs objets 3D

// focal length 
(stage.stageHeight/2)/Math.tan(cam.fov/2 * Math.PI/180) 

// field of view 
2 * Math.atan2((stage.stageHeight/2), -cam.z) * (180/Math.PI) 

Une autre question sur le même projet: J'ai besoin d'ajuster la perspective de chaque cube afin que l'image semble être dans l'espace 2D (plat) ... Toutes les idées sur la meilleure méthode pour le calcul d'une telle "correction"?

Répondre

0

J'ai réalisé peu de temps après avoir posé cette question que je ne tenais pas compte de la profondeur des cubes (en fait, la moitié de la profondeur) pour déterminer la distance.

// field of view 
2 * Math.atan2((stage.stageHeight/2), -(cam.z + (cubeDepth/2))) * (180/Math.PI)