3d对象深度参数影响感知宽度

时间:2017-04-29 07:21:00

标签: android opengl-es rajawali

我在Rajawali 1.1.777中使用默认相机创建了一个RectangularPrism

RectangularPrism p = new RectangularPrism(2f, 2f, xf);

根据x(深度),Android屏幕上的感知宽度会有所不同。

  • 如果深度为2f,则棱镜的宽度会填满屏幕。
  • 如果深度为0.5f& 1f棱镜的宽度没有填满屏幕。

因此,从Rajawali / OpenGL的角度来看,深度参数如何以及为什么会影响屏幕上对象的感知宽度?由于宽度(2f)保持静止不应该棱镜总是以相同的方式填满屏幕?

0.1F:

0.1f

1F:

1f

2F:

2f

1 个答案:

答案 0 :(得分:0)

来自https://github.com/Rajawali/Rajawali/issues/1883

的回答

默认相机是透视相机,距离中的面看起来小于近处的面。默认摄像头位于0,0,4,并查看0,0,0。如果将大小为2,2,0.5的RectangularPrism放置在0,0,0,则相机与最近面之间的距离为3.75。如果将大小为2,2,2的RectangularPrism放置在0,0,0,则相机与最近的面之间的距离仅为3,因此最近的面看起来更大。

如果不需要透视,可以实例化正交相机和getCurrentScene()。addAndSwitchCamera(orthographicCamera)。