OpenGL ES, вращать прямоугольник в массиве вершин - PullRequest
0 голосов
/ 30 декабря 2011

Я пытаюсь повернуть прямоугольник на месте, то есть повернуть его координаты в массиве вершин, прежде чем массив будет передан в GL для рендеринга.

У меня есть прямоугольник, определенный следующим образом:

vect0 = -1.0, 0.0, 0
vect1 = -1.0, 1.0, 0 
vect2 = 1.0, 1.0, 0
vect3 = 1.0, 0, 0

GLfloat verts[] = {vect0,vect1,vect2,vect3};

Есть ли способ повернуть эти координаты таким образом, чтобы при визуализации прямоугольника он казался повернутым на произвольный угол по оси x, y или z?

Спасибо,Пол

1 Ответ

0 голосов
/ 30 декабря 2011

Вам нужно будет использовать матрицу вращения. В зависимости от того, для какой версии OpenGL ES вы пишете, это может быть просто glRotatef (1.0 / 1.1), или вам понадобится использовать математическую библиотеку для создания матрицы и отправки ее в шейдер. (2.0) * +1002 *

Если вам абсолютно необходимо создать вращение перед отправкой вершин, используйте математическую библиотеку и умножьте каждую вершину на матрицу вращения. Я бы не рекомендовал это делать, если только вы не уверены на 100%, что вершины никогда не повернутся после первоначального вращения.

...