Graphics 2 D Programming in Open GL kucg
























































- Slides: 56
Graphics 2 D Programming in Open. GL 고려대학교 컴퓨터 그래픽스 연구실 kucg. korea. ac. kr 1 Graphics Lab @ Korea University
Getting Started – MFC n KUCG Open. GL Programming n Visual C++ 6. 0 kucg. korea. ac. kr 2 Graphics Lab @ Korea University
New – MFC App. Wizard (exe) kucg. korea. ac. kr 3 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (1/7) kucg. korea. ac. kr 4 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (2/7) kucg. korea. ac. kr 5 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (3/7) kucg. korea. ac. kr 6 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (4/7) kucg. korea. ac. kr 7 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (5/7) kucg. korea. ac. kr 8 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (6/7) kucg. korea. ac. kr 9 KUCG Graphics Lab @ Korea University
New – MFC App. Wizard (7/7) kucg. korea. ac. kr 10 KUCG Graphics Lab @ Korea University
Workspace kucg. korea. ac. kr 11 KUCG Graphics Lab @ Korea University
Build kucg. korea. ac. kr KUCG 12 Graphics Lab @ Korea University
Execute kucg. korea. ac. kr KUCG 13 Graphics Lab @ Korea University
Project Settings (1/2) kucg. korea. ac. kr 14 KUCG Graphics Lab @ Korea University
Project Settings (2/2) kucg. korea. ac. kr 15 KUCG Graphics Lab @ Korea University
Include Header Files kucg. korea. ac. kr 16 KUCG Graphics Lab @ Korea University
Member Variables and Functions kucg. korea. ac. kr 17 KUCG Graphics Lab @ Korea University
Class Wizard (1/2) kucg. korea. ac. kr 18 KUCG Graphics Lab @ Korea University
Class Wizard (2/2) kucg. korea. ac. kr 19 KUCG Graphics Lab @ Korea University
On. Create( ) (1/2) kucg. korea. ac. kr 20 KUCG Graphics Lab @ Korea University
On. Create( ) (2/2) KUCG int CPractice. View: : On. Create(LPCREATESTRUCT lp. Create. Struct) { if (CView: : On. Create(lp. Create. Struct ) == -1) return -1; // TODO: Add your specialized creation code here m_p. DC = new CClient. DC(this); // get device context if( m_p. DC == NULL ) { : : Afx. Message. Box( "fail to get device context" ); return FALSE; } if( !Setup. Pixel. Format() ) // setup pixel format { : : Afx. Message. Box( "Setup. Pixel. Format failed" ); return FALSE; } // get rendering context if( ( m_h. RC = wgl. Create. Context(m_p. DC->Get. Safe. Hdc()) ) == 0 ) { : : Afx. Message. Box( "wgl. Create. Context failed" ); return FALSE; } // make current rendering context if( wgl. Make. Current(m_p. DC->Get. Safe. Hdc(), m_h. RC) == FALSE ) { : : Afx. Message. Box( "wgl. Make. Current failed" ); return FALSE; } } return 0; kucg. korea. ac. kr 21 Graphics Lab @ Korea University
On. Destory( ) kucg. korea. ac. kr 22 KUCG Graphics Lab @ Korea University
On. Erase. Bkgnd( ), On. Size( ) kucg. korea. ac. kr 23 KUCG Graphics Lab @ Korea University
Pre. Create. Window( ), On. Draw( ) kucg. korea. ac. kr 24 KUCG Graphics Lab @ Korea University
Setup. Pixel. Format( ) (1/2) kucg. korea. ac. kr 25 KUCG Graphics Lab @ Korea University
Setup. Pixel. Format( ) (2/2) KUCG BOOL CPractice. View: : Setup. Pixel. Format(PIXELFORMATDESCRIPTOR * p. PFD) { PIXELFORMATDESCRIPTOR pfd = { sizeof( PIXELFORMATDESCRIPTOR ), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL, PFD_TYPE_RGBA, 24, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0, 0 }; int pixelformat; PIXELFORMATDESCRIPTOR* p. PFDto. Use; p. PFDto. Use = (0 == p. PFD)? &pfd : p. PFD; if ( 0 == ( pixelformat = : : Choose. Pixel. Format( m_p. DC->Get. Safe. Hdc(), p. PFDto. Use ) ) ) { : : Afx. Message. Box( "Choose. Pixel. Format failed" ); return FALSE; } if ( FALSE == : : Set. Pixel. Format( m_p. DC->Get. Safe. Hdc(), pixelformat, p. PFDto. Use ) ) { : : Afx. Message. Box( "Set. Pixel. Format failed" ); return FALSE; } } return TRUE; kucg. korea. ac. kr 26 Graphics Lab @ Korea University
Draw. Scene( ) kucg. korea. ac. kr 27 KUCG Graphics Lab @ Korea University
Result – Simple Program kucg. korea. ac. kr 28 KUCG Graphics Lab @ Korea University
Open. GL Primitives n n n KUCG Points Lines Triangles Quadrilaterals Polygons kucg. korea. ac. kr 29 Graphics Lab @ Korea University
Draw. Scene( ) – 2 D Points kucg. korea. ac. kr 30 KUCG Graphics Lab @ Korea University
Result – 2 D Points kucg. korea. ac. kr 31 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – 2 D Lines (1) kucg. korea. ac. kr 32 KUCG Graphics Lab @ Korea University
Result – 2 D Lines (1) kucg. korea. ac. kr 33 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – 2 D Lines (2) kucg. korea. ac. kr 34 KUCG Graphics Lab @ Korea University
Result – 2 D Lines (2) kucg. korea. ac. kr 35 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – 2 D Lines (3) kucg. korea. ac. kr 36 KUCG Graphics Lab @ Korea University
Result – 2 D Lines (3) kucg. korea. ac. kr 37 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Line Attributes kucg. korea. ac. kr 38 KUCG Graphics Lab @ Korea University
Result – Line Attributes kucg. korea. ac. kr 39 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Triangles (1) kucg. korea. ac. kr 40 KUCG Graphics Lab @ Korea University
Result – Triangles (1) kucg. korea. ac. kr 41 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Triangles (2) kucg. korea. ac. kr 42 KUCG Graphics Lab @ Korea University
Result – Triangles (2) kucg. korea. ac. kr 43 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Triangles (3) kucg. korea. ac. kr 44 KUCG Graphics Lab @ Korea University
Result – Triangles (3) kucg. korea. ac. kr 45 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Attributes kucg. korea. ac. kr 46 KUCG Graphics Lab @ Korea University
Result – Polygon Attributes kucg. korea. ac. kr 47 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Quadrilaterals kucg. korea. ac. kr 48 KUCG Graphics Lab @ Korea University
Result – Quadrilaterals (1) kucg. korea. ac. kr 49 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Quadrilaterals kucg. korea. ac. kr 50 KUCG Graphics Lab @ Korea University
Result – Quadrilaterals (2) kucg. korea. ac. kr 51 KUCG Graphics Lab @ Korea University
Draw. Scene( ) – Polygons kucg. korea. ac. kr 52 KUCG Graphics Lab @ Korea University
Result – Polygons kucg. korea. ac. kr 53 KUCG Graphics Lab @ Korea University
What’s happening? kucg. korea. ac. kr 54 KUCG Graphics Lab @ Korea University
Exercise n What You Have to Program n n KUCG 2 D Sierpinski gasket (pp. 74~75) Options Polygons and recursion (pp. 75~77) n 3 D gasket (pp. 77~79) n kucg. korea. ac. kr 55 Graphics Lab @ Korea University
Result – 2 D Sierpinski Gasket kucg. korea. ac. kr 56 KUCG Graphics Lab @ Korea University
























































