如何在OpenGL中旋转三角形?

时间:2015-10-18 06:30:15

标签: opengl opengl-es

我想在OpenGL中旋转我的三角形,并在Raspberry Pi上运行程序。

我可以绘制三角形并移动它。 但我不知道旋转它.. 什么都没有旋转。

mtcars %>% arrange(cyl) %>% slice(rep(c(0, which(diff(cyl)>0)), 1:3) + sequence(1:3))

#    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
# 1 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
# 2 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
# 3 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
# 4 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
# 5 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
# 6 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3

如何旋转三角形?

我引用了工作代码,但它仍然没有旋转。

1 个答案:

答案 0 :(得分:1)

您正在尝试在OpenGL ES 2.0环境中使用OpenGL ES 1.1函数(glLoadIdentity,glMatrixMode,glTranslatef,glRotatef等) - 这不会起作用。您可以使用OpenGL ES 1.1或OpenGL ES 2.0,但不能在同一上下文中同时使用它们。

我建议使用着色器坚持使用OpenGL ES 2.0,并学习OpenGL ES 2.0的工作方式,因为这就是所有新API的工作方式。

要进行平移和旋转,您需要将其编码为MVP矩阵,并将其作为一个均匀值传递给计算gl_Position时使用的顶点着色器。这里有一些例子:

https://open.gl/transformations