Если нужно включить удаление невидимых поверхностей методом z-буфера, то необходимо очистить г-буфер и подать команду

glEnable ( GL_DEPTH_TEST );

Все геометрические примитивы задаются в терминах вершин. Каждая вершина задается набором чисел.

OpenGL работает с однородными координатами (дт, у, г, w). Если координата г не задана, то она кладется равной нулю. Если координата w не задана, то она кладется равной единице.

Библиотека OpenGL может выводить точки, линии, полигоны и битовые изображения.

Под линией в OpenGL подразумевается отрезок, заданный своими начальной и конечной вершинами.

Под гранью (многоугольником) в OpenGL подразумевается замкнутый выпуклый многоугольник с несамопересекающейся границей.

Все геометрические объекты в OpenGL задаются посредством вершин, а сами вершины задаются процедурой

void glVertex{2 3 4}{s i f d){v}( TYPE x, … );

где реальное количество аргументов определяется первым суффиксом (2, 3 или 4) и суффикс v означает, что в качестве единственного аргумента выступает массив, содержащий необходимое количество координат. Например:

glVertex2s ( 1, 2 ) ; glVertext3f ( 2.3, 1.5, 0.2 ) ;
GLdouble vect [] ={ 1.0, 2.0, 3.0, 4.0); glVertext4dv ( vect ) ;

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

Процедура

void glBegin ( GLenum mode );

обозначает начало списка вершин, описывающих геометрический примитив. Тип примитива задается параметром mode, который принимает одно из следующих значений (рис. 4.2): GLJPOINTS - набор отдельных точек;

GL_LINES - пары вершин, задающие отдельные отрезки:

[v0,v,],[v2,v3] т.д.;

GL_LINE_STRIP - незамкнутая ломаная v0v,v2…vn ; GL_LINE_LOOP - замкнутая ломаная v0v,v2…vnv0; GLJPOLYGON - простой выпуклый многоугольник;

GL_TRIANGLES - тройки вершин, интерпретируемые как вершины

отдельных треугольников: v0v,v2, v3v4v5,… ; GL_TRIANGLE_STRIP- связанная полоса треугольников:


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