HW1

그래픽스 프로그래밍(321190) 실습 #1


– 2D graphics & interaction


(321190)


강사: 박경신


20123279196159882.hwp


 


제출 방법: 2011410() 12시까지


(e-learning 강의실에 실행파일과 소스코드와 리포트를 전부 “CG12_학번이름_숙제1.zip”으로 묶어서 제출하도록 합니다. 또한, 소스코트 폴더에 .cpp만 담지 말고 비주얼 스튜디오에서 만든 프로젝트 폴더를 담기 바랍니다.)


 


참고자료: logo_starter.zip


 


0. Display window 크기는 600 x 600gluOrtho2D(-10, 10, -10, 10)를 사용한다.



http://blog.designdb.com/emjaydesign/bbs/dblogView.asp?catPKID=2&sGb=&sTxt=&oDm=1&bbsType=&page=98&bbsPKID=19356#heads


 


1. ‘움직이는 로고(Logo)’ 클래스를 작성한다. 자기 자신의 이름으로 로고 디자인을 만든다. (20)


자기 자신의 이름을 중심에 놓고 재미있는 로고를 만든다.


로고와 배경이미지는 반드시 움직이는 개체이어야 한다.


 


2. 다양한 기하 속성 (attributes, color, line width, etc)을 이용하여, 로고 주변에 여러 가지 재미있는 배경 이미지를 추가한다. (20)


수학적인 공식 또는 기본색이나 모양을 변형하여 적어도 3개 이상의 다른 배경 이미지 (Geometry)을 구성하여 만든다. (예를 들어, 날아다니는 잠자리, 나비, 풍선, 각종 캐릭터 등)



3. ‘움직이는 로고메인 프로그램을 작성한다. (20)


-mouse


왼쪽 마우스 버튼을 누르면, 화면에 배경화면 이미지 (, 2번에서 구성한


Geometry 중 랜덤하게 하나)가 나타나 움직인다.


-keyboard


-spacebar-key를 누르면, 움직이는 로고를 다시 처음부터 볼 수 있다.


-q-key 또는 ESC-key를 누르면, 프로그램을 종료한다.


 


4. 창의성, 소스코드 주석처리, 리포트 (40)

OpenGL/GLUT Interaction

OpenGL keyboard, mouse, menu interaction
http://dis.dankook.ac.kr/lectures/cg08/entry/OPENGL-interaction

OpenGL single/double buffering, reshape, displaylist, picking
http://dis.dankook.ac.kr/lectures/cg08/entry/OPENGL-display-list-picking

OpenGL Picking Tutorial using Name Stack & Color Coding
http://www.lighthouse3d.com/opengl/picking/

OpenGL Picking Tutorial using Name Stack
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=32

Teapot (using Display List)
http://www.songho.ca/opengl/gl_displaylist.html

Snowman (using Display List)
http://www.lighthouse3d.com/opengl/displaylists/

Box (using Display List)
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=12