【问题标题】:OpenGL glulookat functionOpenGL glulookat 函数
【发布时间】:2021-11-15 01:25:11
【问题描述】:

我希望能够通过单击我的键盘按钮来查看以 0,0,0 为中心、半径为 10 个单位、360 度和上下的行星球体。我在 glulookat() 函数中放入了哪些参数? 我知道中心 XYZ 应该是 000,但是眼睛和向上向量应该是什么?

void gluLookAt( GLdouble eyeX,
    GLdouble eyeY,
    GLdouble eyeZ,
    GLdouble centerX,
    GLdouble centerY,
    GLdouble centerZ,
    GLdouble upX,
    GLdouble upY,
    GLdouble upZ);

【问题讨论】:

  • 哪条路向上?是(0,0,1)吗?如果是这样,那么将其用于您的“向上”向量。 “眼睛”向量是观察者(你的眼睛)的位置。
  • 你能弄清楚如何计算你想要的相机位置吗?

标签: opengl opengl-compat glu


【解决方案1】:

Don't use lookAt for this!计算眼向量所涉及的三角函数量相当于从头开始构建视图矩阵。

相反,请保持您的相机俯仰和偏航,并通过一系列平移和旋转来应用它们:

glTranslatef(0, 0, -radius);
glRotatef(-pitch, 1, 0, 0);
glRotatef(-yaw, 0, 0, 1); // assumes Z is up

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多