OpenGL Зеркальное преобразование отбраковки задней поверхности - PullRequest
3 голосов
/ 26 октября 2010

В openGL у меня есть объект, который я масштабирую на -1 вдоль оси ... это приводит к тому, что объект не отображается должным образом, потому что все передние грани теперь являются задними гранями.За исключением отключения отбраковки, как бы заставить этот объект отображаться правильно?Есть ли способ сделать это без изменения текстурированных нормальных вершин, из которых состоит моя модель?

1 Ответ

7 голосов
/ 26 октября 2010

Вы можете просто переключить режим отбраковки.Вы можете использовать glCullFace(mode), чтобы решить, какие треугольники следует отбраковать.Предоставление параметра GL_BACK означает, что отображаются только передние многоугольники, а параметр GL_FRONT означает, что отображаются только обратные полигоны.Таким образом, если ваше преобразование означает, что полигоны "backfacing" на самом деле являются передними, вызов glCullFace(GL_FRONT) должен помочь.

В качестве альтернативы вы также можете контролировать, какие полигоны считаются передними / backfacing, используя glFrontFace(dir),с параметром GL_CW (по часовой стрелке) или GL_CCW (против часовой стрелки) (по умолчанию это против часовой стрелки, поэтому, если вы установите его для часов, оригинальные полигоны обратного хода будут рассматриваться как передние).

...