【问题标题】:3d object depth parameter affects perceived width3d 对象深度参数影响感知宽度
【发布时间】:2017-04-29 07:21:00
【问题描述】:

我在 Rajawali 1.1.777 中使用默认摄像头创建了一个 RectangularPrism

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

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

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

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

0.1f:

1f:

2f:

【问题讨论】:

    标签: android opengl-es rajawali


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-08-23
      • 2013-12-30
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2018-03-29
      • 2015-02-17
      相关资源
      最近更新 更多