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

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

PowerPoint 프레젠테이션

0503중간고사.dvi

Microsoft Word - cg07-midterm.doc

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut


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

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

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

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

Microsoft PowerPoint - chap04-연산자.pptx

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

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

벡터(0.6)-----.hwp

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

OCW_C언어 기초

7) 다음의 다음 9) 남학생과 9. zb 여학생 각각 명이 갖고 있는 여름 티 셔츠의 개수를 조사하여 꺾은선그래프로 나타낸 것 이다. 이 두 그래프의 설명으로 옳지 않은 것은? ㄱ. ㄴ. 회째의 수학 점수는 점이다. 수학 점수의 분산은 이다. ㄷ. 영어점수가 수학 점

Microsoft Word - cg12-midterm-answer


Microsoft PowerPoint - LA_ch6_1 [호환 모드]

회원번호 대표자 공동자 KR000****1 권 * 영 KR000****1 박 * 순 KR000****1 박 * 애 이 * 홍 KR000****2 김 * 근 하 * 희 KR000****2 박 * 순 KR000****3 최 * 정 KR000****4 박 * 희 조 * 제

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

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

슬라이드 1

<5BB0EDB3ADB5B55D B3E2B4EBBAF12DB0ED312D312DC1DFB0A32DC0B6C7D5B0FAC7D02D28312E BAF2B9F0B0FA20BFF8C0DAC0C720C7FCBCBA2D D3135B9AEC7D72E687770>

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

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

제1장 군 제1절 소개와 예 제2절 이항연산 2.1 보기. 다음은 정수방정식 a + x = b를 푸는 과정이다. (1) 준식에 a를 더하여 ( a) + (a + x) = ( a) + b. (2) 결합법칙을 사용하면 (( a) + a) + x = ( a) + b. (3)

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

Microsoft PowerPoint - chap05-제어문.pptx

<4D F736F F F696E74202D204347C3E2BCAEBCF6BEF D325FC4C4C7BBC5CDB1D7B7A1C7C8BDBA20B1E2BABBBFE4BCD22E >

Microsoft PowerPoint - lecture12-ch5.ppt

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

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

<4D F736F F D20BECBB1E220BDACBFEE20BAA4C5CD2C20C1C2C7A5B0E82C20C1C2C7A5BAAFC8AFC7E0B7C4>

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - ch02-1.ppt

Microsoft PowerPoint - lecture11-ch4

0503중간고사.dvi


01이국세_ok.hwp

2013unihangulchar {45380} 2unihangulchar {54617}unihangulchar {44592} unihangulchar {49328}unihangulchar {50629}unihangulchar {51312}unihangulchar {51


슬라이드 1

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

슬라이드 1

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

Microsoft PowerPoint - chap03-변수와데이터형.pptx

슬라이드 1

<30325FBCF6C7D05FB9AEC7D7C1F62E687770>

<BCF6B8AEBFB5BFAA28B0A1C7FC295FC2A6BCF62E687770>

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

105È£4fš

Microsoft PowerPoint - 05geometry.ppt

스키 점프의 생체역학적 연구

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


<C1DF29BCF6C7D020315FB1B3BBE7BFEB20C1F6B5B5BCAD2E706466>

와플-4년-2호-본문-15.ps

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft Word - FunctionCall

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Ä¡¿ì³»ÁöÃÖÁ¾

ch15


Open GL

금오공대 컴퓨터공학전공 강의자료


31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint 프레젠테이션

수리영역 5. 서로다른두개의주사위를동시에던져서나온두눈의수의곱 이짝수일때, 나온두눈의수의합이 또는 일확률은? 5) 의전개식에서상수항이존재하도록하는모든자 연수 의값의합은? 7) 다음순서도에서인쇄되는 의값은? 6) 8. 어떤특산

Windows 8에서 BioStar 1 설치하기

chap 5: Trees

Microsoft PowerPoint - Week04_Rendering Pipeline.pptx

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

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

Microsoft PowerPoint - chap01-C언어개요.pptx

<4D F736F F F696E74202D203428B8E9C0FB20B9D720C3BCC0FBC0FBBAD0292E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - lecture11-ch4.ppt

슬라이드 1

<BACFC7D1B3F3BEF7B5BFC7E22D3133B1C733C8A BFEB2E687770>


<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

02장.배열과 클래스

C++ Programming

Microsoft PowerPoint - chap11-포인터의활용.pptx

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

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

LIDAR와 영상 Data Fusion에 의한 건물 자동추출

Microsoft PowerPoint - lecture12-ch5

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap06-2pointer.ppt

= " (2014), `` ,'' .." " (2011), `` ,'' (.)"

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Kalman Filter 로 IMU 와 GPS 결합 지구자전효과와중력모델을고려하지않은 INS 설계 KITECH 양광웅작성 관성항법시스템 (INS, Inertial Navigation System) 은 vehicle의초기위치로부터자이로와가속도센서의각속도와가속도를적분하여현

Transcription:

(/7) [CSE47: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당 답안지 칸에 그 사실을 명기할 것.. 2차원 아핀변환인 이동변환 T (t, t ), 크기변환 S(s, s ), 그리고 회전변환 R(θ)에 대한 3행 3열 행렬들을 고려하자. (a) R(θ) S(, ) = S(, ) R(α) 식을 만족 시켜주는 α 값은 무엇인가? (b) T (t, t ) S(, ) = S(, ) T (β, γ) 식을 만족시켜주는 β와 γ 값은 무엇인가? (b) 위에서 구한 행렬 M 은 M = S(s, s ) T (t, t ) R(9)과 같이 세 개의 행렬의 곱 으로 표현할 수 있다. 이때 여기에 들어갈 t, t, s, 그리고 s 값을 3. 그림 2에서와 같이 왼쪽의 윈도우의 내용을 오 른쪽 윈도우 안으로 매핑을 해주는 2차원 아핀변 환에 대한 3행 3열 행렬 M 을 T (t, t ), S(s, s ), 그리고 R(θ) 등의 기본 아핀변환의 합성을 통하 여 구하라 (여기서 왼쪽의 윈도우는 각 변의 길 이가 2이고 중심이 원점이 사각형인데, (i) 합성 과정을 반드시 기술한 후, (ii) 최종 결과 행렬을 기술할 것). (c) R(θ) T (t, t ) = T (δ, ) R(θ) 식을 만족시 켜주는 δ와 값은 무엇인가? 2. (번 문제를 고려하면서) 다음 질문에 답하라. M 6 p 5 Figure 2: 2차원 윈도우 매핑 변환 p' L: = + 4. 그림 3은 주어진 법선 벡터 (normal vector) n = (n n nz )t 에 대하여 4행 4열 행렬 M 이 의미 하는 어떤 아핀변환을 가하는 과정을 보여주고 있다. Figure : 직선에 대한 반사 (a) 그림 에서와 같이 2차원 공간의 점 p = ( )t 를 직선 L : = + 에 대하여 반 사 시켜 p = ( )t 로 변환 해주는 3행 3 열 행렬 M 을 M = N T (, )과 같이 표 현한다고 할 때, 이때의 3행 3열 아핀변환 행렬 N 을 T (t, t ), S(s, s ), 그리고 R(θ) 등의 기본 아핀변환을 통하여 합성하라. Figure 3: 법선 벡터의 변환 (a) 이 아핀변환을 가하여 얻은 벡터 n = (n n nz )t 을 어떤 4행 4열 행렬 N 에 - 26년 4월 22일(금) 오전 : (K 2) c 26 임인성

대하여 n = N n과 같이 표현한다고 할 때, 이 행렬 N 을 M 행렬을 사용하여 표현 하라 (힌트: 다음의 글을 참조할 것). 그림 3에서와 같이 주어진 점 p = ( z )t 에서의 법선 벡터가 n이 라고 하자. 이때 점 p에서의 법 선 평면 상의 임의의 점 p = ( z )t 에 대하여 nt (p p) = 와 같은 관계가 성립한다. p, p, 그리고 n이 변환 행렬 M 에 의해 각각 p = ( z )t, p = ( z )t, n 으로 변환이 된다 고 하면, p = M p와 p = M p 로부터 p와 p 를 구해 위의 관계식 에 대입하여 다음과 같은 식을 얻 게 된다. (b) 위 문제의 아핀변환 M 이 강체변환 (rigidbod transformation)이라고 하자. 이때 M 을 다음과 같이 정의할 때, M = a a2 a3 v a2 a22 a23 v2, a3 a32 a33 v3 이 행렬의 왼쪽-위쪽의 3행 3열 부행렬 M3 3 의 세 개의 열벡터를 각각 a, a2, a3 라 할 때, 이 세 개의 벡터가 만족하는 수학적 인 성질을 벡터의 내적을 사용하여 정확히 (,, 2) (2/7) (,, ) (,, -2) w A (,, ) zw (,, -) B (,, ) w (,, ) (,, -) Figure 4: 두 프레임간의 변환 Mb 를 Mb = T2 R T 와 같이 두 개의 이동 변환 행렬 T, T2 와 한 개의 회전변환 행렬 R의 곱으로 표현하라 (반드시 이 세 개의 4 행 4열 행렬의 내용을 정확히 기술할 것). (c) 위 문제의 R 행렬은 임의의 점을 (, n, nz ) 벡터가 가리키는 직선 둘 레로 α도만큼 회전시켜주는 회전변환에 해당한다. 이때 n 와 nz, 그리고 α 값을 (참고: 그림 5에 주어진 회전변 환 행렬을 참조하고, 각도는 도와 8도 사이의 각으로 기술할 것) 6. 다음은 간단한 모델링 변환에 관한 문제이다. (c) 문제 (b)의 조건하에, 문제 (a)의 행렬 N 의 왼쪽-위쪽의 3행 3열 부행렬 N3 3 의 내용 을 정확히 5. 다음은 두 프레임간의 변환에 관한 문제이다. (a) 그림 4의 A 소는 점 (,, 2)를 원점으로 하는 자신의 프레임을 기준으로 세상 좌표 계에 존재하고 있는데, 이 프레임의 각 축 의 방향이 축 옆에 기술되어 있다. 이때 이 프레임을 (,, -) 방향과 (,, ) 방향 이 각각 세상 좌표계의 w 축과 w 방향과 일치하는 방식으로 세상 좌표계와 일치시 켜주려한다. 이때 필요한 4행 4열 행렬 Ma 의 내용을 (b) 한편 B 소는 점 (,, 2)를 중심으로 하는 프레임을 기준으로 세상 좌표계에 존재하 고 있는데, A 소의 각 꼭지점들을 B 소의 대응되는 점으로 매핑해주는 4행 4열 행렬 Figure 6: 간단한 모델링 변환 그림 6에는 세상 좌표계의 ( 2,, 4) 지점에서 ( 2,, 4) 지점까지의 직선 경로를 따라 균일한 속도로 이동 및 회전을 하는 소의 모습이 도시 되어 있다. 소 물체는 자신의 모델링 좌표계의 m 축 방향을 바라보고 있고, 등은 m 축 방향을 향하고 있는데, m 축 둘레로 총 8도 회전을 하면서 이동하고 있다. 또한 소의 모델링 좌표 - 26년 4월 22일(금) 오전 : (K 2) c 26 임인성

R(α, n, n, nz ) = n 2 ( c) + c n n ( c) n z s n z n ( c) + n s n n ( c) + n z s n 2 ( c) + c n n z ( c) n s n z n ( c) n s n n z ( c) + n s n 2z ( c) + c (3/7) Figure 5: 회전 변환 행렬 for (int i = ; i <= 8; i += 3) { float angle = (float)i; ModelViewMatri = glm::translate(viewmatri, glm::vec3(t, t, tz )); ModelViewMatri = glm::rotate(modelviewmatri, (α)*to RADIAN, glm::vec3(n, n, nz )); ModelViewProjectionMatri = ProjectionMatri * ModelViewMatri; gluniformmatri4fv(loc ModelViewProjectionMatri simple,, GL FALSE, &ModelViewProjectionMatri[][]); gllinewidth(2.f); draw aes(); gllinewidth(.f); draw cow(.3f,.3f,.3f); // cow color = (.3f,.3f,.3f) Figure 7: 간단한 모델링 변환 코드 계의 원점에 해당하는 점은 위의 두 점간의 직 선 상에서 이동을 하고 있다. 그림 7은 이렇게 움직이는 소를 그려주는 프로그램의 일부가 주 어져 있는데, 이 코드가 올바르게 작동하기 위 하여 t, t, tz, α, n, n, 그리고 nz 에 들어갈 값을 정확히 (참고: 변수 ViewMatri 와 ProjectionMatri에는 그 이름이 의미하는 행렬이 이미 계산되어 지정이 되어 있음) 7. 다음은 카메라의 설정에 관한 문제이다. 그림 8 에는 OpenGL Compatibilit Profile에서 제공하 는 glulookat(*) 함수의 호출에 대하여 뷰잉변 환 행렬을 계산하는 과정 (이하 이 그림 )이 주 Figure 8: glulookat(*) 함수를 통한 카메라의 설정 어져 있으며, 그림 9에는 glm::lookat() 함수에 대한 구현 코드 (이하 이 함수 )가 주어져 있는 문장의 smile(*,*) 함수는 두 개의 3차원 데, 이들을 참조하며 답하라. 벡터를 인자로 받아 어떠한 계산을 해줄까? (a) 이 그림에서 이 함수의 인자 중의 하나인 3 (d) 이 함수의 Line (d) 문장 수행 결과 4행 4 차원 벡터 ee에 해당하는 기호의 이름을 열 행렬 Result에는 어떤 값이 저장이 될 까? (b) 이 그림의 u, v, 그리고 n 벡터는 각각 카 메라를 기준으로 오른쪽, 위쪽, 그리고 바 라보는 반대 방향에 대한 단위 벡터 (unit vector)들이다. 이 함수의 Line (a) 문장 수 행 후 벡터 f에 저장되는 값을 위의 벡터들 을 사용하여 정확히 (c) 문맥 상 이 함수의 Line (b)와 Line (c) (e) 문맥 상 이 함수의 Line (e)와 Line (f)의 빈곳에 들어갈 내용을 이 프로그램의 문법 에 맞게 정확히 8. 다음은 원근투영 변환에 관한 문제이다. 그림 에서와 같이 COP(Center of Projecton) 가 (,, )이고 PP(Projection Plane)이 = 9-26년 4월 22일(금) 오전 : (K 2) c 26 임인성

(4/7) namespace glm { template <tpename T, precision P> GLM FUNC QUALIFIER tmat44<t, P> lookat(tvec3<t, P> const &ee, tvec3<t, P> const &center, tvec3<t, P> const &up) { tvec3<t, P> const f(normalize(center - ee)); // Line (a) tvec3<t, P> const s(normalize(smile(f, up))); // Line (b) tvec3<t, P> const u(smile(s, f)); // Line (c) tmat44<t, P> Result(); // Line (d) Result[][] = s.; Result[][] = s.; Result[2][] = s.z; Result[][] = u.; Result[][] = u.; Result[2][] = u.z; Result[][2] = -f.; Result[][2] = -f.; Result[2][2] = -f.z; Result[3][] = -dot(s, ee); Result[3][] = ; // Line (e) Result[3][2] = ; // Line (f) return Result; Figure 9: glm::lookat() 함수의 구현 w p COP: (,, ) p' 9 z WC 5 w 5 PP: = 9 ᄗ ᇷ ޗ #ᄬ Figure : 원근 투영 변환 zw 인 상황에서, 주어진 점 p = ( z )t 을 p = ( z )t 로 변환해주는 4행 4열의 원근투영 변환행렬 MP 를 Figure : 카메라의 위치와 방향 설정 9. 그림 에는 카메라의 위치와 방향을 설정해 주는 카메라 프레임이 도시되어 있다. 이 경우 OpenGL 시스템에서 사용하는 4행 4열 뷰잉변 환 행렬 MV 를 (,, ) (6, 6, ) () (3) (). 다음은 직교 투영 변환과 관련한 문제이다. 그 림 2에서와 같이 3차원 공간의 두 점 (,, ) 과 (6, 6, )에 의해 정의되는 직육면체의 내용 을 다른 두 점 (,, )과 (,, )에 의해 정 의되는 정육면체의 영역으로 매핑해주는 4행 4 열 아핀 변환 행렬 Mortho 를 (주의: 변 환 후 z축의 방향이 반대가 되도록 네 모서리를 마춰주어야 함) ᰚ #ᄬ ᬧ #ᄬ (3) (2) () (,, ) () (2) (-, -, -) Figure 2: 직교 투영 변환 - 26년 4월 22일(금) 오전 : (K 2) c 26 임인성

. 시험지 뒤에 첨부한 프로그램은 적절한 모델링 변환을 통하여 자동차를 세상 좌표계로 그려주 는 OpenGL 프로그램이다. 이 프로그램과 그 림 3을 보면서 답하라. (a) 이 프로그램은 그림 3에 주어진 자동차에 대한 트리 구조를 어떤한 방식으로 탐색을 하고 있는가? 자료 구조 시간에 배운 용어 를 사용할 것. (b) 프로그램 문맥상 3번 문장의 (A)에 들어갈 내용을 이 프로그램의 문법에 맞게 정확히 (c) 프로그램 문맥상 3번 문장의 (B), (C), (D), 그리고 (E)에 들어갈 내용을 이 프로그램의 문법에 맞게 정확히 (주의: glm 함수에서는 기본적으로 각도는 라디안을 사용하므로 이 프로그램에서 정의한 상수 TO RADIAN을 적절히 사용할 것) (d) 이 프로그램에서 43번 문장 수행 후 변수 ModelMatri CAR WHEEL에 저장되는 4행 4 열의 내용을 그림 3의 행렬 기호들을 사용 하여 표현하라. (e) draw wheel and nut() 함수가 4번 문장 에서 호출되어 수행이 되는 과정에서, 변 수 i가 4일 때 4 문장 수행 결과 변수 ModelMatri CAR NUT에 저장되는 행렬의 내용을 그림 3의 행렬 기호들을 사용하여 표현하라. (f) 이 프로그램의 35번 문장은 자동차의 운전 석에 배치한 카메라의 위치와 방향을 기술 해주는 프레임을 그려주는 역할을 한다 (,, 그리고 z축 각각이 u, v, 그리고 n축에 대 응함을 상기할 것). 해당 부분의 코드를 볼 때 이 자동차의 앞쪽 방향은 자신의 모델링 좌표계를 기준으로 어느 축 방향을 향하고 있을까? 양의 축 또는 음의 축 과 같 이 해당 축과 방향을 정확히 기술할 것. (g) 이 프로그램의 4번 문장과 46번 문장에 서 그려주는 번과 번 바퀴와는 달리 52 번 문장과 58번 문장에서 그려주는 2번과 3 번 바퀴에 대해서는 크기변환 (scale)이 수 행되는 이유는 무엇일까? 2. 다음 문제에 답하라. 필요할 경우 CC, EC, MC, NDC, WC, 그리고 WdC (Window Coordinate) 등의 OpenGL 좌표계 이름을 사용하라. (a) 2차원 공간에서 원점을 지나고 길이가 인 벡터 p 방향을 향하는 직선을 고려하자. 이 (5/7) 때 한 점 q가 주어졌을 때, 이 점과 이 직 선과의 최단 거리를 벡터의 내적 연산 및 벡터의 길이 연산자를 사용하여 표현하라. (참고: 내적 연산자 기호는, 그리고 벡터 의 길이 연산자는 사용할 것) (b) 3차원 공간에서 두 벡터 (, 2, 3)과 (4, 5, 6) 에 의해 정의되는 삼각형의 면적을 구하라. (c) 2차원 공간의 두 직선 3 + 2 + 5 = 과 6 + 4 + 5 = 의 교점에 대한 투영 공간 에서의 동차 좌표를 상수만 사용하여 기술 하라. (d) 투영 참조점이 무한대점 (point at infinit) 에 위치한 투영 변환의 이름은 무엇인가? (e) OpenGL의 뷰잉 파이프라인에서 항상 3차 원 공간의 [, ] [, ] [, ]의 영역만 고려하는 좌표계의 이름은 무엇인가? (f) OpenGL의 뷰잉 파이프라인에서 촬영한 필 름을 현상한 후 인화지에 확대/인화하는 과 정은 정확히 어느 좌표계에서 어느 좌표계 로 보내주는 과정에 해당하는가? (g) OpenGL의 뷰잉 파이프라인에서 카메라 의 위치와 방향을 설정 해주는 변환은 정 확히 어느 좌표계에서 어느 좌표계로 보내 주는 변환인가? (h) 다음은 OpenGL Core Profile의 간단한 verte shader의 예를 보여주고 있다. #version 33 uniform mat4 u Matri; uniform vec3 u color; laout (location = ) in vec4 a pos; out vec4 v color; void main(void) { v color = vec4(u color,.f); gl Position = u Matri * a pos; 정상적인 렌더링이 수행될 경우 MC와 가 장 관련이 높은 변수의 이름을 (i) (위 문제에 이어) 원근 나눗셈 (perspective division)과 가장 관련이 있는 변수의 이름 을 (j) (위 문제에 이어) u Matri는 어떤 좌표계 에서 어떤 좌표계까지의 기하변환 행렬을 저장하고 있을까? (k) 3차원 공간에서 원점을 지나고 벡터 ( )t 이 가리키는 방향에 의해 정의되는 - 26년 4월 22일(금) 오전 : (K 2) c 26 임인성

(6/7) Figure 3: 자동차의 계층적 표현 직선 둘레로 반시계 방향으로 θ 각도만큼 회전시켜주는 4행 4열 아핀 변환 행렬 R을 (l) 다음 행렬 MV 가 OpenGL 렌더링 시스템의 카메라의 위치와 방향 을 설정해주는 뷰잉 변환 행렬이라 하면, 이때 카메라는 정확히 어느 지점 에서 어느 방향 을 바라보고 있 는 상태를 의미할까? 2 2 MV = 2 2 (m) 3차원 공간에서의 이동 변환, 크기 변 환, 그리고 회전 변환에 대한 4행 4열 행렬 T (t, t, tz ), S(s, s, sz ), 그리고 R(θ, n, n, nz )를 고려하자. 위 행렬 MV 를 위의 기본 변환 행렬의 곱으로 표현하라. - 26년 4월 22일(금) 오전 : (K 2) c 26 임인성