opengl - OpenGL glulookat 函数
问题描述
我希望能够通过单击我的键盘按钮来查看以 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);
解决方案
不要lookAt
用于这个!计算眼睛向量所涉及的三角函数量相当于从头开始构建视图矩阵。
相反,保持你的相机俯仰和偏航,并通过一系列的平移和旋转来应用它们:
glTranslatef(0, 0, -radius);
glRotatef(-pitch, 1, 0, 0);
glRotatef(-yaw, 0, 0, 1); // assumes Z is up
推荐阅读
- android - Firebase 应用内消息在我们需要选项时发送消息?
- excel - 禁用从其他来源复制/粘贴到 Excel
- java - 更新 SQL 语法中的 EError
- xslt-2.0 - XM 到 JSON 使用 XSLT
- javascript - 如何为 JSON 创建错误处理函数
- html - 列表项的 HTML/CSS 中心标题
- rspec - 如何将 rspec 固定装置从文件加载到数据库中
- php - 来自网页的 TAPI 调用
- java - @TestPropertySource(properties = {"ticketing.profile=test"}) 是否应该自动更新系统属性值?
- ionic3 - 安装cordova-plugin-googlemaps v2.2.9