【问题标题】:Calculate right, up and view vector from at and eye vector?从 at 和 eye 向量计算右、上和视图向量?
【发布时间】:2012-12-16 10:33:03
【问题描述】:

我正在尝试创建一个 WorldToView 矩阵,为此我需要计算右(r)、上(u)和视图向量(v)。

我知道眼睛向量是eye(0,0,0),向量是at(0,0,-1);然后通过:

v= normalise(at-eye); 视图向量 v 将为 (0,0,-1)

如何获得 r 和 u 向量?

我知道:

r=normalise(v X u);
u=normalise(r X v);

谢谢

【问题讨论】:

  • 这与 C++ 或 Win32 有什么关系?
  • 不是特别的,但我正在使用 c++ 和 GDI 制作一个 3D 渲染器,所以它是相关的。
  • 你用的是什么库?
  • GDI 和来自 ogre3D 的一些类,即 Matrix4、Vector4 和 Vector3

标签: c++ visual-c++ gdi win32gui


【解决方案1】:

您目前没有足够的信息 - 您不知道您的观众是朝哪个方向看的,它可能是任何东西。您可能想指定一个向上向量,例如(0,1,0),然后使用公式计算r

请注意,值得一提的是,gluLookAt,与您尝试执行的操作等效的 GLU 函数采用三个参数,而不是两个参数 - 即眼睛向量、at 向量和 up 向量.你错过了向上的向量,因此你遇到了困难。

【讨论】:

  • 感谢斯图尔特(以及解释)
猜你喜欢
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多