В openGL у меня есть объект, который я масштабирую на -1 по оси ... это приводит к тому, что объект не отображается должным образом, потому что все передние грани теперь являются задними. Если не отключать отбраковку, как мне заставить этот объект правильно отображаться? Есть ли способ сделать это без изменения текстурированных нормальных вершин, составляющих мою модель?
Opengl Mirror transform backface culling
Ответы (1)
Вы можете просто переключить режим отбраковки. Вы можете использовать glCullFace(mode)
, чтобы решить, какие треугольники следует отбраковывать. Параметр GL_BACK
означает, что визуализируются только лицевые полигоны, а параметр GL_FRONT означает, что визуализируются только обратные полигоны. Так что, если ваше преобразование означает, что "обратные" многоугольники на самом деле обращены вперед, вызов glCullFace(GL_FRONT)
должен помочь.
В качестве альтернативы вы также можете управлять тем, какие полигоны считаются лицевыми / обратными, используя glFrontFace(dir)
, с параметром GL_CW
(по часовой стрелке) или GL_CCW
(против часовой стрелки) (по умолчанию - против часовой стрелки, поэтому, если вы установите его в clocksie, исходно обратные полигоны будут считаться лицевыми).