lecture109557677242.pdf
Monthly Archives: April 2012
중간고사답안
모두들 수고하셨습니다. 중간고사답안입니다.4814141569.pdf
lecture9
lecture98352226541.pdf
Vector/Matrix/Plane Class
Vector3/4 Class
Matrix4x4 Class
Plane Class
Quaternion Class
http://dis.dankook.ac.kr/lectures/cg10/entry/Vector-Matrix-Plane-Class
lecture8
lecture87122711874.pdf
lecture7
lecture78970747946.pdf
Trigonometry
OpenGL Single vs Double Buffer
OpenGL single buffer vs double buffer – draw geometry primitives
http://www.opengl.org/resources/code/samples/glut_examples/examples/sb2db.c
OpenGL single buffer vs double buffer – draw a square
OpenGL Display List
8688955335.zip
눈사람을 36개 그렸을 때, 렌더링 속도에 큰 차이가 없음
Display List 사용한 경우 Frame Rate이 59.94 정도 나옴
Display List를 사용하지 않은 경우 Frame Rate이 59.98 정도 나옴
![]() |
![]() |
눈사람을 3600개 그렸을 때, 렌더링 속도에 차이가 보임
Display List 사용한 경우 Frame Rate이 13.0 정도 나옴
Display List를 사용하지 않은 경우 Frame Rate이 2.77 정도 나옴
![]() |
![]() |
OpenGL Picking
4155373035.zip
pick1.cpp (selection mode)
-display 함수에서는 정상적으로 객체를 그린다.
-mouse 함수에서 마우스의 위치값(x,y)를 가지고
-glSelectBuffer로 네임스택 버퍼를 지정한다.
-glRenderMode를 GL_SELECT로 지정하여 선택모드로 전환한다.
-glInitNames으로 네임스택을 초기화한다.
-gluPickMatrix를 사용하여 뷰볼륨을 지정한 후
-glPushName/glPopName 또는 glLoadName을 사용하여 네임스택이름을 지정하여
객체를 그리면, picking 연산이 가능해진다.
-glRenderMode를 GL_RENDER로 바꾸면, hit record가 네임스택 버퍼에 저장된다.
-네임스택 버퍼를 처리(processHits) 하여, 해당 객체 ID를 넘겨주어 Pick한다.
http://www.lighthouse3d.com/opengl/picking/index.php?openglway3
pick2.cpp (bounding box)
-display 함수에서는 정상적으로 객체를 그린다.
-mouse 함수에서 마우스의 위치값(x,y)를 가지고
-각 객체의 bounding box를 안에 들어왔는지 확인하여,
해당 객체 ID를 넘겨주어 Pick한다.
pick3.cpp (back buffer)
-display 함수에서는 정상적으로 객체를 그린다.
-mouse 함수에서 마우스의 위치값(x,y)를 가지고
-GL_DITHER 를 비활성화한후, 각 객체마다 color code된 그림을 그린다.
-glReadPixel 로 마우스 위치의 pixel 색을 받아와서 해당 객체의 color와 비교하여,
해당 객체 ID를 넘겨주어 Pick한다..