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

Size: px
Start display at page:

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

Transcription

1 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (1/10) [CSE4170: 기초컴퓨터그래픽스 ] 기말고사 담당교수 : 임인성 답은연습지가아니라답안지에기술할것. 답안지공간이부족할경우, 답안지뒷면에기술하고, 해당답안지칸에그사실을명기할것. 연습지는수거하지않음. b 1 a c texel 4 e 3 2 d pixel preimage (a) 텍셀색깔의계산 (b) 밉맵레벨의결정 Figure 2: 스크린효과생성 (c) 텍스춰필터의적용결과 1 (a) 색깔혼합예 1 (d) 텍스춰필터의적용결과 2 Figure 1: 텍스춰필터링 1. 다음은텍스춰필터링에관한문제이다. 그림 1 을보면서답하라. (b) 색깔혼합예 2 Figure 3: OpenGL 을사용한색깔혼합

2 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (2/10) (a) 레벨 0 의밉맵텍스춰의한텍셀이나타내는영역의면적은레벨 3 의밉맵텍스춰의한텍셀이나타내는영역의면적의몇배일까? (b) 텍셀당두바이트를사용하는해상도가 인레벨 0 의텍스처에대해가능한모든레벨까지밉맵을구성할경우몇바이트의메모리공간이필요할까? (c) 그림 1(a) 에서 a 는픽셀에대한원상 (preimage) 의중점을가리키고, b 부터 e 까지는 a 를포함하는주변텍셀의중심점을나타낸다. GL LINEAR 가의미하는텍스춰필터링을적용할때결과로구해지는색깔에서 d 텍셀의색깔이차지하는비율을기술하라. (d) 위문제에서 GL NEAREST 가의미하는텍스춰필터링을적용할때의비율을기술하라. (e) 그림 1(b) 에는바닥에대한사각형 ( 삼각형두개로구성 ) 에한개의텍스춰를매핑한후밉매핑기능을사용할때적용되는레벨값으로구역을나눈상태를도시하고있다. 현재세영역으로구성이되어있는데, 어떤순서대로레벨값이높을지, 그리고그이유가무엇인지정확히기술하라. (f) 그림 1(c) 와 (d) 는축소상황에서각각서로다른 ( 반대가되는 ) 텍스춰필터링방법을적용한렌더링결과이다. 과연두텍스춰필터링방법에어떤차이가있는지각방법을두가지방향에서정확히기술하라. 2. 다음은스크린효과생성을위한 OpenGL 프래그먼트쉐이더코드의일부이다. ========================================. in vec2 v pos sc;. void main(void) { if (screen effect) { float x mod, y mod; x mod = mod( (A), 1.0f); y mod = mod( (B), 1.0f); if ( (x mod > 0.1f) && (x mod < 0.9f) && (y mod > 0.1f) && (y mod < 0.9f) ) discard; final color = l e(v pos EC, normalize(v norm EC)); ======================================== (a) 그림 2 의스크린사각형의각꼭지점에는 v pos sc = (v pos sc.x, v pos sc.y) 속성으로설정한값이주어져있다. 이프로그램이올바르게작동하기위하여 (A) 와 (B) 에들어갈내용을 OpenGL Shading Language 문법에맞게정확히기술하라. ( 참고 : mod(x, y) returns x y floor( x y ).) (b) ( 위문제를정확히해결하였다는가정하에 ) 만약두번째 if 문장을다음과같이바꿀경우, if ( (x mod < 0.1f) (x mod > 0.9f) (y mod < 0.1f) (y mod > 0.9f) ) 그림 2 의스크린효과가어떻게바뀔지기술하거나그림으로설명하라. 3. 다음은색깔혼합 (Color Blending) 에관한문제이다. (c S α S ) 와 (c D α D ) 를두이미지 S 와 D 의대응되는화소의미리곱한색깔 (pre-multiplied color) 이라할때, 두색깔의합성을통하여생성한결과색깔 (c O α O ) 는다음과같이표현할수 있다. ( co α O ) = F S ( cs α S ) + F D ( cd α D (a) 어떤미리곱한색깔이 (0.8, 0.8, 0.8, 0.8) 이라면, 이는그화소를어떻게칠해야한다는것인지정확히기술하라. (b) 그림 3(a) 가암시하는합성연산의경우해당하는 F S 와 F D 의값은각각얼마인가? (c) 만약 S over D 연산을적용한다면, 합성후 α O 는어떤값을가질지를 S 와 D 의관련값들을사용하여정확히기술하라. (d) 그림 3(b) 의상황을고려하자. 결과이미지의한화소에네개의물체 Y, R, G, 그리고 K 가순서대로투영되고있는데, 이물체들은각각순서대로 순수한 노란색, 빨간색, 초록색, 그리고검정색을띠고있으며, 각물체의불투명도 (opacity) 는각물체옆에기술되어있다. 지금이물체들의색깔을앞에서뒤로가면서 (front-to-back order) over 연산을사용하여합성한다고할때, Y 와 R 물체까지합성하였을때의불투명도값이무엇일지기술하라. (e) ( 바로위문제에이어서 ) 이물체들의색깔을뒤에서앞으로가면서 (back-to-front order) over 연산을사용하여합성한다고할때, K, G 그리고 R 물체까지합성하였을때의색깔이무엇인지미리곱한색깔형식으로기술하라. )

3 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (3/10) (f) 다음은투명한물체들을그려주는어떤프로그램의프래그먼트쉐이더코드이다. 여기서유니폼변수 u flag blending 이 0, 1, 또는 2 값을가질경우, 각각합성기능을사용하지않거나, 뒤에서앞으로가면서 over 연산을사용하여합성을하거나, 또는앞에서뒤로가면서 over 연산을사용하여합성을해주게된다. 또한, 함수 obj C(*,*) 는현재프래그먼트에칠할실제색깔 ( 미리곱한색깔이아닌 ) 을계산해주며, 불투명도값은프래그먼트속성변수 frag a 로들어온다. 만약 u flag blending 값을 1 로설정할경우, 올바른결과를얻기위하여 glblendfunc(*,*) 함수호출시사용할두인자를아래에서찾아순서대로기술하라. GL ZERO, GL ONE, GL SRC ALPHA, GL DST ALPHA, GL ONE MINUS SRC ALPHA, GL ONE MINUS DST ALPHA #version 420. uniform int u flag blending = 0; in vec3 v position EC; in vec3 v normal EC; in float frag a; layout (location = 0) out vec4 f c; vec3 obj C(in vec3 P EC, in vec3 N EC) { vec3 object color;. // Compute the fragment s RGB color. return object color; void main(void) { vec3 C = obj C(v position EC, normalize(v normal EC)); if (u flag blending == 0) f c = vec4(c, 1.0f); else if (u flag blending == 1) f c = vec4( ( 가 ), frag a); else if (u flag blending == 2) f c = vec4( ( 나 ), ( 다 ) ); (g) ( 바로위문제에이어서 ) 이경우위코드의 ( 가 ) 에들어갈내용을 OpenGL Shading Language 의문법에맞게정확히기술하라. (h) 만약 u flag blending 값을 2 로설정할경 우, 이프로그램이제대로작동하기위하여 glblendfunc(*,*) 함수호출에필요한두인자를순서대로기술하라. (i) ( 바로위문제에이어서 ) 이경우위코드의 ( 나 ) 와 ( 다 ) 에들어갈내용을 OpenGL Shading Language 의문법에맞게정확히기술하라. (j) 다음과같은단순한프래그먼트쉐이더를사용하는색깔합성프로그램을고려하자. #version 420 uniform vec4 u fragment color; layout (location = 0) out vec4 final color; void main(void) { final color = u fragment color; 아래의 OpenGL 코드에서는그림 4 에도시한바와같이서로다른영역을가지는세개의사각형을뒤에서앞으로오면서차례대로그려주고있다. 이프로그램수행후 A 화소지점에해당하는 color buffer 영역에저장되어있는 (R,G,B,A) 값을기술하라. 이때각색깔채널값은 0 과 1 사이의값으로정규화하여분수로답하라. ( 참고 : 각사각형을구성하는프래그먼트의색깔은대응하는 gluniform4f() 함수로설정한색깔로설정이됨 ) void display(void) { gldisable(gl DEPTH TEST); glclearcolor(0.0f, 0.0f, 0.0f, 0.0f); glclear(gl COLOR BUFFER BIT); glenable(gl BLEND); glblendfunc(gl SRC ALPHA, GL DST ALPHA); gluseprogram(h ShaderProgram PS); gluniform4f(loc u fragment color, draw Rectangle 2(); 1.0f, 0.0f, 0.0f, 0.5f); gluniform4f(loc u fragment color, draw Rectangle 1(); 1.0f, 0.0f, 0.0f, 0.5f); gluniform4f(loc u fragment color, draw Rectangle 0(); gluseprogram(0); gldisable(gl BLEND); glenable(gl DEPTH TEST); glutswapbuffers(); 0.0f, 0.0f, 1.0f, 1.0f);

4 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (4/10) Figure 5: 안개효과생성 Figure 4: 세개의사각형영역 (k) 위프로그램에서 blending factor 를설정하는부분을다음과같이변경할경우, glblendfunc(gl ONE MINUS SRC ALPHA, GL ONE); 이프로그램수행후 A 화소지점에해당하는 color buffer 영역에저장되어있는 (R,G,B,A) 값을기술하라. 이때각색깔채널값은 0 과 1 사이의값으로정규화하여분수로답하라. (l) ( 바로위문제에이어서 ) 이프로그램수행후 B 화소지점에해당하는 color buffer 영역에저장되어있는 (R,G,B,A) 값을기술하라. 이때각색깔채널값은 0 과 1 사이의값으로정규화하여분수로답하라. 4. 다음은안개효과생성을위한 OpenGL 프래그먼트쉐이더코드의일부이다. 아래의코드와그림 5 를보면서답하라. ======================================== fog factor = (far dist - length(pe.xyz)) /(far dist - near dist); fog factor = clamp(fog factor, 0.0f, 1.0f); final color = mix(fog color, shaded color, fog factor); ======================================== (a) 이코드는 OpenGL 의눈좌표계 (EC) 에서계산을하고있다. 문맥상그림 5 의한점 P e 지점에서의안개효과생성을위하여 d 0 와 d 1 중어떤거리척도를사용하고있는가? (b) d 0 와 d 1 중위코드에서사용하고있는것이아닌다른척도를사용하려면, 첫번째문장을어떻게수정을해야할지, OpenGL Figure 6: 실시간렌더링파이프라인 Shading Language 의문법에맞게기술하라. ( 참고 : 0 < near dist < far dist) (c) mix() 함수는선형보간에기반을두고있다. 다음과같은변수값에대해, fog color = (0.8, 0.8, 0.8, 1.0), shaded color = (0.4, 0.2, 0.8, 1.0), fog factor = 0.4, final color 의결과값을기술하라. 5. 다음은실시간렌더링파이프라인에관한문제이다. 그림 6 의렌더링파이프라인을보면서한학기동안수업에서배운 OpenGL 렌더링파이프라인을바탕으로답하라. 아래의문제에서별도로기술하지않으면 정상적인 OpenGL 렌더링 과정을가정한다. ( 필요할경우 NDC, CC, WdC, MC, EC, 그리고 WC 등의기호를사용하여답할것 ) (a) 정규화된 3 차원필름 을기준으로설정된좌표계가존재하는박스의기호를기술하라. (b) 투명한물체효과를생성하기위하여색깔을섞어주는계산을가장자연스럽게수행할수있는지점에대한박스의기호를기술하라. (c) GL LINEAR 라는 OpenGL 인자가직접적으로적용이되는박스의기호를기술하라.

5 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (5/10) (d) Gouraud 쉐이딩계산시자연스럽게 lighting equation 이적용이되는지점에대한박스의기호를기술하라. (e) 삼각형을구성하는꼭지점들의회전방향을통하여그삼각형의앞면이보이는지뒷면이보이는지를판별하는지점이존재하는박스의기호를기술하라. (f) 계층적모델링을위한기하변환이빈번하게일어나는박스의기호를기술하라. (g) (A) 박스는 OpenGL 의어느좌표계에서어느좌표계까지의기하계산을담당하는가? (h) 꼭지점속성값이프래그먼트로전달이되는지점에대한박스의기호를기술하라. (i) (C) 박스는 OpenGL 의어느좌표계에서어느좌표계까지의기하계산을담당하는가? (j) 구조적으로프레임버퍼를가장빈번하게접근해야하는박스의기호를기술하라. (k) 뷰폿변환이수행이되는지점이존재하는박스의기호를기술하라. (l) 뷰잉변환이수행이되는지점이존재하는박스의기호를기술하라. (m) 원근투영시원근감이생성이되는지점이존재하는박스의기호를기술하라. (n) 카메라를기준으로설정된좌표계가존재하는박스의기호를기술하라. (o) glm::perspective() 함수가설정한 3 차원영역을벗어난기하프리미티브들을제거하는계산이수행되는박스의기호를기술하라. (p) 픽셀단위의안개효과를가장자연스럽게생성할수있는지점에대한박스의기호를기술하라. 6. 다음은어떤버텍스쉐이더코드의일부인데, 여기서 Pos, pos, Norm, 그리고 norm 은모두 vec3 타입의변수들이다.. void main(void) { gl Position = M t*vec4(pos, 1.0f); Pos = vec3(m p*vec4(pos, 1.0f)); Norm = normalize(m n*norm); (a) 마지막두문장은좌표와법선벡터방향이각각 pos 와 norm 인점에대한아핀변환을수행하고있다. 보편적인렌더링상황에서 M p 행렬이다음과같을때, M n 은어떤행렬이어야하는지정확히기술하라. ( 주의 : 행과열의개수가정확해야함 ) M p = (b) norm 변수에는항상길이가 1 인법선벡터값이저장이되어있다고가정하자. 만약 M p 가위문제와같을때과연마지막문장에서의 normalize() 함수호출이필요한지아니면불필요한지를정확한수학적인개념을사용하여기술하라. (c) 만약 M p 행렬이다음과같을때, M n 은어떤행렬이어야하는지정확히기술하라. ( 주의 : 행과열의개수가정확해야함 ) M p = (d) 이코드에서래스터화과정중프래그먼트쉐이더로전달이되는정보를저장하고있는변수들을모두기술하라. (e) 이코드에서버텍스쉐이더를수행하기전에기하모델을구성하는매꼭지점마다설정해주어야하는정보를저장하고있는변수들을모두기술하라. (f) 이코드에서버텍스쉐이더를수행하기전에기하모델을구성하는매꼭지점마다설정할필요가없이필요할때만설정해주면되는정보를저장하고있는변수들을모두기술하라. (g) 만약첫문장바로직후에다음과같은문장을삽입하면, gl Position.y *= -1.0f; 렌러링결과가어떻게바뀔지기술하라. 7. 그림 7(a) 에는두가지형태의퐁의조명모델식이주어져있고, (b)-(d) 에는 OpenGL 시스템에서사용하는기본조명공식이기술되어있다. (a) (a) 의공식에서 Lambert 의코사인법칙을표현해주는부분만정확히기술하라. (b) (a) 의공식에서평행광원과평행투영을사용할경우, 물체의위치와방향이바뀌었을때영향을받는변수를모두나열하라 (d i 는제외 ). (c) (a) 의공식에서카메라에서바라보는방향에직접적으로영향을받는변수를모두나열하라.

6 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (6/10) m 1 I λ = I aλ k aλ + f att (d i ) I li λ {k dλ (N L i ) + k sλ (R i V ) n (1) I λ = I aλ k aλ + i=0 m 1 i=0 f att (d i ) I li λ {k dλ (N L i ) + k sλ (N H i ) n (2) (a) 퐁의조명모델식의두예 ( N = V = L i = R i = H i = 1) c = e cm + a cm a cs + n 1 (att i )(spot i )[a cm a cli + (n VP pli )d cm d cli + (f i )(n ĥi) srm s cm s cli ] i=0 (b) OpenGL 시스템의조명공식 att i = { 1 k 0i + k 1i VP pli + k 2i VP pli, 2 P pli s w 0, 1.0, otherwise (c) 빛의감쇠효과의계산 ( P pli V ŝ dli ) s rli, c rli and (A) (B), spot i = 0.0, c rli and (A) < (B), 1.0, c rli = (d) 스폿광원효과의계산 Figure 7: 조명모델공식예 (d) (a) 의공식에서현재퐁의조명모델식이적용되고있는물체표면지점의좌표를 P 라고하자. (b) 의공식에서이 P 에해당하는변수 ( 또는수식 ) 를기술하라. (e) (b) 의공식에서 (a) 의공식의 d i 에해당하는변수 ( 또는수식 ) 를기술하라. (f) (b) 의공식에서 은주어진두벡터 u 와 v 에대하여어떠한값을계산해주는연산자인지정확히기술하라. (g) (b) 의공식에서 0 벡터가아닌임의의벡터 v 에대해 ˆv 는무엇을의미하는가? (h) 정반사방향 (reflection direction), 즉정반사물질이입사광선을가장강하게반사시키는방향을 (b) 공식의변수들을사용하여표현하라. ( 참고 : n VP pli 은양수가가정함 ) (i) (b) 의공식에서아래그림이암시하는효과를조절할수있는변수를기술하라. (j) (b) 의공식에서간접조명 (indirect illumination) 효과를 ( 근사적이나마 ) 생성하는데필요한간접적으로들어오는빛, 즉간접적인입사광선과직접적인연관성이있는변수들을모두기술하라. (k) (d) 의공식에서문맥상 (A) 와 (B) 에공통으로들어갈수식을정확히기술하라 쪽에는 OpenGL Shading Language 를사용하여가급적그림 7(b) 의퐁의조명모델식에기반을두어퐁쉐이딩방법을구현한버텍스쉐이더와프래그먼트쉐이더프로그램이주어져있다. (a) 이두쉐이더코드에서 OpenGL 의절단좌표계 (Clip Coordinate) 공간에서의값을가지는변수들을모두기술하라. (b) 이프래그먼트쉐이더에서 i 번째광원 u light[i] 가평행광원 (parallel or direc-

7 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (7/10) tional light) 이라면, 문맥상이구조변수의어떤필드값이어떤값을가져야할까? (c) 73 번문장수행후 tmp vec4.y 에저장이되는값의정확한기하적인의미를기술하라. (d) 점광원을사용할경우그림 7(a) 의조명공식 (1) 에서의벡터 L i 값이계산이되는문장번호를기술하라. (e) 그림 7(c) 의 i 번째광원에해당하는 k 2i 값을저장하고있는변수 ( 또는식 ) 를이코드에서찾아 OpenGL Shading Language 문법에맞게정확히기술하라. (f) 104 번문장에서 -normalize(p EC) 는정확히어느지점에서어느지점을향한벡터인지기술하라. (g) 104 번문장에서계산해주는벡터 H EC 의이름을기술하라. (h) 104 번문장의 ( 가 ) 부분에들어갈수식을 OpenGL Shading Language 문법에맞게정확히기술하라. (i) 105 번문장의 ( 나 ) 와 ( 다 ) 에들어갈두벡터에해당하는기호각각을그림 7(a) 의조명공식 (2 ) 에서찾아기술하라. ( 참고 : 순서는상관없음 ) (j) 111 번문장의 ( 라 ) 에들어갈변수의값을그림 7(b) 의조명공식의기호들을사용하여기술하라. (k) 84 번문장의 ( 마 ) 부분에들어갈수식을 OpenGL Shading Language 문법에맞게정확히기술하라. (l) 그림 7(b) 의조명식의변수 f i 의사용목적이이쉐이더에서는어떻게달성이되는지관련문장번호를지칭하면서정확히설명하라 쪽의코드는계층적모델링변환을통하여자동차를세상좌표계로그려주는 OpenGL 프로그램이다. 이코드와그림 8 을보면서답하라. (a) 이프로그램은그림 8 에주어진자동차를구성하는트리구조를어떤한방식으로탐색하고있는지자료구조시간에배운컴퓨터공학용어를사용하여기술하라. (b) 프로그램문맥상 62 번문장의 (A) 에들어갈내용을이프로그램의문법에맞게정확히기술하라. (c) 프로그램문맥상 62 번문장의 (B), (C), 그리고 (D) 에들어갈내용을이프로그램의문법에맞게정확히기술하라. ( 힌트 : 그림 8 의내용을잘살펴볼것 ) (d) 이프로그램의 26 번문장은자동차가움직임에따라두앞바퀴가좌우로회전하는모습을생성해주는기하변환을계산하고있다 (draw car() 함수에서적용이됨 ). 문맥상 (E), (F), 그리고 (G) 에들어갈내용을이프로그램의문법에맞게정확히기술하라. (e) 이프로그램의 29 번문장은자동차가움직임에따라네바퀴가진행방향으로회전하는모습을생성해주는기하변환을계산하고있다 (draw car() 함수에서적용이됨 ). 문맥상 (H), (I), 그리고 (J) 에들어갈내용을이프로그램의문법에맞게정확히기술하라. (f) 이프로그램에서 94 번문장수행후변수 ModelMatrix CAR WHEEL 에저장되는 4 행 4 열의내용을그림 8 의행렬기호를사용하여표현하라. (g) 57 번문장의 draw wheel and nut() 함수가 92 번문장에서호출되어수행이되는과정에서, 변수 i 가 2 일때 63 번문장수행결과변수 ModelMatrix CAR NUT 에저장되는행렬의내용을그림 8 의행렬기호를사용하여표현하라. 이순간에행렬 car status.matrix CAR WHEEL ROTATE 의내용은 M R 이라고가정함. (h) 이프로그램의 85 번문장은자동차의운전석에배치한카메라의위치와방향을기술해주는프레임을그려주는역할을한다 (x, y, 그리고 z 축각각이 u, v, 그리고 n 축에대응함을상기할것 ). 이자동차의운전석에서세상을바라볼때오른쪽방향은자동차바디 (CAR BODY) 의모델링좌표계를기준으로어느축방향을향하고있을까? 양의 x 축 또는 음의 x 축 과같이해당축과방향을정확히기술할것. (i) 이프로그램의 92 번문장과 97 번문장이그려주는 0 번과 1 번바퀴와는달리 104 번문장과 110 번문장이그려주는 2 번과 3 번바퀴에대해서는크기변환 (scale) 이수행되는이유는무엇일까? (j) 이프로그램의 42 번문장은카메라를운전석에배치할때의뷰잉변환행렬을계산해주고있다. 이문장에서변수 ModelMatrix CAR BODY to DRIVER 는자동차바디의모델링좌표계의원점에정렬되어있는카메라프레임을이좌표계상에서운전석의위치로변환시켜주는강체변환을저장하고있다. 문맥상이프로그램이

8 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (8/10) Figure 8: 자동차의계층적표현 제대로작성하기위하여 (K) 에들어갈내용을이프로그램에서사용한변수를사용하여정확히기술하라. ( 힌트 : 뷰잉변환은세상좌표에존재하는카메라프레임을좌 표계원점을중심으로정렬시켜주는변환임을상기할것 )

9 1 /*************************** VERTEX SHADER *******************************/ 2 #version uniform mat4 u_modelviewprojectionmatrix; 5 uniform mat4 u_modelviewmatrix; 6 uniform mat3 u_modelviewmatrixinvtrans; 7 8 layout(location = 0) in vec3 a_position; 9 layout(location = 1) in vec3 a_normal; 10 out vec3 v_position_ec; 11 out vec3 v_normal_ec; void main(void) { 14 v_position_ec = vec3(u_modelviewmatrix*vec4(a_position, 1.0f)); 15 v_normal_ec = normalize(u_modelviewmatrixinvtrans*a_normal); gl_position = u_modelviewprojectionmatrix*vec4(a_position, 1.0f); /*************************** FRAGMENT SHADER *******************************/ 22 #version struct LIGHT { 25 vec4 position; 26 vec4 ambient_color, diffuse_color, specular_color; 27 vec4 light_attenuation_factors; // compute this effect only if.w!= 0.0f 28 vec3 spot_direction; 29 float spot_exponent; 30 float spot_cutoff_angle; 31 bool light_on; 32 ; struct MATERIAL { 35 vec4 ambient_color; 36 vec4 diffuse_color; 37 vec4 specular_color; 38 vec4 emissive_color; 39 float specular_exponent; 40 ; uniform vec4 u_global_ambient_color; 43 #define NUMBER_OF_LIGHTS_SUPPORTED 4 44 uniform LIGHT u_light[number_of_lights_supported]; 45 uniform MATERIAL u_material; const float zero_f = 0.0f; 48 const float one_f = 1.0f; in vec3 v_position_ec; 51 in vec3 v_normal_ec; 52 layout(location = 0) out vec4 final_color; vec4 lighting_equation(in vec3 P_EC, in vec3 N_EC) { 55 vec4 color_sum; 56 float local_scale_factor, tmp_float; 57 vec3 L_EC; color_sum = u_material.emissive_color + u_global_ambient_color * u_material.ambient_color; for (int i = 0; i < NUMBER_OF_LIGHTS_SUPPORTED; i++) { 62 if (!u_light[i].light_on) continue; local_scale_factor = one_f; 65 if (u_light[i].position.w!= zero_f) { 66 L_EC = u_light[i].position.xyz - P_EC.xyz; if (u_light[i].light_attenuation_factors.w!= zero_f) { 69 vec4 tmp_vec4; tmp_vec4.x = one_f; 72 tmp_vec4.z = dot(l_ec, L_EC); 73 tmp_vec4.y = sqrt(tmp_vec4.z); 74 tmp_vec4.w = zero_f; 75 local_scale_factor = one_f / dot(tmp_vec4, u_light[i].light_attenuation_factors); L_EC = normalize(l_ec); if (u_light[i].spot_cutoff_angle < 180.0f) { // [0.0f, 90.0f] or 180.0f 81 float spot_cutoff_angle = clamp(u_light[i].spot_cutoff_angle, zero_f, 90.0f); 82 vec3 spot_dir = normalize(u_light[i].spot_direction); tmp_float = dot( ( 마 ), spot_dir); 85 if (tmp_float >= cos(radians(spot_cutoff_angle))) { 86 tmp_float = pow(tmp_float, u_light[i].spot_exponent); else 89 tmp_float = zero_f; 90 local_scale_factor *= tmp_float; else { 94 L_EC = normalize(u_light[i].position.xyz); if (local_scale_factor > zero_f) { 98 vec4 local_color_sum = u_light[i].ambient_color * u_material.ambient_color; tmp_float = dot(n_ec, L_EC); 101 if (tmp_float > zero_f) { 102 local_color_sum += u_light[i].diffuse_color*u_material.diffuse_color*tmp_float; vec3 H_EC = normalize( ( 가 ) - normalize(p_ec)); 105 tmp_float = dot( ( 나 ), ( 다 ) ); 106 if (tmp_float > zero_f) { 107 local_color_sum += u_light[i].specular_color 108 *u_material.specular_color*pow(tmp_float, u_material.specular_exponent); color_sum += ( 라 ) *local_color_sum; return color_sum; void main(void) { 118 final_color = lighting_equation(v_position_ec, normalize(v_normal_ec));

10 1 #define WHEEL_NUT_RADIUS (1.7f - 0.5f) 2 #define WHEEL_NUT_Z_OFFSET 1.0f 3 4 #define FRONT_WHEEL_ROLL_ANGLE_DELTA 5.0f 5 #define FRONT_WHEEL_TURN_ANGLE_DELTA 2.5f 6 #define FRONT_WHEEL_TURN_ANGLE_MAX 45.0f 7 #define BODY_YAW_SENSITIVITY 0.1f 8 9 struct _CAR_STATUS { 10 float body_yaw_angle; 11 float front_wheel_roll_angle; 12 float front_wheel_turn_angle; 13 glm::mat4 Matrix_CAR_WHEEL_ROTATE; 14 int flag_body_yaw_mode; 15 car_status; void update_car_body_transformation(void) { 18 ModelMatrix_CAR_BODY = glm::rotate(glm::mat4(1.0f), 19 TO_RADIAN*car_status.body_yaw_angle, glm::vec3(0.0f, 1.0f, 0.0f)); ModelMatrix_CAR_BODY_INVERSE = glm::rotate(glm::mat4(1.0f), 22 -TO_RADIAN*car_status.body_yaw_angle, glm::vec3(0.0f, 1.0f, 0.0f)); void update_car_front_wheel_rotate_matrix(void) { 26 car_status.matrix_car_wheel_rotate = glm::rotate(glm::mat4(1.0f), 27 TO_RADIAN*car_status.front_wheel_turn_angle, glm::vec3( (E), (F), (G) )); car_status.matrix_car_wheel_rotate = glm::rotate(car_status.matrix_car_wheel_rotate, 30 TO_RADIAN*car_status.front_wheel_roll_angle, glm::vec3( (H), (I), (J) )); void set_viewmatrix_for_world_viewer(void) { 34 ViewMatrix = glm::mat4(camera_wv.uaxis.x, camera_wv.vaxis.x, camera_wv.naxis.x, 0.0f, 35 camera_wv.uaxis.y, camera_wv.vaxis.y, camera_wv.naxis.y, 0.0f, 36 camera_wv.uaxis.z, camera_wv.vaxis.z, camera_wv.naxis.z, 0.0f, f, 0.0f, 0.0f, 1.0f); 38 ViewMatrix = glm::translate(viewmatrix, -camera_wv.pos); void set_viewmatrix_for_driver(void) { 42 ViewMatrix = glm::affineinverse( (K) * ModelMatrix_CAR_BODY_to_DRIVER); void initialize_car(void) { 46 car_status.body_yaw_angle = 0.0f; 47 update_car_body_transformation(); 48 if (camera_type == CAMERA_DRIVER) { 49 set_viewmatrix_for_driver(); 50 ViewProjectionMatrix = ProjectionMatrix * ViewMatrix; car_status.front_wheel_roll_angle = 0.0f; 53 car_status.front_wheel_turn_angle = 0.0f; 54 update_car_front_wheel_rotate_matrix(); void draw_wheel_and_nut() { 58 gluniform3f(loc_primitive_color, 0.000f, 0.808f, 0.820f); // color name: DarkTurquoise 59 draw_geom_obj(geom_obj_id_car_wheel); // draw wheel for (int i = 0; i < 5; i++) { 62 ModelMatrix_CAR_NUT = glm::rotate( (A), TO_RADIAN*72.0f*i, glm::vec3( (B), (C), (D) )); 63 ModelMatrix_CAR_NUT = glm::translate(modelmatrix_car_nut, glm::vec3(wheel_nut_radius, 0. 0f, WHEEL_NUT_Z_OFFSET)); 64 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_NUT; 65 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix [0][0]); gluniform3f(loc_primitive_color, 0.690f, 0.769f, 0.871f); // color name: LightSteelBlue 68 draw_geom_obj(geom_obj_id_car_nut); // draw i-th nut void draw_car(void) { 73 gluniform3f(loc_primitive_color, 0.498f, 1.000f, 0.831f); // color name: Aquamarine 74 draw_geom_obj(geom_obj_id_car_body); // draw body gllinewidth(5.0f); 77 draw_axes(); // draw MC axes of body 78 gllinewidth(1.0f); ModelMatrix_CAR_DRIVER = glm::translate(modelmatrix_car_body, glm::vec3(-3.0f, 0.5f, 2.5f)); 81 ModelMatrix_CAR_DRIVER = glm::rotate(modelmatrix_car_driver, TO_RADIAN*90.0f, glm::vec3(0.0f, 1.0f, 0.0f)); 82 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_DRIVER; 83 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix[0] [0]); 84 gllinewidth(5.0f); 85 draw_axes(); // draw camera frame at driver seat 86 gllinewidth(1.0f); ModelMatrix_CAR_WHEEL = glm::translate(modelmatrix_car_body, glm::vec3(-3.9f, -3.5f, 4.5f)); 89 ModelMatrix_CAR_WHEEL *= car_status.matrix_car_wheel_rotate; 90 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_WHEEL; 91 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix[0] [0]); 92 draw_wheel_and_nut(); // draw wheel ModelMatrix_CAR_WHEEL = glm::translate(modelmatrix_car_body, glm::vec3(3.9f, -3.5f, 4.5f)); 95 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_WHEEL; 96 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix[0] [0]); 97 draw_wheel_and_nut(); // draw wheel ModelMatrix_CAR_WHEEL = glm::translate(modelmatrix_car_body, glm::vec3(-3.9f, -3.5f, -4.5f)); 100 ModelMatrix_CAR_WHEEL *= car_status.matrix_car_wheel_rotate; 101 ModelMatrix_CAR_WHEEL = glm::scale(modelmatrix_car_wheel, glm::vec3(1.0f, 1.0f, -1.0f)); 102 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_WHEEL; 103 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix[0] [0]); 104 draw_wheel_and_nut(); // draw wheel ModelMatrix_CAR_WHEEL = glm::translate(modelmatrix_car_body, glm::vec3(3.9f, -3.5f, -4.5f)); 107 ModelMatrix_CAR_WHEEL = glm::scale(modelmatrix_car_wheel, glm::vec3(1.0f, 1.0f, -1.0f)); 108 ModelViewProjectionMatrix = ViewProjectionMatrix * ModelMatrix_CAR_WHEEL; 109 gluniformmatrix4fv(loc_modelviewprojectionmatrix, 1, GL_FALSE, &ModelViewProjectionMatrix[0] [0]); 110 draw_wheel_and_nut(); // draw wheel 3 111

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

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

More information

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

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/7) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당 (/7) [CSE47: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답 안지 공간이 부족할 경우, 답안지 뒷면에 기술 하고, 해당 답안지 칸에 그 사실을 명기할 것.. 2차원 아핀변환인 이동변환 T (t, t ), 크기변환 S(s, s ), 그리고 회전변환 R(θ)에 대한 3행 3열 행렬들을 고려하자.

More information

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

서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (2/8) 다음과같이설정되어있는데, cam.pos[0] = 0.0, cam.pos[1] = 0.0, cam.pos[2] = 500.0; 이때의 cam.naxis[] 벡터의세원소값을기술하라. Figure 서강대학교공과대학컴퓨터공학과 CSE4170 기초컴퓨터그래픽스기말고사 (1/8) [CSE4170: 기초컴퓨터그래픽스 ] 기말고사 ( 담당교수 : 임인성 ) 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. OpenGL 시스템의각좌표계에대한약어는다음과같으며, 답을기술할때필요할경우적절히약어를사용하라.

More information

0503기말고사.dvi

0503기말고사.dvi 서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/6) [CSE4170: 기초 컴퓨터 그래픽스] 기말고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 답안지 공간이 부족할 경우, 답안지 뒷면에 기 술하고, 해당 답안지 칸에 그 사실을 명기할 것. 1. 다음은 OpenGL fixed-function 렌더링

More information

0503기말고사.dvi

0503기말고사.dvi 서강대학교공과대학컴퓨터공학과 [CSE4170] 기초컴퓨터그래픽스기말고사 (1/8) [CSE4170] 기초컴퓨터그래픽스 기말고사 담당교수 : 임인성 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. OpenGL 시스템의각좌표계에대한약어는다음과같으며, 답을기술할때필요할경우적절히약어를사용하라.

More information

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

Łø·ŸÕ=¤ ¬ ÇX±xÒ¸ 06 - Èpº– 1 그래픽스강의노트 06 - 조명 1 강영민 동명대학교 2015 년 2 학기 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 1 / 25 음영 계산의 필요성 음영(陰影) 계산, 혹은 셰이딩(shading)은 어떤 물체의 표면에서 어두운 부분과 밝은 부분을 서로 다른 밝기로 그려내는 것 모든 면을 동일한 색으로 그리면 입체감이 없다. 2 /

More information

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

서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 (1/8) [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것. 있는 변환 행렬은 일반적으로 어떤 좌표계 에서 어떤 좌표계로의 (/8) [CSE47: 기초 컴퓨터 그래픽스] 중간고사 (담당교수: 임 인 성) 답은 연습지가 아니라 답안지에 기술할 것 있는 변환 행렬은 일반적으로 어떤 좌표계 에서 어떤 좌표계로의 변환을 위하여 사용 하는가? 답안지 공간이 부족할 경우, 답안지 뒷면에 기 술하고, 해당 답안지 칸에 그 사실을 명기할 것 (i) 투영 참조점이 무한대점 (point at infinit)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환 기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2 기하변환 (Geometric Transformation)

More information

서피스셰이더프로그램 셰이더개발을쉽게! Thursday, April 12, 12

서피스셰이더프로그램 셰이더개발을쉽게! Thursday, April 12, 12 서피스셰이더프로그램 셰이더개발을쉽게! 유니티렌더링시스템소개 렌더링패스 셰이더랩 서피스셰이더 데모 2 유니티렌더링시스템 3 Deferred Lighting Rendering Path Dual Lightmapping Post Effect Processing Realtime Shadow LightProbe Directional Lightmapping HDR Gamma

More information

Microsoft Word - cg07-midterm.doc

Microsoft Word - cg07-midterm.doc 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 맞으면 true, 틀리면 false를적으시오.

More information

Microsoft PowerPoint - lecture15-ch6.ppt

Microsoft PowerPoint - lecture15-ch6.ppt Lighting OpenGL Lighting OpenGL의조명에는 3가지요소가필요 광원 (Lights) 재질 (Materials) 면의법선벡터 (Normals) 321190 2008년봄학기 5/26/2007 박경신 OpenGL Lighting OpenGL Lighting OpenGL에서제공하는조명모델 환경광 / 주변광 (ambient lights) 점광원 (point

More information

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

(Microsoft PowerPoint - \301\24608\260\255 - \261\244\277\370\260\372 \300\347\301\372) 게임엔진 제 8 강광원과재질 이대현교수 한국산업기술대학교게임공학과 학습목차 조명모델 광원의색상설정 재질 분산성분의이해 분산재질의구현 경반사성분의이해 경반사재질의구현 조명 (Illumination) 모델 조명모델 광원으로부터공간상의점들까지의조도를계산하는방법. 직접조명과전역조명 직접조명 (direct illumination) 모델 물체표면의점들이장면내의모든광원들로부터직접적으로받는빛만을고려.

More information

Microsoft PowerPoint - lecture16-ch6

Microsoft PowerPoint - lecture16-ch6 Lighting OpenGL Lighting OpenGL의조명에는 3가지요소가필요 광원 (Lights) 재질 (Materials) 면의법선벡터 (Normals) 321190 2007년봄학기 5/15/2007 박경신 OpenGL Lighting OpenGL Lighting OpenGL에서제공하는조명모델 환경광 / 주변광 (ambient lights) 점광원 (point

More information

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

단국대학교멀티미디어공학그래픽스프로그래밍중간고사 (2011 년봄학기 ) 2011 년 4 월 26 일학과학번이름 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 l 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 l 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. l 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 맞으면 true, 틀리면 false를적으시오.

More information

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

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 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2016년 12월15일 ( 목 ) 오전 9시40분 ~) 담당교수 : 서강대학교컴퓨터공학과임인성 < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고, 반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. function MakeSet(x) { x.parent

More information

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

Microsoft PowerPoint - lecture3-ch2.ppt [호환 모드] Coordinate Systems Graphics Programming 321190 2014 년봄학기 3/14/2014 박경신 2D Cartesian Coordinate Systems 3D Cartesian Coordinate Systems Cartesian Coordination Systems -x +y y-axis x-axis +x Two axes: x-axis

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

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

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

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

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

0503중간고사.dvi

0503중간고사.dvi 서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 1/9 [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 담당교수: 임 인 성 답은 반드시 답안지에 기술할 것. 공간이 부족할 경우 반드시 답안지 몇 쪽의 뒤에 있다고 명기한 후 기술할 것. 그 외의 경우의 답안지 뒤쪽이나 연습지 에 기술한 내용은 답안으로 인정 안함. 1. 2차원

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

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

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 알고리즘설계와분석 (CSE3081-2반 ) 중간고사 (2013년 10월24일 ( 목 ) 오전 10시30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성수강학년 : 2학년문제 : 총 8쪽 12문제 ========================================= < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고반드시답을쓰는칸에답안지의어느쪽의뒷면에답을기술하였는지명시할것.

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft Word - cg12-midterm-answer

Microsoft Word - cg12-midterm-answer 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임.. 맞으면 true, 틀리면 false를적으시오.

More information

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

Microsoft PowerPoint - lecture17-ch8.ppt [호환 모드] Single-Pass Multitexturing y (1,1) v (1,1) Blending 514780 2017 년가을학기 11/23/2017 단국대학교박경신 void SetMultitexturSquareData() { // 중간생략.. x glgenbuffers(4, &vbo[0]); u (-1,-1) (0,0) glbindbuffer(gl_array_buffer,

More information

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

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

Microsoft Word - cg07-final.doc

Microsoft Word - cg07-final.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 성적공고시중간고사때제출한암호를사용할것임. 1. 맞으면 true, 틀리면 false를적으시오. (20점) 1) 은면제거알고리즘중페인터알고리즘

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

Microsoft PowerPoint - LA_ch6_1 [호환 모드] Chapter 6 선형변환은무질서한과정과공학제어시스템의설계에관한연구에사용된다. 또한전기및음성신호로부터의소음여과와컴퓨터그래픽등에사용된다. 선형변환 Liear rasformatio 6. 6 변환으로서의행렬 Matrices as rasformatios 6. 변환으로서의행렬 6. 선형연산자의기하학 6.3 핵과치역 6.4 선형변환의합성과가역성 6.5 컴퓨터그래픽 si

More information

Microsoft PowerPoint - lecture19-ch8.ppt

Microsoft PowerPoint - lecture19-ch8.ppt Alpha Channel Alpha Blending 321190 2007년봄학기 6/1/2007 박경신 Alpha Channel Model Porter & Duff s Compositing Digital Images, SIGGRAPH 84 RGBA alpha는 4번째색으로불투명도 (opacity of color) 조절에사용함 불투명도 (opacity) 는얼마나많은빛이면을관통하는가의척도임

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

확장강의계획서 (2019 년도 1 학기 ) 과목명기초컴퓨터그래픽스과목번호 CSE4170 구분 ( 학점 ) 3 수강대상 수업시간화, 목 12:00~13:15 강의실 2. 선수학습내용 조건을만족하는학부생 성명 : 임인성 홈페이지 : grmanet.sogang.ac.kr/~

확장강의계획서 (2019 년도 1 학기 ) 과목명기초컴퓨터그래픽스과목번호 CSE4170 구분 ( 학점 ) 3 수강대상 수업시간화, 목 12:00~13:15 강의실 2. 선수학습내용 조건을만족하는학부생 성명 : 임인성 홈페이지 : grmanet.sogang.ac.kr/~ 확장계획서 (2019 년도 1 학기 ) 과목명기초컴퓨터그래픽스과목번호 CSE4170 구분 ( 학점 ) 3 수강대상 수업시간화, 목 12:00~13:15 실 2. 선수학습내용 조건을만족하는학부생 성명 : 임인성 홈페이지 : grmanet.sogang.ac.kr/~ihm 담당교수 ( 사진 ) E-mail: ihm@sogang.ac.kr 연락처 : 02-705-8493

More information

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - 제11장 포인터 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

0503중간고사.dvi

0503중간고사.dvi 서강대학교 공과대학 컴퓨터공학과 CSE4170 기초 컴퓨터 그래픽스 중간고사 1/8 [CSE4170: 기초 컴퓨터 그래픽스] 중간고사 담당교수: 임 인 성 답은 연습지가 아니라 답안지에 기술할 것 있는 변환 행렬은 일반적으로 어떤 좌표계 에서 어떤 좌표계로의 변환을 위하여 사용 하는가? 답안지 공간이 부족할 경우, 답안지 뒷면에 기 술하고, 해당 답안지 칸에

More information

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

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

; 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

; 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 ; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Microsoft PowerPoint - GameProgramming23-PixelShader.ppt

Microsoft PowerPoint - GameProgramming23-PixelShader.ppt 픽셀셰이더 HLSL Pixel Shader 305890 2009년봄학기 6/10/2009 박경신 각픽셀의래스터라이즈과정을위해그래픽카드의 GPU 에서실행되는프로그램 Direct3D 는소프트웨어적으로픽셀셰이더기능을에뮬레이트하지않음 픽셀과텍스처좌표에대한직접적인접근, 처리 멀티텍스처링, 픽셀당조명, 필드깊이, 구름시뮬레이션, 불시뮬레이션, 복잡한그림자테크닉 GPU

More information

Microsoft Word - cg09-final-answer.doc

Microsoft Word - cg09-final-answer.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 성적공고시중간고사때제출한암호를사용할것임. 1. 다음문제에답하시오. (50점) 1) 직교투영 (orthographic projection),

More information

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 10 강광원 이대현교수 학습안내 학습목표 오우거엔진의광원을이용하여 3D 공갂에서광원을구현해본다. 학습내용 평면메쉬의생성방법광원의종류및구현방법 광원의종류 : 주변광원 주변광원 (Ambient Light) 동일한밝기의빛이장면안의모든물체의표면에서일정하게반사되는것. 공갂안에존재하는빛의평균값이론적인광원 광원의종류 : 지향광원 지향광원 (Directional

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

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

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, 2018 1 George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오. 실행후 Problem 1.3에 대한 Display결과가 나와야 함) George 그림은 다음과

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

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

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표 Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Microsoft PowerPoint - NV40_Korea_KR_2.ppt

Microsoft PowerPoint - NV40_Korea_KR_2.ppt NV40의 진화 크리스 세이츠 (Chris Seitz) 그래픽의 진보 버츄어 파이터 NV1 1백만 삼각형 Wanda NV1x 2천 2백만 삼각형 Dawn NV3x 1억 3천만 삼각형 Wolfman NV2x 6천 3백만 삼각형 Nalu NV4x 2억 2천 2백만 95-98: 매핑과 Z-버퍼 CPU GPU 어플리케이션 / Geometry Stage Rasterization

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

Microsoft PowerPoint - chap02.ppt

Microsoft PowerPoint - chap02.ppt 그래픽렌더링파이프라인 발표자 : 김경석 1 랜더링파이프라인 3 OpenGL과 Direct3D의파이프라인비교그림 4 아키텍쳐..5 응용단계.7 기하단계.9 모델변환과시야변환.10 조명처리와셰이딩..12 투영.14 클리핑.17 화면매핑 18 래스터화단계 19 파이프라인에대한정리 22 2 렌더링파이프라인 렌더링파이프라인이란? 가상카메라, 3 차원객체, 광원, 조명처리모델,

More information

Microsoft PowerPoint - lecture18-ch8

Microsoft PowerPoint - lecture18-ch8 OpenGL Texturing Texture Mapping 321190 2007년봄학기 5/25/2007 박경신 OpenGL 에서텍스쳐맵핑 (texture mapping) 을위한 3 단계 텍스쳐활성화 glenable(gl_texture_2d) 텍스쳐맵핑방법 ( 랩핑, 필터등 ) 정의 gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S,

More information

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

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272) 게임엔진 제 13 강 ofusion 씬구성 이대현교수 한국산업기술대학교게임공학과 학습목차 Ofusion 을이용한 export Export 된씬의재현 씬노드애니메이션을이용한수동카메라트래킹 ofusion OGRE3D 엔진용 3D MAX 익스포터 http://www.ofusiontechnologies.com ofusion 의특징 Realtime Viewport 3D

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 06 Texture Mapping 01 Texture Mapping 의종류 02 Texture Mapping 이가능한객체생성 03 고급 Texture Mapping 01 Texture Mapping 의종류 1. 수동 Texture Mapping 2. 자동 Texture Mapping 2 01 Texture Mapping 의종류 좌표변환 Pipeline 에서

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

Microsoft Word - cg11-midterm-answer.doc

Microsoft Word - cg11-midterm-answer.doc 중간고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 맞으면 true, 틀리면 flse를적으시오.

More information

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가 서강대학교공과대학컴퓨터공학과 (/5) CSE08 ( 반 ): 알고리즘설계와분석 < 프로그래밍숙제 > (v_.0) 담당교수 : 임인성 05 년 0 월 일 마감 : 0 월 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가과목게시판에공고할예정임. 목표 : 주어진문제에대한분석을통하여 optimal substructure 를유추하고, 이를 bottom-up

More information

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

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 경영학을 위한 수학 Fial Eam 5//(토) :-5: 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오.. (각 6점) 다음 적분을 구하시오 4 ( ) (a) ( )4 8 8 (b) d이 성립한다. d C C log log (c) 이다. 양변에 적분을 취하면 log C (d) 라 하자. 그러면 d 4이다. 9 9 4 / si (e) cos si

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

More information

<4D F736F F F696E74202D204347C3E2BCAEBCF6BEF D325FC4C4C7BBC5CDB1D7B7A1C7C8BDBA20B1E2BABBBFE4BCD22E >

<4D F736F F F696E74202D204347C3E2BCAEBCF6BEF D325FC4C4C7BBC5CDB1D7B7A1C7C8BDBA20B1E2BABBBFE4BCD22E > 목차 1 점그리기 2 선그리기 3 다각형그리기 이병래교수 / 방송대컴퓨터과학과 점그리기 OpenGL - 꼭짓점지정 점 glverte* 함수 하나의좌표로표현되는기하요소 void glverte*( 좌표 ); 3 차원그래픽스에서는기본적으로,, z의세좌표축으로표현되는 3차원직교좌표계를사용하여점의좌표를표현함 와 축으로표현되는 2차원평면은 z축의값이 0인 3차원좌표로볼수있음

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft PowerPoint - IP11.pptx

Microsoft PowerPoint - IP11.pptx 열한번째강의카메라 1/43 1/16 Review 2/43 2/16 평균값 중간값 Review 3/43 3/16 캐니에지추출 void cvcanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size = 3); aperture_size = 3 aperture_size

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5> 게임엔진 제 10 강지형과하늘의렌더링 이대현교수 한국산업기술대학교게임공학과 학습목차 지형렌더링 하늘렌더링 육면체하늘 (SkyBox) 반구하늘 (SkyDome) 평면하늘 (SkyPlane) 실습 Terrain 지형의렌더링 장면설정 Y Step 1: 장면관리자설정 Step 2: 닌자의배치 Step 3: 광원생성및그림자표시 Step 4: 장면에지형을배치 X Z PlayState.cpp

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

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

(Microsoft PowerPoint - JXEUOAACMYBW.ppt [\310\243\310\257 \270\360\265\345]) Discrete Techniques Historical Background 1970 년대 : local illumination models Phong shading : plastic 처럼보인다... 1980년대 : realism 의추구 global illumination models high cost, but very realistic texture mapping

More information

<4D F736F F F696E74202D2035BBF3C6F2C7FC5FBCF8BCF6B9B0C1FA2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D2035BBF3C6F2C7FC5FBCF8BCF6B9B0C1FA2E BC8A3C8AF20B8F0B5E55D> 5. 상평형 : 순수물질 이광남 5. 상평형 : 순수물질 상전이 phase transition 서론 ~ 조성의변화없는상변화 5. 상평형 : 순수물질 전이열역학 5. 안정성조건 G ng ng n G G 자발적변화 G < 0 G > G or 물질은가장낮은몰Gibbs 에너지를갖는상 가장안정한상 으로변화하려는경향 5. 상평형 : 순수물질 3 5. 압력에따른Gibbs

More information

<B1B9BEEE412E687770>

<B1B9BEEE412E687770> 201 학년도대학수학능력시험 6 월모의평가문제및정답 2016 학년도대학수학능력시험 6 월모의평가문제지 1 제 2 교시 5 지선다형 1. 두행렬 성분은? [2 점 ] 에대하여행렬 의 3. lim 의값은? [2점] 1 2 3 4 5 1 2 3 4 5 2. 의값은? [2점] 1 2 3 4 5 4. 공차가 인등차수열 에대하여 의값은? [3 점 ] 1 2 3 4 5

More information

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

Microsoft PowerPoint - lecture12-ch5.ppt [호환 모드] Cmer Moveme Vieig 5478 7 년가을학기 //7 단국대학교박경신 OeGL 에서카메라효과를주기위하여 i 함수의시작부분에카메라의움직임에반대되는변환행렬을적용시키면된다. 예를들어 카메라를원점에서 ui 만큼 +Z 로움직이려면 or 를 - ui 만큼움직이면된다. voi i( Projeio = gm::ereive(45. ; Vie = gm::m4(.f; //

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선

Gray level 변환 및 Arithmetic 연산을 사용한 영상 개선 Point Operation Histogram Modification 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 HISTOGRAM HISTOGRAM MODIFICATION DETERMINING THRESHOLD IN THRESHOLDING 2 HISTOGRAM A simple datum that gives the number of pixels that a

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

REP - CP - 016, N OVEMBER 사진 요약 25 가지 색상 Surf 를 이용한 사진 요약과 사진 배치 알고리즘 Photo Summarization - Representative Photo Selection based on 25 Color Hi

REP - CP - 016, N OVEMBER 사진 요약 25 가지 색상 Surf 를 이용한 사진 요약과 사진 배치 알고리즘 Photo Summarization - Representative Photo Selection based on 25 Color Hi 1 사진 요약 25 가지 색상 Surf 를 이용한 사진 요약과 사진 배치 알고리즘 Photo Summarization - Representative Photo Selection based on 25 Color Histogram and ROI Extraction using SURF 류동성 Ryu Dong-Sung 부산대학교 그래픽스 연구실 dsryu99@pusan.ac.kr

More information

Open GL

Open GL Graphics Basic Windows & OpenGL Programming 컴퓨터그래픽스연구실 OpenGL 관련참고사이트 OpenGL 공식사이트 http://www.opengl.org/ Khronos Group http://www.khronos.org/ Nehe Productions http://nehe.gamedev.net/ OpenGL 파일설정 압축을푼후다음경로로파일을복사

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information