2017-07-03 34 views
0

我有这个需要将屏幕坐标转换为世界坐标的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

相机空间没有宽度/高度。你得到的最接近的是FOV和长宽比。 –

+0

如何获得fov? –

+0

我们可以从长宽比中得到投影矩阵吗? –

回答

0

当我向前移动相机手机和落后,我希望由于相机空间大小

为什么相机的宽度和高度的变化?仅仅因为你的观点并不意味着“虚拟镜头”的特性发生了变化。

当它向前移动时应该变小,反之亦然。

为什么?这不是照相机的工作原理。


这里很难给出一个有用的答案,没有看到你迄今为止写的代码。目前它是最好的猜测。

+0

我只是在寻找理论,你是否熟悉kudan? –

+0

现在,我知道对象在相机空间中的位置,当我调整我的相机空间时,让我的相机屏幕角落中的对象。对象的坐标与我的屏幕大小不一样。 –

+0

基本上,我试图将我的屏幕坐标转换为相机空间坐标。但不知道相机坐标的大小,这是不可能的。 –