OpenGL: окончательное решение путаницы системы координат? - PullRequest
0 голосов
/ 18 января 2010

Я устал думать о том, как, черт возьми, мои кулинары работают в каждом случае.

Я слышал, что могу перевернуть ось Y следующим кодом:

glScalef(1, -1, 1);

Но я должен? Не нарушает ли это некоторые другие внешние функции, освещение и т. Д.

Ответы [ 3 ]

5 голосов
/ 18 января 2010

Я могу сказать, что привыкнуть к настройкам по умолчанию в opengl - это самый быстрый способ избежать путаницы.

2 голосов
/ 18 января 2010

Нет правильного ответа да / нет на этот вопрос. Вызов glScalef(1, -1, 1) означает использование левой руки вместо правой системы координат, это исторически было выбором, например, Direct3D и интерфейса RenderMan. Некоторые люди чувствуют, что интуитивно понятнее иметь положительную ось z, указывающую на экран, а не на него (это одна версия левой системы координат, а ось y - вниз).

Если вы решили переключить систему координат, вам придется изменить некоторые стандартные настройки в OpenGL, чтобы она работала. Например, вы, вероятно, хотите позвонить glCullFace(GL_FRONT) (или изменить порядок всех треугольников, отправленных в OpenGL).

0 голосов
/ 18 января 2010

Я могу ошибаться, но это может вывернуть ваши модели наизнанку. Возможно, вам также понадобится поменять порядок вершин. Если вы используете двусторонние полигоны, вам не о чем беспокоиться.

...