![Page 1: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/1.jpg)
OpenGLOpenGL
Изграждане наИзграждане наГеометрични обектиГеометрични обекти
гл. ас. д-р А. Пенев
![Page 2: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/2.jpg)
2/43OpenGL - Изграждане на Геометрични обекти
Изчистване на ИзображениетоИзчистване на Изображението (1/3) (1/3)
void glClear(GLbitfield mask)void glClear(GLbitfield mask)
mask:mask:
GL_COLOR_BUFFER_BITGL_COLOR_BUFFER_BIT на Цветана Цвета
GL_DEPTH_BUFFER_BITGL_DEPTH_BUFFER_BIT на Дълбочинатана Дълбочината
GL_ACCUM_BUFFER_BITGL_ACCUM_BUFFER_BIT на Натрупванена Натрупване
GL_STENCIL_BUFFER_BITGL_STENCIL_BUFFER_BIT на Маскатана Маската
![Page 3: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/3.jpg)
3/43OpenGL - Изграждане на Геометрични обекти
Изчистване на Изображението (2Изчистване на Изображението (2/3/3))
void glClearColor(GLclampf red,void glClearColor(GLclampf red,GLclampf green, GLclampf blue,GLclampf green, GLclampf blue,GLclampf alpha)GLclampf alpha)
ПримерПример::
glClearColorglClearColor(0,0,0,0);(0,0,0,0);
glClear(glClear(GL_COLOR_BUFFER_BITGL_COLOR_BUFFER_BIT | |GL_DEPTH_BUFFER_BITGL_DEPTH_BUFFER_BIT););
![Page 4: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/4.jpg)
4/43OpenGL - Изграждане на Геометрични обекти
Изчистване на Изображението (3Изчистване на Изображението (3/3/3))
Повече в лекцията за Работа с Буфери...Повече в лекцията за Работа с Буфери...
![Page 5: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/5.jpg)
5/43OpenGL - Изграждане на Геометрични обекти
glFlush glFlush и и glFinishglFinish
void glFlush(void)void glFlush(void)void glFinish(void)void glFinish(void)
voidvoid glutSwapBuffers( glutSwapBuffers(voidvoid))
![Page 6: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/6.jpg)
6/43OpenGL - Изграждане на Геометрични обекти
glFlushglFlush
glClearColor(0,0,0,0);glClearColor(0,0,0,0);glClear(GL_COLOR_BUFFER_BIT);glClear(GL_COLOR_BUFFER_BIT);……glFlush();glFlush();
Клиент
Сървър
изпраща командите
![Page 7: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/7.jpg)
7/43OpenGL - Изграждане на Геометрични обекти
glFinishglFinish
glClearColor(0,0,0,0);glClearColor(0,0,0,0);glClear(GL_COLOR_BUFFER_BIT);glClear(GL_COLOR_BUFFER_BIT);……glFinish();glFinish();
Клиент
Сървър
изпраща командите
чака да се изпълнят
![Page 8: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/8.jpg)
8/43OpenGL - Изграждане на Геометрични обекти
Буфер2(Back)
glutSwapBuffersglutSwapBuffers
glClearColor(0,0,0,0);glClearColor(0,0,0,0);glClear(GL_COLOR_BUFFER_BIT);glClear(GL_COLOR_BUFFER_BIT);……glutSwapBuffers();glutSwapBuffers(); //извършва и //извършва и FlushFlush
Буфер1(Front)
Буфер1(Back)
Буфер2(Front)
Виждаме
Рисуваме в
![Page 9: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/9.jpg)
9/43OpenGL - Изграждане на Геометрични обекти
glVertexglVertex
Основна команда за дефиниране наОсновна команда за дефиниране нагеометрията на сценатагеометрията на сцената
void glVertex...(x, y, z, w)void glVertex...(x, y, z, w)
![Page 10: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/10.jpg)
10/43OpenGL - Изграждане на Геометрични обекти
““Рисуване”Рисуване”
void glBegin(GLenum mode)void glBegin(GLenum mode)void glEnd(void)void glEnd(void)
Пример:Пример:glColor3d(1,0,0);glColor3d(1,0,0);glBeginglBegin(GL_TRIANGLES);(GL_TRIANGLES); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0);glEnd();glEnd();
![Page 11: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/11.jpg)
11/43OpenGL - Изграждане на Геометрични обекти
Пример 1Пример 1
![Page 12: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/12.jpg)
12/43OpenGL - Изграждане на Геометрични обекти
glBeginglBegin режими режими
GL_POINTSGL_POINTS ТочкиТочкиGL_LINESGL_LINES ОтсечкиОтсечкиGL_LINE_STRIPGL_LINE_STRIP Начупена линияНачупена линияGL_LINE_LOOPGL_LINE_LOOP Затворена начупена линияЗатворена начупена линияGL_TRIANGLESGL_TRIANGLES ТриъгълнициТриъгълнициGL_TRIANGLE_STRIPGL_TRIANGLE_STRIP Ивица от триъгълнициИвица от триъгълнициGL_TRIANGLE_FANGL_TRIANGLE_FAN Ветрило от триъгълнициВетрило от триъгълнициGL_QUADSGL_QUADS ЧетириъгълнициЧетириъгълнициGL_QUAD_STRIPGL_QUAD_STRIP Ивица от четириъгълнициИвица от четириъгълнициGL_POLYGONGL_POLYGON МногоъгълникМногоъгълник
![Page 13: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/13.jpg)
13/43OpenGL - Изграждане на Геометрични обекти
GL_POINTSGL_POINTS
V0
V1 V2
V3
V4
![Page 14: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/14.jpg)
14/43OpenGL - Изграждане на Геометрични обекти
GL_LINESGL_LINES
V0
V1 V2
V3
V4
V5
Забележка: Точките не се визуализират
![Page 15: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/15.jpg)
15/43OpenGL - Изграждане на Геометрични обекти
GL_LINE_STRIPGL_LINE_STRIP
V0
V1 V2
V3
V4
V5
Забележка: Точките не се визуализират
![Page 16: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/16.jpg)
16/43OpenGL - Изграждане на Геометрични обекти
GL_LINE_LOOPGL_LINE_LOOP
V0
V1 V2
V3
V4
V5
Забележка: Точките не се визуализират
![Page 17: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/17.jpg)
17/43OpenGL - Изграждане на Геометрични обекти
GL_TRIANGLESGL_TRIANGLES
V0
V1 V2
V4
V5
V3
Забележка: Точките и линиите не се визуализират
![Page 18: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/18.jpg)
18/43OpenGL - Изграждане на Геометрични обекти
GL_TRIANGLE_STRIPGL_TRIANGLE_STRIP
V0
V1 V3
V2
V4
V5
V6
V7
Забележка: Точките и линиите не се визуализират
![Page 19: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/19.jpg)
19/43OpenGL - Изграждане на Геометрични обекти
GL_TRIANGLE_FANGL_TRIANGLE_FAN
V0
V1 V2
V5
V4
V3
Забележка: Точките и линиите не се визуализират
![Page 20: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/20.jpg)
20/43OpenGL - Изграждане на Геометрични обекти
GL_QUADSGL_QUADS
V0
V1 V2
V3
V4
V5 V6
V7
Забележка: Точките и линиите не се визуализират
![Page 21: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/21.jpg)
21/43OpenGL - Изграждане на Геометрични обекти
GL_QUAD_STRIPGL_QUAD_STRIP
V0
V1 V3
V2
V4
V5
V6
V7
Забележка: Точките и линиите не се визуализират
![Page 22: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/22.jpg)
22/43OpenGL - Изграждане на Геометрични обекти
GL_POLYGONGL_POLYGON
V0
V1 V2
V4
V3
Забележка: Точките и линиите не се визуализират
![Page 23: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/23.jpg)
23/43OpenGL - Изграждане на Геометрични обекти
Характеристики на ВръхХарактеристики на Връх
glBegin(GL_TRIANGLES);glBegin(GL_TRIANGLES); glColor3d(1,0,0);glColor3d(1,0,0); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glColor3d(0,1,0);glColor3d(0,1,0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glColor3d(0,0,1);glColor3d(0,0,1); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0);glEnd();glEnd();
![Page 24: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/24.jpg)
24/43OpenGL - Изграждане на Геометрични обекти
Пример 2Пример 2
![Page 25: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/25.jpg)
25/43OpenGL - Изграждане на Геометрични обекти
Характеристики на връхХарактеристики на връх
void glColor...(red, green, blue, a)void glColor...(red, green, blue, a)void glIndex...(cvoid glIndex...(color_indexolor_index))void glNormal3...(nx, ny, nz)void glNormal3...(nx, ny, nz)
... и много други, които няма да разглеждаме сега.... и много други, които няма да разглеждаме сега.
![Page 26: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/26.jpg)
26/43OpenGL - Изграждане на Геометрични обекти
ТочкиТочки
void glPointSize(GLfloat size)void glPointSize(GLfloat size)
glGetFloatv(GL_POINT_SIZE, &s);glGetFloatv(GL_POINT_SIZE, &s);glglGetFloatvGetFloatv(G(GL_POINT_SIZE_RANGE, &sL_POINT_SIZE_RANGE, &s));;glglEnableEnable(G(GL_POINT_SMOOTHL_POINT_SMOOTH));;glglDisableDisable(G(GL_POINT_SMOOTHL_POINT_SMOOTH));;
![Page 27: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/27.jpg)
27/43OpenGL - Изграждане на Геометрични обекти
ПримерПример 3 (1/2) 3 (1/2)
gglPointSize(5);lPointSize(5);glBegin(GL_POINTS);glBegin(GL_POINTS); glColor3d(1,0,0);glColor3d(1,0,0); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glColor3d(0,1,0);glColor3d(0,1,0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glColor3d(0,0,1);glColor3d(0,0,1); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0);glEnd();glEnd();
![Page 28: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/28.jpg)
28/43OpenGL - Изграждане на Геометрични обекти
Пример 3 (2Пример 3 (2/2/2))
![Page 29: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/29.jpg)
29/43OpenGL - Изграждане на Геометрични обекти
ЛинииЛинии
void glLineWidth(GLfloat width)void glLineWidth(GLfloat width)void glLineStipple(GLint factor,void glLineStipple(GLint factor,GLushort pattern)GLushort pattern)
glGetFloatv(GL_glGetFloatv(GL_LINELINE__WIDTHWIDTH, &, &ww););glglGetFloatvGetFloatv(G(GL_LINE_WIDTH_RANGE, &wL_LINE_WIDTH_RANGE, &w));;glglEnableEnable(GL_(GL_LINELINE__STIPPLESTIPPLE););glglEnableEnable(G(GL_LINE_SMOOTHL_LINE_SMOOTH));;glglDisableDisable(G(GL_LINE_SMOOTHL_LINE_SMOOTH));;
![Page 30: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/30.jpg)
30/43OpenGL - Изграждане на Геометрични обекти
ПримерПример 4 (1/2) 4 (1/2)
glShadeModel(GL_FLAT);glShadeModel(GL_FLAT);glLineWidth(5);glLineWidth(5);glBegin(GL_LINE_STRIP);glBegin(GL_LINE_STRIP); glColor3d(1,0,0);glColor3d(1,0,0); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glColor3d(0,1,0);glColor3d(0,1,0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glColor3d(0,0,1);glColor3d(0,0,1); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0); glColor3d(1,1,1);glColor3d(1,1,1); glVertex2d(1.5, 1.5);glVertex2d(1.5, 1.5);glEnd();glEnd();
![Page 31: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/31.jpg)
31/43OpenGL - Изграждане на Геометрични обекти
Пример 4 (2Пример 4 (2/2/2))
glShadeModel(GL_FLAT)glShadeModel(GL_SMOOTH)
![Page 32: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/32.jpg)
32/43OpenGL - Изграждане на Геометрични обекти
ПримерПример 5 (1/2) 5 (1/2)
glEnable(GL_LINE_STIPPLE);glEnable(GL_LINE_STIPPLE);glLineStipple(1, 0xFF00);glLineStipple(1, 0xFF00);glLineWidth(5);glLineWidth(5);glBegin(GL_LINE_STRIP);glBegin(GL_LINE_STRIP); glColor3d(1,0,0);glColor3d(1,0,0); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glColor3d(0,1,0);glColor3d(0,1,0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glColor3d(0,0,1);glColor3d(0,0,1); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0); glColor3d(1,1,1);glColor3d(1,1,1); glVertex2d(1.5, 1.5);glVertex2d(1.5, 1.5);glEnd();glEnd();
![Page 33: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/33.jpg)
33/43OpenGL - Изграждане на Геометрични обекти
Пример 5 (2Пример 5 (2/2/2))
![Page 34: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/34.jpg)
34/43OpenGL - Изграждане на Геометрични обекти
МногоъгълнициМногоъгълници
void glPolygonMode(GLenum face, GLenum mode)void glPolygonMode(GLenum face, GLenum mode)
face:face:GL_FRONTGL_FRONT само за предна странасамо за предна странаGL_BACKGL_BACK само за задна странасамо за задна странаGL_FRONT_AND_BACKGL_FRONT_AND_BACK и за двете странии за двете страни
mode:mode:GL_POINTGL_POINT само върховесамо върховеGL_LINEGL_LINE само ребрасамо ребраGL_FILLGL_FILL запълнензапълнен
![Page 35: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/35.jpg)
35/43OpenGL - Изграждане на Геометрични обекти
ПримерПример 6 (1/2) 6 (1/2)
glPointSize(5);glPointSize(5);glLineWidth(5);glLineWidth(5);glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);//glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);//glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);glBegin(GL_TRIANGLES);glBegin(GL_TRIANGLES); glColor3d(1,0,0);glColor3d(1,0,0); glVertex2d(-1.0, -1.0);glVertex2d(-1.0, -1.0); glColor3d(0,1,0);glColor3d(0,1,0); glVertex2d(1.0, -1.0);glVertex2d(1.0, -1.0); glColor3d(0,0,1);glColor3d(0,0,1); glVertex2d(0.0, 1.0);glVertex2d(0.0, 1.0);glEnd();glEnd();
![Page 36: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/36.jpg)
36/43OpenGL - Изграждане на Геометрични обекти
Пример 6 (2Пример 6 (2/2/2))
![Page 37: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/37.jpg)
37/43OpenGL - Изграждане на Геометрични обекти
Щриховка на многоъгълнициЩриховка на многоъгълници
void glPolygonStipple(const GLubyte *mask)void glPolygonStipple(const GLubyte *mask)
void glGetPolygonStipple(GLubyte *mask)void glGetPolygonStipple(GLubyte *mask)
void glPolygonOffset(GLfloat factor,void glPolygonOffset(GLfloat factor,GLfloat units)GLfloat units)
![Page 38: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/38.jpg)
38/43OpenGL - Изграждане на Геометрични обекти
Предна страна на многоъгълникПредна страна на многоъгълник
void glFrontFace(GLenum mode)void glFrontFace(GLenum mode)
mode:mode:
GL_CCWGL_CCW обратно на часоватаобратно на часовата
GL_CWGL_CW по часоватапо часовата
приGL_CCW
лице гръб
![Page 39: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/39.jpg)
39/43OpenGL - Изграждане на Геометрични обекти
гръб
Бракуване на многоъгълнициБракуване на многоъгълници
glEnable(GL_CULL_FACE);glEnable(GL_CULL_FACE);
void glCullFace(GLenum mode)void glCullFace(GLenum mode)
mode:mode:
GL_FRONTGL_FRONT
GL_BACKGL_BACK
GL_FRONT_AND_BACKGL_FRONT_AND_BACK
лице
при GL_BACKзадните стени не се растеризират
GL_CCW
![Page 40: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/40.jpg)
40/43OpenGL - Изграждане на Геометрични обекти
ПримерПример 7 (1/2) 7 (1/2)
glPolygonMode(GL_FRONT, GL_FILL);glPolygonMode(GL_FRONT, GL_FILL);glPolygonMode(GL_BACK, GL_LINE);glPolygonMode(GL_BACK, GL_LINE);glEnable(GL_CULL_FACE);glEnable(GL_CULL_FACE);glFrontFace(GL_CCW); // GL_CWglFrontFace(GL_CCW); // GL_CWglCullFace(GL_FRONT); //GL_BACKglCullFace(GL_FRONT); //GL_BACK
glColor3d(1,0,0);glColor3d(1,0,0);glutSolidSphere(1, 32, 32);glutSolidSphere(1, 32, 32);
![Page 41: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/41.jpg)
41/43OpenGL - Изграждане на Геометрични обекти
Пример 7Пример 7 (2/2) (2/2)
glCullFace(GL_FRONT)glCullFace(GL_BACK)
![Page 42: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/42.jpg)
42/43OpenGL - Изграждане на Геометрични обекти
Скриване на ребраСкриване на ребра
void glEdgeFlag...(GLboolean flag)void glEdgeFlag...(GLboolean flag)
GL_TRUEGL_TRUE реброто се показвареброто се показва
GL_FALSEGL_FALSE реброто не се показвареброто не се показва
![Page 43: За мен | Александър Пенев - OpenGL · 2017. 10. 6. · gl_points Точки gl_lines Отсечки gl_line_strip Начупена линия gl_line_loop Затворена](https://reader035.vdocuments.pub/reader035/viewer/2022081410/608d6bf203c63645075fb13e/html5/thumbnails/43.jpg)
43/43OpenGL - Изграждане на Геометрични обекти
OpenGLOpenGL Изграждане на Изграждане наГеометрични обектиГеометрични обекти
Въпроси?Въпроси?