3.1 Общие положения

Автор: zombie

     Точки, линии, треугольники,четырехугольники, многоугольники - простые объекты, из которых состоят любые сложные фигуры. В предыдущей главе мы рисовали сферу, конус и тор. OpenGL непосредственно не поддерживает функций для создания таких сложных объектов, т.е. таких функций нет в opengl32.dll. Эти функции есть в библиотеке утилит glu32.dll, и устроены они следующим образом. Для того чтобы нарисовать сферу, функция auxSolidSphere использует функции из библиотеки glu32.dll, а те в свою очередь, используют базовую библиотеку opengl32.dll и из линий или многоугольников строят сферу. Примитивы создаются следующим образом:

 
glBegin(GLenum mode);  // указываем, что будем рисовать 
  glVertex[2 3 4][s i f d](...); // первая вершина
  ...                            // тут остальные вершины 
  glVertex[2 3 4][s i f d](...); // последняя вершина
 glEnd();               // закончили рисовать примитив

     Сначала вы говорите, что будете рисовать - glBegin с соответсвующим параметром. Возможные значения mode перечислены ниже в таблице. Далее вы указываете вершины, определяющие объекты указанного типа. Обычно, вы будете задавать вершину одним из четырех способов.

glVertex2d(x,y);    // две переменных типа double
glVertex3d(x,y,z);  // три переменных типа double
glVertex2dv(array); // массив из двух переменных типа double
glVertex3d(array);  // массив из трех переменных типа double

И, наконец, вы вызваете glEnd, чтобы указать, что вы закончили рисовать объекты типа, указанного в glBegin. Далее мы подробно разберем создание всех примитивов.

Значение mode Описание
GL_POINTS Каждый вызов glVertex задает отдельную точку.
GL_LINES Каждая пара вершин задает отрезок.
GL_LINE_STRIP Рисуется ломаная.
GL_LINE_LOOP Рисуется ломаная, причем ее последняя точка соединяется с первой.
GL_TRIANGLES Каждые три вызова glVertex задают треугольник.
GL_TRIANGLE_STRIP Рисуются треугольники с общей стороной.
GL_TRIANGLE_FAN Тоже самое, но по другому правилу соединяются вершины, вряд ли понадобится.
GL_QUADS Каждые четыре вызова glVertex задают четырехугольник.
GL_QUAD_STRIP Четырехугольники с общей стороной.
GL_POLYGON Многоугольник.

Комментарии закрыты.