glVertex2s (1, 2);
glVertext3f (2.3, 1.5,0.2 );
GLdouble vect 0 ={1.0, 2.0, 3.0, 4.0}; glVertext4dv ( vect );
Для задания геометрических примитивов необходимо как-то выделить набор вершин, определяющих этот объект. Для этого служат процедуры glBegin() и glEnd(). Процедура
void gIBegin ( GLenum mode ); обозначает начало списка вершин, описывающих геометрический примитив. Тип примитива задается параметром mode, который принимает одно из следующих значений:
GL_POINTS - набор отдельных точек;
GL_LINES - пары вершин, задающих отдельные отрезки: Lv0V|V2…vn] и т. д.; GL_LINE_STRIP - незамкнутая ломаная v0v,v2…vn; GLLINELOOP - замкнутая ломаная v0viv2…vnv0; GLPOLYGON - простой выпуклый многоугольник;
GL_TRIANGLES - тройки вершин, интерпретируемые как вершины отдельных треугольников: v0VjV2, v3v4v5, …:
GLTRIANGLESTRIP - связанная полоса треуголышков^д7^, v2V|V3.v2v3v4
GL_TR1ANGLE_FAN - веер треугольников: v0ViV2, v0v2v3, v()v3v4, …;
GL_QUADS - четверки вершин, задающие выпуклые четырехугольники: v0vjv2v3, v4v5v6v7,… :
GL_QUAD_STRIP - полоса четырехугольников^^, v3v2, v2v3v5v4, v4v5v7v6,…
12. Работа с библиотекой OpenGL
Процедура void glEnd (); отмечает конец списка вершин.
Между командами glBegin () и glEnd () могут находиться команды задания различных атрибутов вершин glVertex* (), glColor* (), glNormal* (), glCallList (), glCallLists (), glTexCoord* (), glEdgeFlag () и glMaterial* (). Между командами glBegin () и glEnd () все остальные команды OpenGL недопустимы и приводят к возникновению ошибок.
Рассмотрим в качестве примера задание окружности.
glBegin ( GLJ.INE_.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 присваивает создаваемой вершине текущий цвет, координаты текстуры, вектор нормали и т. д. Изначально «вектор нормали полагается равным (0,0,1), цвет полагается равным (1, 1, 1, 1), координаты текстуры полагаются равными нулю.