Opengl Mirror transform backface culling

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


person Ian Nafiri    schedule 26.10.2010    source источник


Ответы (1)


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

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

person Grizzly    schedule 26.10.2010