我有这个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坐标
答案 0 :(得分:0)
当我向前和向后移动相机手机时,我预计相机宽度和高度会因相机空间大小而改变
为什么呢?仅仅因为你在视角附近移动并不意味着“虚拟镜头”的属性发生了变化。
向前移动时应该越来越小,反之亦然。
为什么呢?这不是相机如何工作的。
这里很难给出一个有用的答案,而不会看到你到目前为止所编写的代码。目前它充其量只是猜测。