OpenGL визуализирует внутренние грани с окклюзией - PullRequest
1 голос
/ 05 февраля 2020

Есть ли способ в OpenGL визуализировать только внутренние грани, в то время как внешние грани все еще покрывают / закрывают внутренние? Чтобы лучше понять, чего я хочу достичь sh, если бы я нарезал случайно расположенный цилиндр, я бы увидел только эллипс.

Я пытался:

    glEnable(GL_CULL_FACE);
    glEnable(GL_BACK);

Но в этом В этом случае я вижу всю внутреннюю поверхность цилиндра, в то время как внешние грани просто исчезают , ничего не закрывая.

Спасибо

1 Ответ

2 голосов
/ 05 февраля 2020

GL_BACK нельзя "включить". Выбранные грани выбираются с помощью glCullFace:

glEnable(GL_BACK);

glCullFace(GL_BACK);

Примечание. glEnable(GL_BACK) вызовет INVALID_ENUM ошибка.

Отбор лица зависит от порядка намотки. См. Также Отбор лиц .

Например, если ваши лица повернуты по часовой стрелке и вы хотите обрезать задние лица, вам необходимо:

glFrontFace(GL_CW​);
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);

Обратите внимание, это важно, чтобы все грани имели одинаковый порядок намотки (по часовой стрелке или против часовой стрелки).

...