在图形编程中获取相机空间的宽度和高度

时间:2017-07-03 04:49:01

标签: opengl graphics 3d kudan

我有这个AR项目,我需要将屏幕坐标转换为世界坐标。我跟着this tutorial,我几乎成功了。

当我尝试从均匀剪辑空间转换到眼睛空间时,唯一的问题是,我使用了错误的投影矩阵。之所以投影矩阵是错误的,是因为我无法获得相机空间的正确宽度和高度。我使用这个名为Kudan的库,当我向前和向后移动相机手机时,我预计相机的宽度和高度会发生变化,因为相机空间尺寸在向前移动时应该变小,反之亦然。

作为最后的手段,目前我试图自己找到相机空间大小,我该如何实现?

这是我的投影矩阵

Matrix4f projectionMatrix = new Matrix4f(-0.5f* currentCamWidth, 0.5f * currentCamWidth, -0.5f * currentCamHeight, 0.5f * currentCamHeight, -1f, node.getFullPosition().getZ());

当前凸轮宽度和当前凸轮高度始终保持不变。坐标是opengl坐标

1 个答案:

答案 0 :(得分:0)

  

当我向前和向后移动相机手机时,我预计相机宽度和高度会因相机空间大小而改变

为什么呢?仅仅因为你在视角附近移动并不意味着“虚拟镜头”的属性发生了变化。

  

向前移动时应该越来越小,反之亦然。

为什么呢?这不是相机如何工作的。

这里很难给出一个有用的答案,而不会看到你到目前为止所编写的代码。目前它充其量只是猜测。