Android 三维对象深度参数影响感知宽度

Android 三维对象深度参数影响感知宽度,android,opengl-es,rajawali,Android,Opengl Es,Rajawali,我在Rajawali 1.1.777中创建了一个带有默认相机的矩形棱镜: RectangularPrism p = new RectangularPrism(2f, 2f, xf); 根据x(深度),Android屏幕上的感知宽度会有所不同 如果深度为2f,则棱镜的宽度填充屏幕 如果深度为0.5f&1f,棱镜的宽度不会填满屏幕 因此,从Rajawali/OpenGL的角度来看,深度参数如何以及为什么会影响屏幕上对象的感知宽度?由于宽度(2f)保持不变,棱镜不应该总是以相同的方式填充屏幕吗

我在Rajawali 1.1.777中创建了一个带有默认相机的
矩形棱镜

RectangularPrism p = new RectangularPrism(2f, 2f, xf);
根据x(深度),Android屏幕上的感知宽度会有所不同

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

0.1f:

1f:

2f:

回答来自

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

如果不需要透视,可以实例化正交摄影机和getCurrentScene().addAndSwitchCamera(正交摄影机)