Порядок рисования в OpenGL - PullRequest
       11

Порядок рисования в OpenGL

4 голосов
/ 22 декабря 2008

Я рендеринг сцены OpenGL, которая включает в себя некоторый растровый текст. Насколько я понимаю, порядок, в котором я рисую вещи, определит, какие предметы находятся сверху.

Однако мой растровый текст, хотя я рисую его последним, не находится наверху!

Например, я рисую:

1) Фон
2) Кнопки
3) Текст

Все на одной и той же глубине z. Кнопки находятся над фоном, но текст невидим. Если я изменяю глубину z текста, я вижу его, но у меня возникают другие проблемы.

Я использую метод растрового текста из учебников Nehe.

Как сделать текст видимым, не меняя глубину z?

Ответы [ 2 ]

8 голосов
/ 22 декабря 2008

Вы можете просто отключить z-тест через

  glDisable (GL_DEPTH_TEST);  // or something related..

Если вы сделаете это, Z ваших текстовых примитивов будет игнорироваться. Примитивы рисуются в том же порядке, что и ваш вызов gl-functions.

Другим способом было бы установить некоторое постоянное смещение по z через glPolygonOffset (не рекомендуется) или установить режим сравнения глубины на что-то вроде GL_LESS_EQUAL (EQUAL является важным). Это гарантирует, что примитивы, нарисованные с одинаковой глубиной, отображаются друг на друге.

Надеюсь, это поможет.

0 голосов
/ 29 декабря 2008

Вы также можете использовать glDepthFunc (GL_ALWAYS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...