Вершины против часовой стрелки
Я читаю несколько книг об OpenGL, и в двух из них они всегда определяют вершины против часовой стрелки. Из того, что я прочитал, это очень важно, потому что оно определяет, где находится передняя и задняя части.
Но я также читаю учебник на http://www.arcsynthesis.org/gltut/ И он определяет их по часовой стрелке.
const float vertexPositions[] = {
0.75f, 0.75f, 0.0f, 1.0f,
0.75f, -0.75f, 0.0f, 1.0f,
-0.75f, -0.75f, 0.0f, 1.0f,
};
Разве я не должен всегда использовать обозначение против часовой стрелки, потому что это по умолчанию в opengl?
Кроме того, почему тип float
? Разве это не должно быть GLfloat
?
1 ответ
Разве я не должен всегда использовать обозначение против часовой стрелки, потому что это по умолчанию в opengl?
Это твой выбор. Вы можете использовать обозначения CCW или CW. Вы всегда можете изменить это поведение с помощью glFrontFace()
, Нет никакой разницы для аппаратного обеспечения, какой способ работы, но, я думаю, выбор CW может вызвать некоторые неожиданные проблемы при попытке использовать стороннюю библиотеку, которая предпочитает CCW или что-то в этом роде.
Кроме того, почему тип поплавок? Разве это не GLfloat?
Так должно быть GLfloat
, С другой стороны, на большинстве платформ float
а также GLfloat
точно так же, и никто не может найти никакой разницы. С помощью GLfloat
Лучшая практика с точки зрения мобильности. Еще одно соображение: оно подчеркивает, что переменная используется для рендеринга графики, так что это хорошая вещь.