首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从世界空间到相机空间

从世界空间到相机空间
EN

Stack Overflow用户
提问于 2012-12-12 11:55:29
回答 2查看 7.3K关注 0票数 7

我对如何将世界空间坐标转换为相机坐标感到困惑。

我目前的理解是,我需要计算相机空间向量,其中

N=眼点-注视

U= up(0,1,0) X n(归一化)

V=n X u

那么,一旦我有了< U,V,N>,我会简单地将每个点乘以吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-12 16:50:55

让我们假设:

  • Eye
  • Viewing =(e_x,e_y,e_z),
  • Viewing is D=(d_x,d_y,d_z)
  • Up-Vector is UP=(up_x,up_y,up_z)F219

现在,首先构造一个正交框架:

  • R =D X UP
  • U =R X D
  • 现在可以对D,R,U进行归一化,这样就有了相机(D,R,U)

的正交框架

为了将全局坐标框架转换为凸轮坐标框架,您可以应用以下矩阵M_R

  • | R_x,R_y,R_z,0 |
  • | U_x,U_y,U_z,0 |
  • | -D_x,-D_y,-D_z,0|
  • | 0.0,0.0,0.0,1.0|

<代码>F241

如果您的凸轮不位于全局原点,则还必须应用平移M_T

  • | 1,0,0,-e_x |
  • | 0,1,0,-e_y |
  • | 0,0,1,-e_z|
  • | 0,0,0,1|

最后,从全局坐标到凸轮坐标的完整转换矩阵是:

  • M = M_R * M_T

  • | R_x,R_y,R_z,(R点-E) |
  • | U_x,U_y,U_z,(U点-E) |
  • | -D_x,-D_y,-D_z,(D点E)|
  • | 0.0,0.0,0.0,1.0|<代码>F273
票数 5
EN

Stack Overflow用户

发布于 2013-09-05 22:27:12

我认为上一篇文章中有一个错误

此矩阵

代码语言:javascript
复制
| R_x, R_y, R_z, (R dot -E) |
| U_x, U_y, U_z, (U dot -E) |
| -D_x, -D_y, D_z, (D dot E)|
| 0.0, 0.0, 0.0, 1.0|

应该是(我在openGL中测试了它,这个是正确的)

代码语言:javascript
复制
| R_x, R_y, R_z, (R dot -E) |
| U_x, U_y, U_z, (U dot -E) |
| -D_x, -D_y, -D_z, (D dot E)|
| 0.0, 0.0, 0.0, 1.0|
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13832505

复制
相关文章

相似问题

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