Реферат: Основы программирования OpenGL в Borland С++Builder и Delphi. Простейшие объекты

begin

glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);

glColor3f(1,1,1);

for i:=0 to 9 do

begin

glPointSize((i+1)*4);

glBegin(GL_POINTS);

glVertex2f(i,i);

glEnd;

end;

SwapBuffers(ghDC);

end;

ПРИМЕЧАНИЕ: в FormResize я вызвал glOrtho следующим образом - glOrtho(-1,12, -1,12, 2,12). Это – для того, чтобы все точки поместились в окне.

Для изменения размера точки используется процедура glPointSize(size). Параметр size задаёт диаметр точки.

В этом примере все точки квадратные. В OpenGL разрешено сглаживание (smoothening) как точек, так и более сложных объектов. Как и всё в OpenGL, этот режим включается и выключается процедурами glEnable/glDisable. Для точек это делается так:

glEnable(GL_POINT_SMOOTH);

Вставив эту строчку где-нибудь перед рисованием точек, получим:

Откровенно говоря, у меня OpenGL делает это довольно плохоL, возможно ваша реализация справляется с этим лучше.

Линии

С линиями – не на много сложнее. Вместо размера у линии указывается ширина:

glLineWidth(width)

сглаживание разрешается следующим образом:

glEnable(GL_LINE_SMOOTH)

Но на этом возможности линий не заканчиваются. Я уже рассказал, как можно нарисовать две или даже три линии, указав всего три вершины (вызываем glBegin с параметром GL_LINE_STRIP или GL_LINE_LOOP), но и это ещё не всё! В OpenGL можно указать штриховку линии! Делается это процедурой glLineStipple(factor, pattern). Здесь pattern – 16-разрядная битовая маска. Например, чтобы нарисовать пунктирную линию, маску надо задать равной 255, что в шестнадцатеричной системе счисления соответствует 00FF, а в двоичной – 0000000011111111. А целое factor показывает, сколько раз будет повторяться каждый бит маски.

Осталось только разрешить штриховать линии: glEnable(GL_LINE_STIPPLE).

Пример.

С++, Delphi

glEnable(GL_LINE_SMOOTH);

glLineStipple(1,255);

К-во Просмотров: 884
Бесплатно скачать Реферат: Основы программирования OpenGL в Borland С++Builder и Delphi. Простейшие объекты