Рис. 2.14. Типы многоугольников в OpenGL
Многоугольники (GLP0LYG0N)
Ребра объектов этого типа совпадают с отрезками замкнутой ломаной, построенной на том же наборе вершин. Внутренняя область объекта заполняется в соответствии с заданными значениями атрибутов заливки. Сами по себе ребра имеют конечную толщину. В большинстве графических систем можно либо заливать внутреннюю область определенным цветом (заполнять определенным образцом), либо вычерчивать ребра линиями определенной толщины, но нельзя совмещать эти два способа отображения. В OpenGL можно использовать функцию glPolygonMode( ) для отображения ребер и тем самым отменять используемый по умолчанию режим заливки. Если же желательно сформировать совмещенное изображение многоугольника в обоих режимах, придется фактически создать два объекта на одном и том же наборе вершин. Первый объект- это стандартный многоугольник, а второй - либо многоугольник, сформированный функцией glPolygonMode( ), либо замкнутая ломаная.
Треугольники и четырехугольники ( GL_TRI ANGLES, GLQUÀDS)
Для формирования треугольников и четырехугольников в OpenGL используются специальные примитивы. Треугольник определяется тремя вершинами, а четырехугольник- четырьмя. Эти объекты тонируются быстрее, чем такие же по форме объекты типа GL_P0LYG0N.
Полосы (GL_TRIANGLE_STRIP, GL_QUAD_STRIP, GL_TRIANGLE_FAN)
Объекты этих типов представляют собой группу треугольников или четырехугольников, в которых отдельные фигуры совместно используют некоторые вершины. В треугольной полосе - объекте типа GL_TRIANGLE_STRIP - каждая последующая вершина в списке комбинируется с двумя предыдущими и определяет таким образом очередную треугольную ячейку полосы (рис. 2.15). В полосе, состоящей из четырехугольных ячеек - объекте типа
2.3. Примитивы и атрибуты
СЬ_0иАП_БТК1Р, - каждая очередная пара вершин в списке комбинируется с предыдущей парой и задает очередную четырехугольную ячейку. Объект типа TRIANGLE_FAN - розетка- строится на основе одной фиксированной вершины (центра), которая идет первой в списке вершин. Следующие две вершины в списке определяют первый треугольный "лепесток", а затем каждая очередная вершина вместе с предыдущей в списке и центральной определяет следующий "лепесток".