首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >opengl查找矩阵到摄像机外部矩阵

opengl查找矩阵到摄像机外部矩阵
EN

Stack Overflow用户
提问于 2021-01-03 21:08:16
回答 1查看 451关注 0票数 2

我试图从opengl框架缓冲区中保存的深度数据来渲染三维点云。基本上,对于以(0,0,0)为中心的呈现模型,我从不同的n视点(已经知道)获取了不同的深度样本。我成功地保存了深度映射,但是现在我想从这些深度映射中提取出x,y,z。为此,我回到了从图像到世界的投影点。要获得世界坐标,我使用下面的方程P = K_inv R|t_inv * p.来计算世界坐标。

为了计算图像的本质矩阵,我使用了来自opengl摄像机矩阵的信息,glm::(fov,aspect,near_plane,far_plane)。计算了本征矩阵K

代码语言:javascript
复制
  where 

如果对相机原点坐标进行变换(即没有外部变换R~t),就可以得到单个图像的三维模型。为了融合多个深度映射,我还需要从OpenGL查找矩阵center=(0,0,0),up=(0,1,0)中计算外部变换。外部矩阵的计算如下(参考文献:http://ksimek.github.io/2012/08/22/extrinsic/ )

但是当我融合两幅深度图像时,它们是不对齐的。我认为外在矩阵是不正确的。我还尝试直接使用glm::lookat矩阵,但这也不起作用。融合模型快照如下所示

有人能告诉我我的方法出了什么问题吗。它是外部矩阵是错误的(这我他妈的是肯定的)?

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 00:50:39

最后,我自己解决了这个问题。我没有在OpenGL中进行转换,而是在OpenGL之外进行了转换。基本上,我保持相机不变,离模型有一段距离,然后对模型进行旋转变换,然后在没有查找矩阵(或仅4x4恒等矩阵)的情况下渲染模型。我不知道为什么使用查找矩阵没有给我结果,或者可能是因为我错过了什么。为了将模型倒置到世界坐标中,我只需取我最初向OpenGL输入模型之前所做的精确转换的逆变换即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65554958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档