作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在四元数中有对象的旋转和平移,我已将其转换为矩阵 [16]。
我如何将该矩阵提供给 OpenGL?我想我可以用我的新花式裤子矩阵 glLoadMatrix() ,一切都会好起来的,但我得到了一个空白屏幕。
(我有点像 GL n00b,所以请慢慢输入并使用小字;)
我的代码看起来像这样:
glPushMatrix();
[quaternion makeIdentity]; // reset quat
[quaternion setPitch: rotation.x yaw: rotation.y roll: rotation.z]; // Set up with rotation coords (NOTE: setPitch:yaw:roll: is smart about degrees->radians)
GLdouble matrix[16];
[quaternion matrix: &matrix[0]]; // get quat -> matrix
matrix[12] = location.x; // fill in the translation
matrix[13] = location.y;
matrix[14] = location.z;
glLoadMatrixd(matrix);
glScaled(scale.x, scale.y, scale.z);
// draw geometry here -- snip
glPopMatrix();
glPushMatrix();
glTranslatef(location.x, location.y, location.z);
glRotated(rotation.z, 0, 0, 1.0);
glRotated(rotation.x, 1.0, 0, 0);
glRotated(rotation.y, 0, 1.0, 0);
// draw geometry here -- snip
glPopMatrix();
最佳答案
如果您没有忘记将当前矩阵模式设置为 GL_MODELVIEW
,您的矩阵应该正确加载。检查您的 quat -> 矩阵计算。我将从零角度旋转开始并将结果与单位矩阵进行比较。
关于opengl - 四元数 -> 矩阵 [16] - 好的,现在呢? (如何从四元数显示对象?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021004/
我是一名优秀的程序员,十分优秀!