由于几天我试图实现Android OpenGL ES的四元数旋转。我想获得输入quaternion(x,y,z,w)
的功能。此功能将被设置为旋转为GL10
对象。 GL10对象只有gl.glRotatef(y, 1.0f, 0.0f, 0.0f)
函数提供欧拉角的设置位置。我尝试过类https://github.com/TraxNet/ShadingZen/blob/master/library/src/main/java/org/traxnet/shadingzen/math/Quaternion.java来创建矩阵,但它仍然不起作用。我将不胜感激,如果有人可以显示/写如何通过将作为参数来设置GL10对象的位置quaternion(GL10setRotation(Quaternion q)).
四元数对象旋转
Q
四元数对象旋转
2
A
回答
2
glRotatef
仅仅是一个旋转矩阵(加上相关的边界检查)当前矩阵相乘。在OpenGL 1做到这一点(使用链接的四元数类)
一种方法是:
Matrix rotation = new Matrix();
quaternion.toMatrix(rotation);
glMultMatrixf(rotation.getAsArray(), 0);
请注意,glRotate
和glTranslate
是slower than doing the Matrix math yourself和使用glLoadMatrix
。一般来说,如果性能很重要,我建议不要完全使用OpenGL 1。
相关问题
- 1. 用四元数旋转对象
- 2. 四元数旋转误差
- 3. 四元数旋转opengl
- 4. 四元数 - 旋转到
- 5. 四元数的旋转?
- 6. 四元数三轴旋转
- 7. Unity旋转和四元数
- 8. Threejs - 基于四元数旋转的对象翻译
- 9. 如何旋转由四元数表示的对象集?
- 10. 如何通过四元数组旋转游戏对象?
- 11. 矩阵旋转到四元数
- 12. java四元数三维旋转实现
- 13. 旋转矢量与四元数
- 14. 相机与四元数的旋转
- 15. 关于glm四元数旋转
- 16. 四元数旋转x轴45度
- 17. 使用四元数去旋转矢量
- 18. 用四元数旋转模型
- 19. 从四元数到OpenGL旋转
- 20. 如何缩放四元数的旋转
- 21. 沿着轴旋转四元数
- 22. 拆分四元数到轴旋转
- 23. 从初始和最终旋转四元数获得旋转轴
- 24. 是否可以使用四元数围绕任意原点旋转对象?
- 25. 四元数,旋转模型并与方向对齐
- 26. OpenGL的矩阵旋转四元
- 27. 四元数反转?
- 28. 将四元数转换为旋转矩阵?
- 29. 如何避免相机翻转四元数旋转?
- 30. 将方向矢量转换为四元数旋转
你是对的。无论如何,如果使用OpenGL的固定API是必须的,我会做所有我使用四元数的旋转和作为最后一步加载矩阵,如你所提到的与glLoadMatrix。 – Trax