Open GL ch 9 primitive drawing Primitive Note

  • Slides: 19
Download presentation
Open. GL 실습 ch 9 primitive drawing 기본요소 및 속성

Open. GL 실습 ch 9 primitive drawing 기본요소 및 속성

기본도형(Primitive)그리기 Note: Open. GL에서는 다각형은 볼록이며 다 각형의 외곽선은 교차할 수 없다. 정점지정 -

기본도형(Primitive)그리기 Note: Open. GL에서는 다각형은 볼록이며 다 각형의 외곽선은 교차할 수 없다. 정점지정 - gl. Begin(mode); gl. Vertex{234}{ifd}[v](argument); - gl. End(); mode: GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLES_FAN, GL_QUADS_STRIP, GL_POLYGON

기본도형(Primitive)그리기 크기제어(픽셀단위) gl. Point. Size(GLfloat size); gl. Line. Width(GLfloat width); 점선(Line Stippling) gl. Line.

기본도형(Primitive)그리기 크기제어(픽셀단위) gl. Point. Size(GLfloat size); gl. Line. Width(GLfloat width); 점선(Line Stippling) gl. Line. Stipple(GLint factor, GLushort pattern); factor: 지정한 패턴 폭을 증가 pattern: 16비트 이진수로 표현되어 그리게 될 선의 길이 만큼 하위비트부터 패턴이 반복 예: gl. Line. Stipple(1, 0 x 5555); 인 경우 0 x 5555 => 01010101 - - - - gl. Enable(GL_LINE_STIPPLE) 로 stippling 기능 활성화 후에 사용. 비활성화 gl. Disable(…) 사용

기본도형(Primitive)그리기 다각형 Stippling 다각형 내부를 비트맵 스티플 패턴으로 채 움 gl. Polygon. Stipple(const GLubyte

기본도형(Primitive)그리기 다각형 Stippling 다각형 내부를 비트맵 스티플 패턴으로 채 움 gl. Polygon. Stipple(const GLubyte *mask); mask: 32 x 32 비트맵에 대한 포인터 gl. Enable(GL_POLYGON_STIPPLE)로 기능 활성화 후 사용

실습 5. 다각형 Stippling #include "glglut. h" void display(void){ GLubyte fly[] = { 0

실습 5. 다각형 Stippling #include "glglut. h" void display(void){ GLubyte fly[] = { 0 x 00, 0 x 00, 0 x 03, 0 x 80, 0 x 01, 0 x. C 0, 0 x 06, 0 x. C 0, 0 x 03, 0 x 60, 0 x 04, 0 x 60, 0 x 06, 0 x 20, 0 x 04, 0 x 30, 0 x 0 C, 0 x 20, 0 x 04, 0 x 18, 0 x 20, 0 x 04, 0 x 0 C, 0 x 30, 0 x 20, 0 x 04, 0 x 06, 0 x 60, 0 x 20, 0 x 44, 0 x 03, 0 x. C 0, 0 x 22, 0 x 44, 0 x 01, 0 x 80, 0 x 22, 0 x 44, 0 x 01, 0 x 80, 0 x 22, 0 x 66, 0 x 01, 0 x 80, 0 x 66, 0 x 33, 0 x 01, 0 x 80, 0 x. CC, 0 x 19, 0 x 81, 0 x 98, 0 x 0 C, 0 x. C 1, 0 x 83, 0 x 30, 0 x 07, 0 xe 1, 0 x 87, 0 xe 0, 0 x 03, 0 x 3 f, 0 xfc, 0 xc 0, 0 x 03, 0 x 31, 0 x 8 c, 0 xc 0, 0 x 03, 0 x 33, 0 xcc, 0 xc 0, 0 x 06, 0 x 64, 0 x 26, 0 x 60, 0 x 0 c, 0 xcc, 0 x 33, 0 x 30, 0 x 18, 0 xcc, 0 x 33, 0 x 18, 0 x 10, 0 xc 4, 0 x 23, 0 x 08, 0 x 10, 0 x 63, 0 x. C 6, 0 x 08, 0 x 10, 0 x 30, 0 x 0 c, 0 x 08, 0 x 10, 0 x 18, 0 x 08, 0 x 10, 0 x 00, 0 x 08};

gl. Clear (GL_COLOR_BUFFER_BIT); gl. Color 3 f (1. 0, 1. 0); gl. Rectf (25.

gl. Clear (GL_COLOR_BUFFER_BIT); gl. Color 3 f (1. 0, 1. 0); gl. Rectf (25. 0, 125. 0); gl. Enable (GL_POLYGON_STIPPLE); gl. Polygon. Stipple (fly); //스티플이 붙을 폴리곤 생성 gl. Disable (GL_POLYGON_STIPPLE); gl. Flush (); } void init (void) { gl. Clear. Color (0. 0, 0. 0); gl. Shade. Model (GL_FLAT); } void reshape (int w, int h){ gl. Viewport (0, 0, (GLsizei) w, (GLsizei) h); gl. Matrix. Mode (GL_PROJECTION); gl. Load. Identity (); glu. Ortho 2 D (0. 0, (GLdouble) w, 0. 0, (GLdouble) h); }

int main(int argc, char **argv){ glut. Init(&argc, argv); glut. Init. Display. Mode(GLUT_RGB|GLUT_SINGLE); glut. Init.

int main(int argc, char **argv){ glut. Init(&argc, argv); glut. Init. Display. Mode(GLUT_RGB|GLUT_SINGLE); glut. Init. Window. Size(350, 150); glut. Create. Window("polygon stipple"); init(); glut. Display. Func(display); glut. Reshape. Func(reshape); glut. Main. Loop(); return 0; }