Грани | MetodPro.ru

Реклама на сайте

Грани


Остановимся немного подробнее на понятии грани, используемом в OpenGL. Гранью называется сторона многоугольника. Причем в качестве многоугольника могут выступать как простейший треугольник, так и сложный многоугольник, лежащий в одной плоскости. Все сложные трехмерные объекты в OpenGL апроксимируются многоугольниками. Каждый многоугольник имеет две стороны, т. е. две грани, — лицевую и обратную. Очевидно, что только одна грань может быть видима в окне в текущий момент времени. Для того, чтобы не тратить время на воспроизведение невидимых граней, в OpenGL реализован механизм, позволяющий различать лицевые и обратные грани.

При рассмотрении многоугольных примитивов уже говорилось о важности порядка обхода вершин. Грани различают после того, как многоугольник спроецирован в окно. Рассматривается, в какой последовательности обходятся вершины многоугольника и принимается решение о типе грани.

Если они обходятся по часовой стрелке, то видимой является одна из граней; если против часовой стрелки, то другая.

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

glFrontFace(Glenum mode),

которая позволяет определить тип грани в зависимости от направления обхода многоугольника — по часовой стрелке или против. Направление обхода задается параметром mode, который может принимать значения GL_CW — по часовой стрелке и GL_CCW — против часовой стрелки (установлено по умолчанию).

Команда:

glCullFace(GLenum mode)

позволяет указать какие грани - лицевые или обратные будут исключены из рассмотрения. Параметр mode может принимать одно из двух значений: GL_FRONT — для лицевых и GL_BACK — для обратных граней (последнее используется по умолчанию).

Для того, чтобы разрешить OpenGL отбирать изображаемые грани, необходимо выполнить команду glEnable с аргументом GL_CULL_FACE. Блокировка этого режима как обычно осуществляется командой gIDisable с тем же аргументом.



Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем