OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9....

17
Sun-Jeong Kim OpenGL Programming (1) 10 th Week, 2008 Computer Graphics 2 Getting Started VS.net

Transcript of OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9....

Page 1: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Sun-Jeong Kim

OpenGL Programming (1)

10th Week, 2008

Computer Graphics2

Getting Started – VS.net

Page 2: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics3

New Project

Visual C++Win32 Application

Computer Graphics4

Application Settings

Empty project

Page 3: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics5

“Prac06” Solution

Computer Graphics6

Downloading “main1.cpp”

Page 4: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics7

Adding the Source Code (1)

Project Add Existing Item

Computer Graphics8

Adding the Source Code (2)

Page 5: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics9

Linking the Library Files

Project PropertiesConfiguration Properties Linker Input

Additional Dependencies: opengl32.lib glu32.libopengl32.lib glu32.lib

Computer Graphics10

실행 결과 – “main1.cpp”

Page 6: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics11

Includes, Global Variables, and Prototypes

Computer Graphics12

Window Procedure (1)

Page 7: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics13

Window Procedure (2)

Computer Graphics14

bSetupPixelFormat( )

Page 8: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics15

Resize( ) and DrawScene( )

Computer Graphics16

연습 문제 (1)

메뉴를 추가하시오.

Page 9: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics17

Drawing Modes (1)

Points

Lines

Triangles

Rectangles

N-Polygons

Computer Graphics18

Drawing Modes (2)

Page 10: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics19

Drawing Modes (3)

Computer Graphics20

Drawing Modes (4)

Page 11: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics21

실행 결과 – Drawing Modes

Computer Graphics22

Points in OpenGL

glBegin(GL_POINTS);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_POINTS);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3

p4

p5

p6

p7

Page 12: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics23

Lines in OpenGL (1)

Line Segments

glBegin(GL_LINES);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_LINES);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3

p4

p5

p6

p7

Computer Graphics24

Lines in OpenGL (2)

Polylines – Line Loop

glBegin(GL_LINE_LOOP);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_LINE_LOOP);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3p4

p5

p6

p7

Page 13: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics25

Polygons in OpenGL (1)

Triangles

glBegin(GL_TRIANGLES);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_TRIANGLES);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3p4

p5

p6

p7

Computer Graphics26

Polygons in OpenGL (2)

Quadrilaterals

glBegin(GL_QUADS);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_QUADS);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3p4

p5

p6

p7

Page 14: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics27

Polygons in OpenGL (3)

Polygon

glBegin(GL_POLYGON);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

glBegin(GL_POLYGON);

glVertex2fv(p0);

glVertex2fv(p1);

glVertex2fv(p2);

glVertex2fv(p3);

glVertex2fv(p4);

glVertex2fv(p5);

glVertex2fv(p6);

glVertex2fv(p7);

glEnd();

p0p1

p2

p3p4

p5

p6

p7

Computer Graphics28

Drawing Points (1)

Page 15: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics29

Drawing Points (2)

Computer Graphics30

Drawing Points (3)

Page 16: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics31

Drawing Points (4)

Computer Graphics32

Drawing Points (5)

Page 17: OpenGL Programming (1) - hallym.ac.krgraphics.hallym.ac.kr/teach/2008/cg/src/13prac.pdf · 2008. 9. 16. · p2 p3 p4 p5 p6 p7. 27 Computer Graphics Polygons in OpenGL (3) ... Microsoft

Computer Graphics33

실행 결과 – Drawing Points

Computer Graphics34

연습 문제 (2)

다음 도형들을 마우스로 이용하여 점의 위치를 입력 받고, OpenGL 함수를 이용하여 그리시오.

Lines (선분)

Triangles (삼각형)

Rectangles (직사각형)

N-Polygons (다각형)