Microsoft PowerPoint - lecture15-ch6.ppt

Similar documents
Microsoft PowerPoint - lecture16-ch6

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

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

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

슬라이드 1

Open GL

Microsoft Word - cg07-midterm.doc

PowerPoint 프레젠테이션

Microsoft PowerPoint - lecture11-ch4.ppt

Open GL

04_오픈지엘API.key

Microsoft PowerPoint - lecture11-ch4

PowerPoint 프레젠테이션

Microsoft Word - cg09-final-answer.doc

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

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

Open GL

Microsoft Word - cg07-final.doc

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

Microsoft Word - cg09-midterm.doc

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

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

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

Microsoft PowerPoint - 06-Body Data Class.pptx

삼성955_965_09

슬라이드 제목 없음

Microsoft PowerPoint - 13prac.pptx

Microsoft Word - cg08-final-answer.doc

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

Microsoft Word - cg12-midterm-answer

PowerPoint 프레젠테이션

2005CG01.PDF

- 이 문서는 삼성전자의 기술 자산으로 승인자만이 사용할 수 있습니다 Part Picture Description 5. R emove the memory by pushing the fixed-tap out and Remove the WLAN Antenna. 6. INS

Microsoft PowerPoint - lecture17-ch8.ppt


Microsoft PowerPoint - lecture18-ch8

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

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

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

Microsoft PowerPoint - lecture2-opengl.ppt [호환 모드]

Week3

Microsoft PowerPoint D View Class.pptx

untitled

PowerSHAPE 따라하기 Calculate 버튼을 클릭한다. Close 버튼을 눌러 미러 릴리프 페이지를 닫는다. D 화면을 보기 위하여 F 키를 누른다. - 모델이 다음과 같이 보이게 될 것이다. 열매 만들기 Shape Editor를 이용하여 열매를 만들어 보도록

TViX_Kor.doc

C# Programming Guide - Types

Microsoft PowerPoint - GameProgramming16-Camera.ppt

6. Separate HDD by pulling in the arrow direction. * Cautions Avoid lifting HDD excessively, because Connector can be damaged ODD Remove

ENEX PRODUCT CONTENTS Designed to resemble a nature Prime Series Standard Series Classy (White & Indigo) New Classy (White & Kha

Ⅰ. Introduction 우리들을 둘러싸고 잇는 생활 환경속에는 무수히 많은 색들이 있습니다. 색은 구매의욕이나 기호, 식욕 등의 감각을 좌우하는 것은 물론 나뭇잎의 변색에서 초목의 건강상태를 알며 물질의 판단에 이르기까지 광범위하고도 큰 역할을 하고 있습니다. 하

STRIP LIGHT LED SOLUTION

<28C3D6C1BE29312DC0CCBDC2BEC62E687770>

Microsoft PowerPoint - ar13.artoolkit.ppt

차례 사용하기 전에 준비 및 연결 간편 기능 채널 관련 영상 관련 음성 관련 시간 관련 화면잔상 방지를 위한 주의사항... 4 각 부분의 이름... 6 제품의 설치방법 TV를 켜려면 TV를 보려면 외부입력에 연결된 기기명을 설정하려면..

Backlight Unit의 광학적 특성 해석 및 Prism Sheet의 최적화 설계

Microsoft PowerPoint - Week04_DirectX9 프로그래밍의 기초2.pptx

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

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

untitled

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

(JBE Vol. 21, No. 5, September 2016) (Regular Paper) 21 5, (JBE Vol. 21, No. 5, September 2016) ISS

2014_ pdf

3D MAX + WEEK 9 Hansung Univ. Interior Design

OpenGL 프로그래밍 가이드 : OpenGL 1.2 공식 학습 가이드 제3판


i-movix 특징 l 안정성 l 뛰어난화질 l 차별화된편의성

정답-1-판매용

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

975_983 특집-한규철, 정원호

Microsoft PowerPoint - 04-Model Class.pptx

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

이번에 보존처리한 족도 族 圖 사진1 는 안 동 권 씨 安 東 權 氏 집안의 것으로, 원본 제작 시기는 1454년에서 1456년 사이로 추정되는데, 이는 현존하는 최고 最 古 의 족보로 알려진 1476년 안동권씨성화보 安 東 權 氏 成 化 譜 보다 20 년 정도 앞서는

LCD Display

553호

유니 앞부속

RVC Robot Vaccum Cleaner

Microsoft PowerPoint - lecture19-ch8.ppt

1_4_제안색_16SS_이탈리아_attachment

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

주거용 LED 조명 카탈로그.indd

Microsoft PowerPoint - lecture3-ch2.ppt

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


슬라이드 1

Microsoft PowerPoint - lecture4-ch2.ppt

Jwplayer 요즘 웹에서 동영상 재생을 목적으로 많이 쓰이는 jwplayer의 설치와 사용하기 입니다. jwplayer홈페이지 : 위의 홈페이지에 가시면 JWplayer를 다운 받으실 수 있습니다. 현재 5.1버전

Q50_kr_final.pdf


- 2 -

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

Absolute Blue 태양의 위세 앞에서도 당당한 여자의 자존 심을 닮은 컬러. 바람을 닮아 유연한, 물을 닮아 자유롭게, 거칠 것 없이 여름의 클라 이맥스에 올라서서 세상을 물들이는 소리 없는 지배자, 블루

1. Features IR-Compact non-contact infrared thermometer measures the infrared wavelength emitted from the target spot and converts it to standard curr

PowerPoint 프레젠테이션


歯Lecture2.PDF

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

1_7_제안색_16FW_영국_attachment

PowerPoint 프레젠테이션

Transcription:

Lighting OpenGL Lighting OpenGL의조명에는 3가지요소가필요 광원 (Lights) 재질 (Materials) 면의법선벡터 (Normals) 321190 2008년봄학기 5/26/2007 박경신 OpenGL Lighting OpenGL Lighting OpenGL에서제공하는조명모델 환경광 / 주변광 (ambient lights) 점광원 (point lights) 방향성광원 / 평행광원 / 원거리광원 (directional lights) 점적광 (spot lights) 거리에따른빛의세기감쇠 (attenuation) Physical attenuation: I ( P I( P) = P OpenGL attenuation: Default a = 1, b = 0, c = 0 I ( P ) 0 I( P) = a+ bd + cd 2 ) 0 2 P0

OpenGL Lighting OpenGL 에서 lighting 을사용하려면 GL_LIGHTING 을활성화해야한다. glenable(gl_lighting); 또한, 적어도하나의광원을활성화해야한다. glenable(gl_light0); OpenGL 에서는최대 8 개의광원을지정할수있다 GL_LIGHT0,.., GL_LIGHT7 최대광원수얻기 : glgetintegerv(gl_max_lights, GLint *num_lights); OpenGL 에서 lighting 비활성화 gldisable(gl_lighting); OpenGL Light Sources 광원의속성은 gllight(..) 함수에의해지정된다. 광원은위치 (position) 와색 (color) 을갖는다. 광원의강도 (intensity) 는색의강도에의해결정된다. GLfloat position[] = {0, 1, 0, 0}; // directional light GLfloat white_color[] = {1, 1, 1, 1}; glenable(gl_light0); gllightfv(gl_light0, GL_POSITION, position); // light position gllightfv(gl_light0, GL_DIFFUSE, white_color); // light color OpenGL Light Source Position 광원은 infinite light ( 혹은 directional light) 이거나 local light ( 혹은 positional light) 이다. Infinite light source 의모든빛은같은방향을갖는다. Local light source 는공간의특정지점에서오는빛이다. 광원의위치의 4 번째값이 0 이면 infinite light (directional light) 이고, 1 이면 local light (point light) 이다. 예제 : // directional light comes from above GLfloat position0[] = {0, 1, 0, 0}; gllightfv(gl_light0, GL_POSITION, position0); // point light comes from point (0, 1, 0) GLfloat position1[] = {0, 1, 0, 1}; gllightfv(gl_light1, GL_POSITION, position1); OpenGL Light Source Position 광원의위치는현재변환 (transformation) 에영향을받는다. Light 은세계좌표계 (world coordinates system) 에서정의될수있도록카메라변환후에지정하는것이좋다. Light 은또한객체와같이변환행렬에의해움직일수있다. 예제 : // make a point light comes from position (5, 0, 7) GLfloat position[] = {0, 0, 0, 1}; glpushmatrix(); gltranslatef(5, 0, 7); gllightfv(gl_light0, GL_POSITION, position); glpopmatrix();

OpenGL Light Sources GL_SPOT_CUTOFF OpenGL Multiple Lights 점적 / 집중광원 (spot light source) 방향지정벡터 (spot light direction) 절단각도 (spot light cutoff) GL_SPOT_DIRECTION 높은계수 (spot light exponent) 를사용하면보다많은 spot light 생김 GLfloat direction[] = {0.0, -1.0, 0.0}; gllightfv(gl_light0, GL_SPOT_DIRECTION, direction); gllightf(gl_light0, GL_SPOT_CUTOFF, 15.0f); gllightf(gl_light0, GL_SPOT_EXPONENT, 10.0f) OpenGL 에서는 GL_LIGHT0, GL_LIGHT1,.. 등으로지정함으로써여러개의광원을동시에활성화할수있다. 최대 8 개까지의광원을사용할수있다. GLfloat position[] = {-1, 1, 2, 0}; glenable(gl_light1); gllightfv(gl_light1, GL_POSITION, position); 너무많은 light을사용하면계산량이늘어나게되고따라서렌더링속도를늦출수있다. 빛의감쇠 (attenuation): 1/(a + bd +cd 2 ) Default a = 1, b=0, c=0 gllightf(gl_light0, GL_CONSTANT_ATTENUATION, 2.0f); gllightf(gl_light0, GL_LINEAR_ATTENUATION, 1.0f); gllightf(gl_light0, GL_QUADRATIC_ATTENUATION, 0); OpenGL Materials 재질속성은표면이빛을어떻게반사하는지를나타내준다. 재질은기본적으로표면의색을말한다. 조명이활성화되면, glcolor 는무시되고재질 (material) 이대신사용된다. 재질속성은 glmaterial 함수를사용하여지정한다. glmaterialfv(face, property, value) Face: e.g. GL_FRONT, GL_BACK, GL_FRONT_AND_BACK Property: e.g. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_SHININESS, GL_EMISSION, etc Value: the reflection coefficients Nonzero GL_EMISSION makes an object appear to be giving off light of that color Example Teapot 의재질예제 Only differences in these teapots are the parameters in the modified Phong model

OpenGL Light Color OpenGL 에서광원은색 (color) 과강도 (intensity) 를가지고있으며, 기본값은백색이다. 우리가보는객체의색은빛의색 (light color) 과재질의색 (material color) 둘간의합성으로결정된다. 빛의색은얼마나 RGB 빛이객체에서빛나는지를말한다. 재질의색은얼마나 RGB 빛이객체에서반사되는지를말한다. White light * red material = red Red light * white material = red Red light * blue material = black Yellow light * cyan material = green OpenGL Ambient/Diffuse/Specular Light OpenGL 조명모델에서는 3 가지형태의반사광을고려함. Ambient light ( 환경광 ): 다른일반표면에서반사되어나오는빛. 장면을전반적으로밝게함. Diffuse light ( 난반사광 ): 특정방향으로진행하다가표면에닿으면모든방향으로동일하게반사됨. 관찰자의위치와무관함. 가장일반적인형태임. Specular light ( 정반사광 ): 특정방향으로진행하다가표면에닿으면한방향으로강하게반사됨. 반짝이는표면을모델링할때이용됨. OpenGL Ambient Light 환경광은간접적으로들어오는빛을시뮬레이션함. 표면의방향과는상관없이사방에일정한밝기의빛이고르게퍼져있다고가정함. 환경광효과는광원의환경광색과재질의환경광색으로지정됨. GLfloat gray[] = {0.1, 0.1, 0.1, 1}; GLfloat white[] = {1, 1, 1, 1}; gllightfv(gl_light0, GL_AMBIENT, gray); glmaterialfv(gl_front, GL_AMBIENT, white); 또한 gllightmodel 함수를사용하여전역적환경광을지정할수있음. gllightmodelfv(gl_light_model_ambient, gray); OpenGL Specular Light 정반사광은표면에반짝이는 highlights 를생성함. 정반사광의 3 가지속성 : 재질의정반사색 재질의반짝임 (shininess) 광원의정반사색 GLfloat white[] = {1, 1, 1, 1}; gllightfv(gl_light0, GL_SPECULAR, white); glmaterialfv(gl_front, GL_SPECULAR, white); glmaterialf(gl_front, GL_SHININESS, 50); GL_SHININESS값이높으면작은면적의 highlight이생성 정반사광을비활성화하고자하면, 정반사광색을검정색 (0, 0, 0) 으로지정함.

Surface Orientation Lighting 에서빛이표면에서얼마나반사되는지계산하기위해서 OpenGL 은표면이어느방향을향하고있는지알아야한다. 표면의방향 (surface orientation) 과빛의방향은빛의난반사광 (diffuse light) 의밝기를결정짓는다. 표면의방향 (surface orientation), 빛의방향 (light direction), 관찰자를향하는방향벡터 (direction to the viewer) 는정반사광 (specular light) 의밝기를결정짓는다. Surface Normal 표면의방향 (orientation) 은표면에수직을이루는법선벡터에의해정의된다. 면의법선벡터는 ( 벡터의길이가 1인 ) 단위벡터 (unit vector) 이어야한다. n p 2 p p 1 p 0 n (p - p 0 ) = 0 n = (p2 - p0 ) (p1 - p0 ) normalize n n/ n Vertex Normal 정점의법선벡터 그정점을공유하는근접한면의법선벡터의평균치를계산하여사용함. Normal to Sphere Implicit function of Sphere: f(x,y.z)=0 Unit Sphere: f(p)=p p-1 = 0 구의법선벡터 n = [ f/ x, f/ y, f/ z] T = p

OpenGL Normal OpenGL Normal OpenGL 에서면의법선벡터는 glnormal 함수로지정 Shaded Cube 를그린다. OpenGL 의조명계산에서는각정점의법선벡터를사용함 예제 : glbegin(gl_triangles); glnormal3f(0, 1, 0); glvertex3f(-1, 0, 0); glnormal3f(0, 1, 0); glvertex3f(1, 0, 0); glnormal3f(0, 1, 0); glvertex3f(0, 0, 2); glend(); GLfloat vertex[][3] = { {-1.0,-1.0,-1.0}, { 1.0,-1.0,-1.0}, { 1.0, 1.0,-1.0}, {-1.0, 1.0,-1.0}, {-1.0,-1.0, 1.0}, { 1.0,-1.0, 1.0}, { 1.0, 1.0, 1.0}, {-1.0, 1.0, 1.0} }; GLfloat normal[][3] = { { 1.0, 0.0, 0.0}, // right { 0.0, 1.0, 0.0}, // top { 0.0, 0.0, 1.0}, // front {-1.0, 0.0, 0.0}, // left { 0.0, -1.0, 0.0}, // bottom { 0.0, 0.0, -1.0}, // back }; 7 4 3 2 6 0 1 5 (0, 0, 1) front OpenGL Normal Advanced OpenGL Lighting void polygon(int n, int b, int c, int d) { glbegin(gl_polygon); glnormalfv(normal[n]); glvertex3fv(vertex[a]); glvertex3fv(vertex[b]); glvertex3fv(vertex[c]); glvertex3fv(vertex[d]); glend(); } void cube( ) { polygon(0, 5, 1, 2, 6); // right polygon(1, 6, 2, 3, 7); // top polygon(2, 6, 7, 4, 5); // front polygon(3, 4, 7, 3, 0); // left polygon(4, 4, 0, 1, 5); // bottom polygon(5, 0, 3, 2, 1); // back } 7 4 3 2 6 0 1 5 (0, 0, 1) front OpenGL 에서제공하는 lighting 관련기능들 Spotlights Attenuation Emissive materials Two-sided lighting model Color-material mode Secondary specular color Automatic rescaling of normals