Microsoft PowerPoint - lecture16-ch6

Similar documents
Microsoft PowerPoint - lecture15-ch6.ppt

Łø·ŸÕ=¤ ¬ Ç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

PowerPoint 프레젠테이션

Microsoft Word - cg07-midterm.doc

Open GL

04_오픈지엘API.key

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

Microsoft PowerPoint - lecture11-ch4.ppt

Microsoft Word - cg09-final-answer.doc

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

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

Microsoft Word - cg07-final.doc

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

Microsoft PowerPoint - lecture11-ch4

삼성955_965_09

Microsoft Word - cg09-midterm.doc

슬라이드 제목 없음

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

Microsoft Word - cg08-final-answer.doc

Microsoft Word - cg12-midterm-answer

2005CG01.PDF

Microsoft PowerPoint - lecture17-ch8.ppt

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

Microsoft PowerPoint - 13prac.pptx

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

Microsoft PowerPoint - lecture18-ch8

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

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

Open GL

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

Microsoft PowerPoint - 06-Body Data Class.pptx

Microsoft PowerPoint D View Class.pptx

<28C3D6C1BE29312DC0CCBDC2BEC62E687770>

Week3

Microsoft PowerPoint - ar13.artoolkit.ppt

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

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

untitled

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

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

untitled

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

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

2014_ pdf

3D MAX + WEEK 9 Hansung Univ. Interior Design


STRIP LIGHT LED SOLUTION

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

정답-1-판매용

Microsoft PowerPoint - GameProgramming16-Camera.ppt

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

LCD Display

553호

C# Programming Guide - Types

1_4_제안색_16SS_이탈리아_attachment

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

슬라이드 1

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

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

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


PowerPoint 프레젠테이션

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

유니 앞부속


1_7_제안색_16FW_영국_attachment

2.스테인드글라스 렌더링을 위한 조명 모델.hwp

(Exposure) Exposure (Exposure Assesment) EMF Unknown to mechanism Health Effect (Effect) Unknown to mechanism Behavior pattern (Micro- Environment) Re

<35312DBCB1C8A3B5B52E687770>

(JBE Vol. 21, No. 4, July 2016) (Regular Paper) 21 4, (JBE Vol. 21, No. 4, July 2016) ISSN

WOOD Old Wood Series Old Wood Series_Pine Tree 자연의 흔적이 고스란히 남아있는 크렉감과 깊이감은 세련된 고급스러움으로 터치됨. Pine Tree Orange는 따뜻하면서도 경쾌한, Pine Tree Gray는 세련된 도시적 분위기를

건축환경 1

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

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - 04-Model Class.pptx

Microsoft Word - 1st-revise_Elements-and-structure-of-the-smart-lighting-design-in-the-office_1_

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

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

0806 블랙박스 메뉴얼 L5 원고작업_수정

레이아웃 1

Color Space 1 아련한 첫사랑의 추억, 영화 <건축학개론> 학교의 색다른 변신 제주 표선초등학교 우와~ 우리 학교 맞아? 정말 예쁘다~. 9월 1일 개학 날 등교하는 아이들의 눈이 휘둥그레졌다. 여름방학 사이에 밋밋했던 제주 표선초등학교의 외관이 색색의 팬톤페

b74...*

¿©¸§È£-³»Áö

....6p film

Buy one get one with discount promotional strategy

좋은 사진 찍는 방법


A Rendering Plug-in for Designers 모든분야의스케치업유저들은 V-Ray 를이용해빠르고, 쉽고, 저렴하게최첨단의이미지를렌더링할수있습니다. 카오스그룹에의해개발된 V-Ray for SketchUp 은오늘날가장인기있는 3D 모델링프로그램중하나인 Goo


예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Transcription:

Lighting OpenGL Lighting OpenGL의조명에는 3가지요소가필요 광원 (Lights) 재질 (Materials) 면의법선벡터 (Normals) 321190 2007년봄학기 5/15/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 에서면의법선벡터는 glnormal 함수로지정 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(); Advanced OpenGL Lighting OpenGL 에서제공하는 lighting 관련기능들 Spotlights Attenuation Emissive materials Two-sided lighting model Color-material mode Secondary specular color Automatic rescaling of normals