我想在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
如何旋转三角形?
我引用了工作代码,但它仍然没有旋转。
答案 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时使用的顶点着色器。这里有一些例子: