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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

  1. http://open.gl/
  2. http://www.opengl-tutorial.org/
  3. ogldev
Другие вопросы по тегам