首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将世界坐标转换为摄像机坐标

如何将世界坐标转换为摄像机坐标
EN

Computer Graphics用户
提问于 2023-01-06 04:03:01
回答 1查看 557关注 0票数 2

在世界坐标系中,存在旋转值rx1,ry1,rz1和位置值px1,py1,pz1的对象。

同样,在世界坐标系中有一个相机,其旋转值为rx2,ry2,rz2,位置值为px2,py2,pz2

用什么公式可以将rx1,ry1,rz1,px1,py1,pz1转换成摄像机坐标系?

相机的向上矢量是Y轴,总是指向接近世界原点的物体。

相机和模型应该在以下gif图像所示的范围内移动。

我想用Python来计算,但是任何答案,包括数学陈述,都是受欢迎的。

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2023-01-07 13:48:55

通常,\vec{rx1},\vec{ry1},\vec{rz1}值本身就是向量。每个(x,y,z,w)都要特别注意w值。职位值也有(x,y,z,w)值。向量的w值为0,位置为1。它们一起构成一个仿射变换,它是一个4x4矩阵。

听起来你已经有了摄像机矩阵,有时被称为视图矩阵。设置后,一般将物体从世界空间转换为摄像机空间。仿射变换是可逆的,一旦反转,它们就向相反的方向变换。例如,从世界空间到摄像机空间的4x4仿射变换矩阵可以倒置到从摄像机空间到世界空间的转换。

因此,转换公式很简单:

代码语言:javascript
复制
worldtocamera = inverse(cameratoworld)

而且,这种转换很好地概括了。例如,从模型到世界,结合世界到摄像机的转变是:

代码语言:javascript
复制
modeltocamera = modeltoworld * worldtocamera

相反的情况也很简单:

代码语言:javascript
复制
cameratomodel = inverse(modeltocamera)
票数 2
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/13193

复制
相关文章

相似问题

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