2011-12-30 1 views
0

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

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

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}; 

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

Спасибо, Paul

ответ

0

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

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