OpenGL: что вращает glRotatef?

Когда я звоню glRotatef как это:

glRotatef(angle,0.0,1.0,0.0) //rotate about y-axis

Я знаю, что это вращаться angle градусы о y axis,
Но, какие вращается здесь? Какой именно объект?

Возможно, глупый вопрос, но я совершенно новичок в этом.

Я смог повернуть строку о ее конечной точке, используя ответ Вот , но я не очень понимаю, как это работает внутри.

5

Решение

Ничто не вращается, потому что OpenGL не «хранит» объекты.

glRotatef, как и glMultMatrixf, используется для изменения текущей выбранной матрицы преобразования. Это влияет на то, как вещи нарисованы впоследствии. Один устанавливает матрицы (и другие вещи!) Как хочет, а затем рисует свои объекты.

Для получения дополнительной информации, смотрите RedGL Redbook и изучите разницу между «сохраненным режимом» и «немедленным режимом».

6

Другие решения

glRotate будет действовать на текущую матрицу, которая по умолчанию GL_MODELVIEW, Это повлияет на любой трехмерный объект, который вы рисуете в последовательности. Текущая матрица изменяется с glMatrixMode.
Затем матрица вида модели применяется к любой геометрии, отображаемой с glVertex, glDrawArrays, так далее.

Матрицы на стороне OpenGL устарели. Если вы используете ядро ​​OpenGL 3+, эти функции больше не доступны. Если вы новичок в OpenGL, я советую вам пропустить изучение старых способов и сосредоточиться на современном, шейдерно-ориентированном OpenGL. Вы можете проверить следующие ссылки для некоторых хороших учебников.

  1. open.gl
  2. opengl-tutorial.org
  3. ogldev
2

По вопросам рекламы [email protected]