GL_TRIANGLE_FAN - веер треугольников: v0v,v2, v0v2v3, v0v3v4>… ;

GL_QUADS - четверки вершин, задающие выпуклые четырех угольники: v0v,v2v3, v4v5v6v7,…;

GL_QUAD_STRIP - полоса четырехугольников:

VoV^v2,v2Viv5v4,v4v5v7v6,…

Основы библиотеки OpenGL

Процедура void glEnd (); отмечает конец списка вершин.

Между командами glBegin и glEnd могут находиться следующие команды: gIVertex*, glColor*, glNormal*, glCallList, glCallLists, glTexCoord*, glEdgeFlag и glMaterial*. Все остальные команды OpenGL недопустимы между командами glBegin и glEnd и приведут к возникновению ошибки. По команде glEnd осуществляется вывод текущего объекта.

Рассмотрим в качестве примера задание окружности при помощи правильного многоугольника.

glBegin ( GL_LINE_LOOP );
for ( int i = 0; i < N; i++ ) {
float angle =2*M_PI*i/N;
glVertex2f ( cos ( angle ), sin ( angle ) );
}
glEnd ();

Хотя многие команды могут находиться между glBegin и glEnd, вершины генерируются при вызове glVertex*. В момент вызова glVertex* OpenGL присваивает создаваемой вершине текущий цвет, координаты текстуры, вектор нормали и т. д.

Рисование точек, линий и многоугольников Для задания размеров точки служит процедура void glPointSize ( GLfloat size ); которая устанавливает размер точки в пикселах, по умолчанию размер точки равен единице.

Для задания ширины линии в пикселах служит процедура

void glLineWidth ( GLfloat width ),-

Можно задать шаблон, которым будет рисоваться линия, при помощи процедуры

void glLineStipple ( GLint factor, GLushort pattern );

Шаблон задается переменной pattern, и он растягивается в factor раз. Для использования шаблонов линий необходимо разрешить применение шаблонов линий при помощи команды

glEnable ( GL_LINE_STIPPLE ) ;

Запретить использование шаблонов линий можно командой

glDisable ( GL_LINE_STIPPLE );

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


⇐ Предыдущая| |Следующая ⇒