如何在OpenGL中计算投影/模型视图矩阵,给定3D点及其2D屏幕位置?

3

我在OpenGL中遇到了关于modelview/projection矩阵的难题。

假设我有一组3D点以及它们对应的2D屏幕位置,是否有可能通过最小二乘意义下找到最优的modelview矩阵(或者缩放/旋转/平移矩阵),从而将所有这些3D点变换为相应的2D屏幕位置,前提是投影矩阵固定?又或者,当modelview矩阵固定时,是否可以解决这样的投影矩阵问题?是否可以获得像gluperspective、gluLookAt等函数中的参数设置?


我猜你没有你的2D屏幕位置的深度值? - Nico Schertler
@NicoSchertler 是的,我只是假设2D屏幕点的深度值为0。有了这样的2D屏幕点和它们对应的3D点的位置,是否可以得到这样的模型视图矩阵?还是应该计算投影矩阵? - kyewong
@comingstorm 如果我修复比例因子会怎样?有了3D点的位置和相应的2D屏幕点(假设它们的深度值为0),是否可以获得最优的转换矩阵? - kyewong
是的,您需要修复无法推导的元素。基本上,您的最小二乘求解器需要强制执行某些约束(例如,确保旋转矩阵是旋转矩阵)。您可以通过添加额外的约束来修复比例因子等问题,以便得到的受约束最小二乘问题是明确定义的。 - comingstorm
@kyewong,看起来你对这个类别的问题感兴趣,而不是一个具体的问题。有些实例比其他实例更容易处理。我建议你特别阅读计算机视觉方法,以便更好地了解这种情况。 - comingstorm
显示剩余6条评论
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接