Вершины против часовой стрелки

Я читаю несколько книг об 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 Лучшая практика с точки зрения мобильности. Еще одно соображение: оно подчеркивает, что переменная используется для рендеринга графики, так что это хорошая вещь.

Другие вопросы по тегам