- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在旧版 OpenGL 中制作骨骼动画,并认为我可以在各个顶点上使用矩阵。当我编程它但它不起作用时,我做了一些谷歌搜索找到了这个:https://www.talisman.org/opengl-1.1/Reference/glLoadMatrix.html
GL_INVALID_OPERATION is generated if glLoadMatrix is executed between the execution of glBegin and the corresponding execution of glEnd.
所以现在我很困惑。这是一个图表:
骨头被标记为红色。我正在尝试制作骨骼动画,因此有两个矩形。一个使用 Bone 0,第二个使用 Bone 1。只有构成第二个矩形的三角形的特定顶点使用 Bone 1 的旋转矩阵,而那些不使用 Bone 0 的旋转矩阵的三角形,有点像制作一条蛇,如果这是有道理的话。
由于我无法对三角形中的各个顶点使用 glLoadMatrix,那么还有什么其他方法可以根据存储的矩阵来替换顶点呢?也许将一些矩阵值乘以顶点?不知道该怎么做。欢迎任何意见,谢谢!
最佳答案
您提到了两个矩形 Bone0 和 Bone1。您需要单独绘制它们,因为它们需要具有单独的变换矩阵。两个矩形的两点重合,你绘制Bone1的变换矩阵必须保证:
glTranslateF(...);
glRotateF(...); /* position rectangle Bone0 */
glBegin(GL_QUADS); /* draw rectangle Bone0 */
glVertex3f(...); /* draw it */
...
glEnd();
glPushMatrix(); /* save transformation matrix */
glMulMatrix(...); /*
* as per your drawing, this is not just a
* simple translate/rotate operation, but
* a translate/shear
* you need to do that manually
*/
glBegin(GL_QUADS); /*
* draw rectangle Bone1. Two of the vertices are
* coincident with two of rectangle Bone0. Your
* shear matrix must ensure they are
*/
glVertex3F(...);
glEnd();
关于c - 在特定顶点上使用 glLoadMatrixd ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29644792/
我正在尝试在旧版 OpenGL 中制作骨骼动画,并认为我可以在各个顶点上使用矩阵。当我编程它但它不起作用时,我做了一些谷歌搜索找到了这个:https://www.talisman.org/opengl
我是一名优秀的程序员,十分优秀!