단국대학교멀티미디어공학그래픽스프로그래밍기말고사 (2012 년봄학기 ) 2012 년 6 월 12 일학과학번이름 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 l 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤

Similar documents
Microsoft Word - cg09-final-answer.doc

Microsoft PowerPoint - lecture17-ch8.ppt

Microsoft PowerPoint - lecture18-ch8

Microsoft Word - cg07-final.doc

Microsoft Word - cg07-midterm.doc

단국대학교멀티미디어공학그래픽스프로그래밍중간고사 (2011 년봄학기 ) 2011 년 4 월 26 일학과학번이름 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 l 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤

Microsoft Word - cg08-final-answer.doc

歯Lecture2.PDF

Microsoft Word - cg12-midterm-answer

Microsoft PowerPoint - lecture16-ch6

Microsoft PowerPoint - lecture16-ch8 [호환 모드]

Microsoft PowerPoint - lecture16-ch8.ppt [호환 모드]

Łø·ŸÕ=¤ ¬ ÇX±xÒ¸ 06 - Èpº– 1

Microsoft PowerPoint - lecture16-ch8.ppt [호환 모드]

Microsoft PowerPoint - lecture15-ch6.ppt

Microsoft PowerPoint - lecture17-ch8

(Microsoft PowerPoint - lecture16-ch8.ppt [\310\243\310\257 \270\360\265\345])

Microsoft Word - cg09-midterm.doc

Microsoft PowerPoint - lecture15-ch8.ppt [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - lecture15-ch8.ppt [호환 모드]

PowerPoint 프레젠테이션

(Microsoft PowerPoint - JXEUOAACMYBW.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - lecture19-ch8.ppt

Microsoft Word - java19-1-midterm-answer.doc

(Microsoft PowerPoint - lecture15-ch8.ppt [\310\243\310\257 \270\360\265\345])

Open GL

Microsoft PowerPoint - 13prac.pptx

Microsoft PowerPoint - lecture11-ch4

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372)

Microsoft PowerPoint - lecture11-ch5.ppt [호환 모드]

Microsoft PowerPoint - lecture11-ch4.ppt

슬라이드 1

Microsoft PowerPoint - lecture17-ch8.ppt [호환 모드]

Microsoft Word - cg11-midterm-answer.doc

(Microsoft PowerPoint - CNVZNGWAIYSE.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - lecture11-ch5.ppt [호환 모드]

Microsoft PowerPoint - lecture12-ch5.ppt

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/8) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 있는 변환 행렬은 일반적으로 어떤 좌표계 에서 어떤 좌표계로의

중간고사

WebGL 레슨 5 - 텍스쳐에 대하여

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

Microsoft PowerPoint D View Class.pptx

STATICS Page: 7-1 Tel: (02) Fax: (02) Instructor: Nam-Hoi, Park Date: / / Ch.7 트러스 (Truss) * 트러스의분류 트러스 ( 차원 ): 1. 평면트러스 (planar tru

Microsoft PowerPoint - lecture12-ch5

Microsoft PowerPoint - lecture4-ch2.ppt

0503중간고사.dvi

Architectural Drawings 건축드로잉 : 이론과실제

(Microsoft PowerPoint - ADEFNJKEPXSQ.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - chap02.ppt

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/7) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

Microsoft PowerPoint - lecture13-ch6.ppt [호환 모드]

슬라이드 제목 없음

0503중간고사.dvi

슬라이드 1

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

슬라이드 1

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (2/8) 다음과같이설정되어있는데, cam.pos[0] = 0.0, cam.pos[1] = 0.0, cam.pos[2] = 500.0; 이때의 cam.naxis[] 벡터의세원소값을기술하라. Figure

<4D F736F F F696E74202D B30395FBAEDB7BBB5F95FBDBAC5D9BDC7B9F6C6DB5FB1D7B8B2C0DA2E >

Microsoft PowerPoint - lecture3-ch2.ppt [호환 모드]

(Microsoft PowerPoint - lecture13-ch6.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - GameDesign6-Graphics.ppt [호환 모드]

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

Microsoft PowerPoint - ch02-1.ppt

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (1/9) [CSE4170: 기초컴퓨터그래픽스 ] 기말고사 담당교수 : 임인성 답은연습지가아니라답안지에기술할것. 답안지공간이부족할경우, 답안지뒷면에기술하고, 해당답안지칸에그사실을명기할것. 연습지는수거하

Microsoft Word - cg09-midterm-answer.doc

Microsoft Word - java18-1-final-answer.doc

소성해석

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

미분기하학 II-16 복소평면의선형분수변환과쌍곡평면의등장사상 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 Ø 'x! xxñ 2007 년 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 (Ø 'x!) 미분기하 II 2007 년 1 / 26

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft Word - java19-1-final-answer.doc

기본도형과작도 1 강 - 연습문제 1. 오른쪽그림과같이직선l 위에점,, 가있을때, 옳지않은것은? 1 = 2 = 3 = 직선l 4 = 5 = l 2. 오른쪽그림에서 = = 이다. 다음( ) 안에알맞은수를쓰시오. 1 =( 2 =( 3 =( 4 =( ) ) ) ) 3. 한평

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

(Microsoft PowerPoint - FZBDPQDCSHAN.ppt [\310\243\310\257 \270\360\265\345])

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

쉽게 풀어쓴 C 프로그래밍


Microsoft PowerPoint - GameProgramming23-PixelShader.ppt

<4D F736F F F696E74202D204347C3E2BCAEBCF6BEF D325FC4C4C7BBC5CDB1D7B7A1C7C8BDBA20B1E2BABBBFE4BCD22E >

4.1 힘의모멘트 스칼라공식 4.1 힘의모멘트 스칼라공식 모멘트크기 (resultant moment) 2

이스키를눌러서비교해보면, 단지색깔이있는원으로보이게된다. 즉, 입체감이없는형상이다. 그렇다면입체감은어떻게표현해야하는것일까? 입체감명암중학교미술시간에소묘를처음배울때구를그리며명암넣는방법을배웠을것이다. 대략 5단계정도로나눠지고하이라이트나반사광등에대해서도배웠을것이다. 하이라이트

(Microsoft PowerPoint - JXQEUPXIEBNZ.ppt [\310\243\310\257 \270\360\265\345])

문제지 제시문 2 보이지 않는 영역에 대한 정보를 얻기 위하여 관측된 다른 정보를 분석하여 역으로 미 관측 영역 에 대한 정보를 얻을 수 있다. 가령 주어진 영역에 장애물이 있는 경우 한 끝 점에서 출발하여 다른 끝 점에 도달하는 최단 경로의 개수를 분석하여 장애물의

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Overview OSG Building a Scene Graph 2008 년여름 박경신 Rendering States StateSet Attribute & Modes Texture Mapping Light Materials File I/O NodeKits Text 2

Microsoft PowerPoint - GameProgramming16-Camera.ppt

C++ Programming

PowerPoint 프레젠테이션

고 학년도 9월고수학 1 전국연합학력평가영역문제지 1 1 제 2 교시 수학영역 5 지선다형 3. 두다항식, 에대하여 는? [ 점 ] 1. 의값은? ( 단, ) [ 점 ] 다항식 이 로인수분해될때, 의값은? ( 단,,

ps

ps

Transcription:

기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 l 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. l 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음은 oglclass 에서제공하는 matrix4x4 클래스를이용하여변환을수행한예를보여주고있다. 이코드에서밑줄친 glmultmatrixf() 부분을 gltranslatef(), glrotatef(), glscalef() 함수로대치하여작성하라 (1 점 ). glclear(gl_color_buffer_bit); glmatrixmode(gl MODELVIEW); drawobject(); // 아래왼쪽기본도형 matrix4x4 M, T, R, S; T.translate(vector3(1,, )); R.rotate(9, z ); S.scale(vector3(2, 2, 1)); M = T * R * S; glmultmatrixf(m); drawobject(); glmultmatrixf(m); glmultmatrixf(t); drawobject(); gltranslatef(1,, ); glrotatef(9,,, 1); glscalef(2, 2, 1); gltranslatef(1,, ); glrotatef(45,,, 1); glscalef(2, 2, 1); gltranslatef(1,, ); 그리고다음왼쪽기본도형에, 위의최종실행결과를아래네모칸안에정확한척도를그려서나타내라 (1 점 ). Y 5 1 4 X 1/7

2. 다음은관측 (Viewing) 변환과투영 (Projection) 변환에관한질문이다 (2 점 ). glclear(gl_color_buffer_bit); glmatrixmode(gl_projection); glloadidentity(); gluperspective(9, 1, 1, 1); glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(,, -1); glrotatef(-9,, 1, ); gltranslatef(,, 5); glcolor3f(1,, ); // 빨간공 glutwiresphere(1, 16, 16); gltranslatef(-5,, -5); glcolor3f(,, 1); // 파란공 glutwiresphere(1, 16, 16); 1) 위코드에서밑줄친이동변환과회전변환함수를 glulookat() 함수로대치하려는데, 같은그림이나타나도록하기위해서이함수의 9 개인자를정확히기술하라. 어떤방식으로문제를풀었는지상세히기술할것 (1 점 ). 물체전체를 y 축으로 -9 도회전하여 z 축으로 -1 이동한결과는, glulookat 를사용하여카메라위치 (1,, ) 에서 x 축방면으로원점 (,, ) 을바라보는관측과같다. glulookat(1,,,,,,, 1, ); eye position (1,, ) at position (,, ) up (, 1, ) 2) 위코드에서이탤릭체 gluperspective() 를 glortho(-2, 2, -2, 2, -2, 2) 함수로대치하면, 최종실행결과화면이어떻게바뀌는지그림으로 ( 빨간공과파란공의위치와크기 ) 자세히설명하라 (5 점 ). //gluperspective(9, 1, 1, 1) 경우 //glortho(-2, 2, -2, 2, -2, 2) 경우 2/7

3) 그리고직교투영 (Orthographic Projection), 축측투영 (Axonometric Projection), 등축투영 (Isometric Projection), 경사투영 (Oblique Projection), 원근투영 (Perspective Projection) 의특징을자세히서술하라 (5 점 ). 직교투영은투영선 (projector) 이투영면 (projection plane) 에수직이다. 축측투영은투영선 (projector) 은투영면 (projection plane) 에수직이지만, 투영면은객체에대해어떠한방향에서도존재할수있다. 등축투영은축측투영의하나인데그중에서투영면이사각형객체의모서리에서만나는세개의주면에대해서대칭으로놓여지는것이다. 경사투영은투영선 (projector) 은투영면 (projection plane) 과임의의각을가질수있으나투영면에평행한면내의각은보존된다. 원근 ( 투시 ) 투영은객체가관측자로부터멀리떨어질수록크기가축소된다. 이러한크기변화는자연스러운모습의관측을제공한다. 3. 다음은조명 (lighting) 에관한문제이다. 아래의질문에답하시오. (2 점 ) 1) OpenGL 에서기본으로사용하는블린조명모델 (Blinn Illumination Model) 공식을보여주고있다. 이공식에서각부분이무엇을의미하는지자세히설명하라 (5 점 ). I n' K I ( N L) + K I ( N H ) E m = Ka Ia + å - 1 fatt ( d) d d s s + i= K a I a : 환경반사 (ambient reflection) 부분 Σ : 여러개의광원이있는경우 ( 최대 8 개까지 ) f att (d) : 빛의감쇄공식 K d I d (N L): 확산반사 (diffuse reflection) 부분으로, 면의밝기가입사각 ( 광원벡터와법선벡터의사이각 ) 의코사인에정비례한다는램버트코사인법칙에따르는빛이다. K s I s (N H) n : 블린모델은중간각 H 을사용하여정반사 (specular reflection) 경면광을나타내준다. E : 자체발광방출조명부분 2) 블린모델에서사용하는 H 란무엇인지아래그림에표시하고자세히설명하라 (5 점 ). 정반사 (specular reflection) 에서퐁모델의경우 Ks Is (R V) n 을사용하는데반사벡터 R 을모든정점에대해계산해야한다. 반면, 블린모델의경우정점에서광원으로향하는광원벡터 L 과시점벡터 V 의사이인중간각 H = L + V / L +V 를사용한다. H 3/7

3) OpenGL 에서기본으로사용하는구로우세이딩 (Gouraud Shading) 을자세히설명하라. (5 점 ) 구로우세이딩 (Gouraud shading) 은정점의색으로부터내부면의색을선형보간함. 정점의법선벡터를요함. OpenGL에서는 smooth shading이라고함. 면에전체적으로부드러운음영을제공함. 그러나경면광을감안하지않음 ( 실제적인정점의법선벡터와근사적으로계산된법선벡터가완전히일치하지않기때문 ). 4) 만약 OpenGL 프로그램에서조명 (lighting) 을활성화하고, 광원 (light source) 와물체의재질 (material) 을지정했는데물체에음영이제대로동작하지않는다면무엇이문제인가? 조명에반드시필요한 3 번째요소가무엇인지자세히설명하라 (5 점 ). OpenGL 에서 lighting 은빛이표면에서얼마나반사되는지계산하기위해서해당정점에서표면이어느방향으로향하고있는지알아야한다. 따라서면 / 정점의법선벡터 (normal vector) 가필요하다. OpenGL 에서는 glnormal3f( ) 함수로지정한다. 4. 다음은 OpenGL 텍스쳐매핑 (texture mapping) 과블렌딩 (blending) 프로그램의일부이다. 아래의질문에답하시오. (4 점 ) void inittexture(char * flename, GLuint& textureid, GLuint param) unsigned char *imagebuffer; int imagewidth =. imageheight =, numcomponents = ; imagebuffer = simage_read_image(filename, &imagewidth, &imageheight, &numcomponents); if (imagebuffer!= NULL) glgentextures(1, &textureid); glbindtexture(gl_texture_2d, textureid); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, param); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, param); gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_NEAREST); gltexparameteri(gl_texture_2d,gl_texture_min_filter, GL_NEAREST); glteximage2d(gl_texture_2d,, numcomponents == 3? GL_RGB : GL_RGBA, imagewidth, imageheight,, numcomponents == 3? GL_RGB : GL_RGBA, GL_UNSIGNED_BYTE, imagebuffer); glbindtexture(gl_texture_2d, ); void drawtexturequad(int textureid) gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_MODULATE); glenable(gl_texture_2d); glbindtexture(gl_texture_2d, textureid); glbegin(gl_quads); glnormal3f(,, 1); gltexcoord2f(-1, -1); glvertex3f(-1, -1, ); gltexcoord2f(1, -1); glvertex3f( 1, -1, ); gltexcoord2f(1, 1); glvertex3f( 1, 1, ); gltexcoord2f(-1, 1); glvertex3f(-1, 1, ); 4/7

glend(); gldisable(gl_texture_2d); // 중간생략 drawtexturequad(texid); int main(int argc, char *argv[]) // 중간생략 inittexture( tree2s.png, texid, GL_CLAMP); // 주변이투명한나무그림 1) 위코드의실행결과를그림으로나타내라 (1점). 2) 만약 flipbook animation 효과를제공하고싶다면, 위코드중에서어느부분값이바뀌어야 하는지설명하라 (5 점 ). 여러개의텍스쳐에대해서 inittexture 를여러번호출하여각각다른 textureid 로바인딩하고, 시간 에따라서 textureid 를바꿔주면플립북애니메이션이동작된다. 3) 만약텍스쳐매핑이거칠게나타나서좀더부드럽게나타나게하고싶다면, 위코드중에서 gltexparameteri() 변수를어떻게설정해야할지자세히설명하라 (5 점 ). 확대필터 (MAG_FILTER) 와축소필터 (MIN_FILTER) 에최근점필터링 (GL_NEAREST) 대신포인트샘플링 에의해결정된텍셀의이웃을포함한텍셀그룹의가중평균을사용한선형필터링 (GL_LINEAR) 를 사용해준다. gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 5/7

4) 만약밉맵 (Mipmap) 을활성화하고싶다면, 위코드중에서어느부분이어떻게바뀌어야하 는지자세히설명하라 (5 점 ). 일련의축소된크기의밉맵택스쳐를생성하여, 작은객체에텍스쳐맵핑을할시보간문제를줄 여주는필터로, gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glteximage2d(gl_texture_2d,, numcomponents == 3? GL_RGB : GL_RGBA, 아래와같이바꿔서사용하면된다. imagewidth, imageheight,, numcomponents == 3? GL_RGB : GL_RGBA, GL_UNSIGNED_BYTE, imagebuffer); gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glubuild2dmipmaps(gl_texture_2d, numcomponents == 3? GL_RGB : GL_RGBA, imagewidth, imageheight, numcomponents == 3? GL_RGB : GL_RGBA, GL_UNSIGNED_BYTE, imageptr); 5) 만약텍스쳐매핑에조명 (Lighting) 효과를제공하고싶지않다면, 위코드중에서 gltexenvf() 환경변수를어떻게설정해야할지자세히설명하라 (5 점 ). OpenGL에서 default texture environment는 GL_MODULATE, 즉조명 (lighting) 과텍스쳐매핑 (texture mapping) 색이혼합이되는것이기본값이다. 그런데, 만약코드에서 gltexenv (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); /* or GL_REPLACE */ 로되어있다면텍스쳐매핑의색만을이용하게되므로조명 (Lighting) 이적용되지않는다. 6) 위코드는투명한나무그림으로나타나지않는다. 문제가무엇인지지적하고 display() 함수의 내부코드를수정하라 (1 점 ). OpenGL은기본적으로블렌딩이활성화되어있지않으므로텍스쳐는알파블렌딩이나타나지않는다. 투명한나무그림을보여주려면블렌딩활성화와알파블렌딩함수를설정해야한다. // 중간생략 glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); drawtexturequad(texid); gldisable(gl_blend); 6/7

5. 다음문제에답하시오. (extra 15 점 ) 평면 (ax + by + cz + d = ) 의법선벡터 n(a, b, c) 가단위벡터일때, 평면밖의한점 Q(x, y, z ) 에서평면에가장가까운거리 k 를구하라. k = n ㆍ Q + d = ax + by + cz + d 그리고점 Q(x, y, z ) 가평면에반사되는점 Q (x, y, z ) 공식을구하라. ( 힌트 q =q - 2kn) x ' = x - 2( ax + by 2 = (1-2a ) x + cz - 2aby + d) a - 2acz - 2ad y ' = y = 2abx - 2( ax + by + cz 2 + (1-2b ) y + d) b - 2bcz - 2bd z ' = z = -2acx - 2( ax + by - 2bcy + cz + d) c 2 + (1-2c ) z - 2cd 점 Q(x, y, z ) 가 xz 평면에반사되는점 Q (x, y, z ) 값을계산하라. x = x y = - y z = z 7/7