使用Sandy 3D AS3,使用多个3D对象填充视口(精确拟合)

时间:2010-05-19 17:58:21

标签: flash actionscript-3 sandy3d

我正在使用sandy.primitive.Box的多个实例拼接图像。每个方框都是96x91,而视口是960x273,如果我将盒子布置在10x3的完美网格中,那么这应该是完全合适的。但是,我似乎无法获得确切的相机fieldOfView。我尝试了几个公式(一个用于调整“焦距”,一个用于直接调整fov)。这两个公式都产生一个太窄的fov角。

// 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)

关于同一项目的另一个问题: 我需要调整每个立方体的透视图,使图像看起来在2D空间(平面)...有关计算这种“校正”的最佳方法的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我在提出这个问题后不久意识到,在确定距离时,我没有考虑立方体的深度(实际上是深度的一半)。

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