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

Similar documents
Microsoft PowerPoint - lecture16-ch6

Microsoft PowerPoint - lecture15-ch6.ppt

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

슬라이드 1

PowerPoint 프레젠테이션

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

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


DBPIA-NURIMEDIA

1

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

°ø±â¾Ð±â±â

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

6 강남구 청담지구 청담동 46, 삼성동 52 일대 46,592-46,592 7 강남구 대치지구 대치동 922번지 일대 58,440-58,440 8 강남구 개포지구 개포동 157일대 20,070-20,070 9 강남구 개포지구중심 포이동 238 일대 25,070-25,

27집최종10.22

황룡사 복원 기본계획 Ⅵ. 사역 및 주변 정비계획 가. 사역주변 정비구상 문화유적지구 조성 1. 정비방향의 설정 황룡사 복원과 함께 주변 임해전지(안압지) 海殿址(雁鴨池)와 분황사 등의 문화유적과 네트워크로 연계되는 종합적 정비계획안을 수립한다. 주차장과 광장 등 주변

2/21

untitled

<4D F736F F F696E74202D20C1A63037B0AD202D20B1A4BFF8B0FA20B1D7B8B2C0DA>

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

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

Microsoft Word - cg07-midterm.doc

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

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

텀블러514

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

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

01이국세_ok.hwp

31.[G ]사업장의 조명에 관한 기술지침.hwp

Microsoft Word - cg07-final.doc

Open GL

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

Microsoft Word - cg09-final-answer.doc

3D MAX + WEEK 9 Hansung Univ. Interior Design

. PC DP-1VR P15 1ch 1 Input Tool 4ch RS-232C RS-232C. Input Tool P14 MUX-10F P16 MeasureReport P21 GO/NG 2 MeasurLink Real-Time P19 MeasurLink STATMea

Microsoft PowerPoint - lecture11-ch4

hwp

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

PowerPoint 프레젠테이션

슬라이드 1


슬라이드 1

BS-K1217-M□□-3012_ProductGuide_KR_PDF

Microsoft Word - cg12-midterm-answer

H3250_Wi-Fi_E.book

농어촌여름휴가페스티벌(1-112)

Microsoft PowerPoint - lecture11-ch4.ppt

16<C624><D22C><ACFC><D0D0> <ACE0><B4F1><BB3C><B9AC><2160>_<BCF8><CC45>.pdf


Microsoft PowerPoint - 권장 사양

<4D F736F F F696E74202D20C1A63130B0AD202D20C1F6C7FCB0FA20C7CFB4C3C0C720B7BBB4F5B8B5>

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

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

<목 차> I. 출장 개요 1 II. 주요일정 2 III. 세부내용 3 1. 전자공증체계 3 2. 전자공증 시스템 및 서비스 절차 4 3. 전자공증서비스 현황 6 4. 기타 7 IV. 국내 전자공증제도 도입 시 검토의견 9

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

<5BB0EDB3ADB5B55D B3E2B4EBBAF12DB0ED312D312DC1DFB0A32DC0B6C7D5B0FAC7D02D28312E BAF2B9F0B0FA20BFF8C0DAC0C720C7FCBCBA2D D3135B9AEC7D72E687770>

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

歯표지.PDF

KAERITR hwp

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

µµ≈•∏‡∆Æ1

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


3 x =2y x =-16y 1 4 {0 ;4!;} y=-;4!; y x =y 1 5 5'2 2 (0 0) 4 (3-2) 3 3 x=0 y=0 x=2 y=1 :: 1 4 O x 1 1 -:: y=-:: 4 4 {0 -;2!;} y=;2!; l A y 1

Microsoft Word - cg08-final-answer.doc

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

Book1

미디어펜 기고문

특허청구의 범위 청구항 1 삭제 청구항 2 삭제 청구항 3 하기 (A), (B) 및 (E)를 함유하는 세정제 조성물로서, (A)와 (B)의 배합 비율이 (A)/(B) = 99/1~70/30(중량% 비)이며, 또한, 이 조성물 중의 전체 계면활성제 성분 중에서 (A)의

갤럭시윈 SHV-E500S 안드로이드 4.2 신형태그중하 갤럭시노트 3 SM-N900S 안드로이드 4.3 신형태그상 갤럭시 S4 액티브 SHV-E470S 안드로이드 4.2 신형태그중 갤럭시코어어드밴스 SHW-M570S 안드로이드 중 갤럭시그랜드 2 SM-G7

특허청구의 범위 청구항 1 게임 서버 또는 미들웨어에 의해, 사용자 단말기로부터, GPS 정보, IP 정보, 중계기 정보 중 적어도 하나를 이 용한 위치 정보와, 상기 사용자 단말기에 설정된 언어 종류를 포함하는 사용자 정보를 수신하는 단계; 상기 게임 서버 또는 미들

Microsoft PowerPoint - 13prac.pptx

별지제 호서식 연구결과보고서 과제명 소속소방산업기술연구소연구책임자권성필 연구기간 연구목표 연구배경

(001~006)개념RPM3-2(부속)

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

°ø¾÷-01V36pš

K_R9000PRO_101.pdf

Microsoft PowerPoint - lecture19-ch8.ppt

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


<B0F8C1A4C0CCBFEB5FB0A1C0CCB5E5B6F3C0CE28BFF8BABB2920BCF6C1A42E687770>

Microsoft PowerPoint - 7-Work and Energy.ppt

statistics

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

NFC칩이 없거나 다른 OS


<BCF6B5B52032C1B62E687770>

33 신월 서울특별시 강동구성내3동 선사 서울특별시 강동구암사동 장항IC(뉴타운) 경기 고양시일산동구 백마로 의정부 경기 의정부시가능동

<4D F736F F F696E74202D20B5BFBFAAC7D05F36C0E54128BCD5B8EDC8AF292E BC8A3C8AF20B8F0B5E55D>

歯FFF01379.PDF

A hwp

유니 앞부속

160215

2002 Game White paper 2002 Game White paper

BS-K1117□-M□□-3012_ProductGuide_KR_PDF

.4 편파 편파 전파방향에수직인평면의주어진점에서시간의함수로 벡터의모양과궤적을나타냄. 편파상태 polriion s 타원편파 llipill polrid: 가장일반적인경우 의궤적은타원 원형편파 irulr polrid 선형편파 linr polrid k k 복소량 편파는 와 의

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

PowerPoint 프레젠테이션

Transcription:

그래픽스강의노트 06 - 조명 1 강영민 동명대학교 2015 년 2 학기 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 1 / 25

음영 계산의 필요성 음영(陰影) 계산, 혹은 셰이딩(shading)은 어떤 물체의 표면에서 어두운 부분과 밝은 부분을 서로 다른 밝기로 그려내는 것 모든 면을 동일한 색으로 그리면 입체감이 없다. 2 / 25

조명과 재질 음영 계산에 필요한 두 가지 핵심 요소 빛 컴퓨터 그래픽스의 최종 결과는 우리의 눈을 통해 입력되는 시각 정보 눈이 인지하는 신호는 전자기파 우리가 인지할 수 있는 영역의 전자기파: 가시광선(可視光線) 이 가시광선을 일상적으로 빛 이라 부름 재질(材質,material) 같은 빛이라고 모든 물체가 같은 색으로 보이지는 않음 물체는 저마다의 특성에 따라 서로 다른 방식으로 빛을 반사 물체가 가진 반사 특성을 재질이라고 함 3 / 25

지역조명과전역조명 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 4 / 25

광원 모델 일반적인 광원(光源, light source)은 다루기가 쉽지 않다. 하나의 광원은 일정한 면적이나 체적을 가지기 때문에 이 광원에서 나온 빛들을 적분해야 한다. 실제 실시간 렌더링에서는 광원을 하나의 점이나 방향으로 보는 단순화된 모델을 사용한다. 사용되는 광원은 다음과 같은 것들이 있다. 광원 종류 점광원 집중광원 방향광원 주변광원 특징 광원의 위치와 색으로 결정. 전방향(omnidirection)으로 빛 진행. 점광원에서 일부 입체각으로 빛을 제한. 특정한 위치가 아니라 방향에 광원 존재. 모든 곳에 동일하게 가해지는 빛. 5 / 25

지역 조명 모델 - 퐁(Phong) 모델 정반사와 난반사, 주변광 반사 특성을 표현할 수 있는 간단하고 빠른 모델 다음과 같은 정보가 필요 광원으로 향하는 벡터 L 카메라(시점)을 향하는 벡터 E 법선 벡터 N 이상적인 반사 방향 R light color m l = (lr, lg, lb ) N L E material color m m = (mr, mg, mb ) R 6 / 25

퐁(Phong) 모델: 광원과 재질 - 색상 퐁 모델은 난반사, 정반사, 주변광을 각각 독립적으로 계산하여 합성 각각의 반사 요소에 따라 결정해야 하는 것은 눈을 향해 오는 빛의 강도(intensity)와 색상 색상의 결정 어떤 광원에서 나오는 빛의 색상이 l = (lr, lg, lb ) 물체의 재질 색상이 m = (mr, mg, mb ) 빛의 색상은 이 빛이 눈에 감지되었을 때 우리가 느끼는 색이 빨간 색을 가진 물체의 재질 색상 (1.0, 0.0, 0.0)은 도착하는 빛의 RGB 3 개 채널에서 R 채널의 빛을 100% 반사한다는 것을 의미 반사되는 빛의 색상은 다음과 같다. c = (lr mr, lg mg, lb mb ) 이를 이렇게 표현한다. c=l m 7 / 25

퐁(Phong) 모델: 광원과 재질 - 광강도 이 계산은 눈에 감지되는 빛의 색상을 결정 같은 색상이라도 밝고 어두울 수 있음 이러한 음영을 고려해야 입체적인 물체로 보임 이러한 음영은 광강도(光强度, light intensity)에 의해 결정 이 광강도의 값은 스칼라(scalar) 값으로 I 로 표현 실제로 눈에 보이는 색은 광원과 재질에 의해 결정되는 색상 c 와 광강도 I 에 의해 다음과 같이 결정 κ = Ic 8 / 25

퐁(Phong) 모델: 최종 결정 반사색 퐁 모델은 각각의 반사 요소를 모두 따로 계산 난반사 요소와 관련된 값에는 아래첨자 d 정반사에는 s 주변광 반사에는 a 눈에 관측되는 색상은 다음과 같음 κ = Ia ca + Id cd + Is cs 이때, 주변광의 광강도는 상수 값을 가지므로 Ia 는 1로 설정할 수 있다. 따라서 다음 식으로 바꿀 수 있다. κ = ca + Id cd + Is cs = la ma + Id ld md + Is ls ms 9 / 25

퐁 모델 광강도(intensity)의 계산 - 난반사 퐁 모델에서 계산해야 하는 광강도는 난반사 Id 와 정반사 Is 난반사는 모든 방향에 동등하게 빛이 퍼지는 것으로 가정 눈이 어디에 있든지 동일한 색상 관찰 눈의 움직임에 따라 변하는 하일라이트(highlight)는 표현하지 못 함 색을 칠하려고 하는 한 지점에 대해 어디서 쳐다 보든지 동일한 밝기 밝기는 얼마나 많은 에너지가 해당 지점에 떨어지는지에 달려 있음 N Ilight Ain L θ Ieye Ain Asurf ace Ilight Asurf ace 10 / 25

퐁 모델 광강도(intensity)의 계산 - 난반사 1/2 퐁 모델에서 계산해야 하는 광강도는 난반사 Id 와 정반사 Is 난반사는 모든 방향에 동등하게 빛이 퍼지는 것으로 가정 눈이 어디에 있든지 동일한 색상 관찰 눈의 움직임에 따라 변하는 하일라이트(highlight)는 표현하지 못 함 색을 칠하려고 하는 한 지점에 대해 어디서 쳐다 보든지 동일한 밝기 밝기는 얼마나 많은 에너지가 해당 지점에 떨어지는지에 달려 있음 N Ilight Ain L θ Ieye Ain Asurf ace Ilight Asurf ace 11 / 25

퐁 모델 광강도(intensity)의 계산 - 난반사 2/2 이 값은 광원 벡터 L 과 법선 벡터 N 이 일치할 때 최대이며, 90도를 이룰 때 0이 됨 이 값은 두 벡터의 내적, 즉 두 벡터 사잇각의 코사인(cosine)에 비례한다는 것이 램버트 반사(Lambertian reflectance) 모델 따라서 광강도를 계산해야하는 지점에서 빛을 향하는 방향벡터 L 과 표면 법선벡터 N 의 내적으로 Id 를 구할 수 있음 Id = cos θ = L N (1) 12 / 25

퐁 모델 광강도(intensity)의 계산 - 정반사 1/2 N Ilight R L N reflected light distribution R shiny surface L E θ Is (cos θ)σ N R L reflected light distribution σ : shininess of the surf ae rough surface 정반사는 거울과 같이 입사각에 대칭되는 방향으로 반사되는 것이다. 그런데, 실제 물체들은 이런 이상적인 정반사가 아니라 반사 방향으로 빛이 강하게 진행하기는 하지만 다른 방향으로 조금씩 빛이 나간다. 퐁 모델에서 사용하는 정반사 모델은 거울과 같은 반사가 아니라 반사 벡터 R 중심으로 퍼지는 반사를 표현한다. 13 / 25

퐁 모델 광강도(intensity)의 계산 - 정반사 2/2 정반사는 반사 벡터 R 근처에서 강하게 관찰되기 때문에 눈을 R 근처로 가져가야 강한 반사 정반사의 광강도 Is 는 R 과 E 의 사잇각의 코사인에 연관 물체의 재질에 따라 R 방향으로 집중되는 정도가 달라짐 - 물체의 반질함(shininess) σ 에 의해 결정 Id = cos θ = (R E)σ 14 / 25

퐁 모델 광강도(intensity)의 계산 - 주변광 주변광의 광강도는 언제나 1이다. 따라서 모든 물체는 주변광과 주변광 반사 재질에 의한 색상 la ma 을 기본적으로 갖게 된다. 이것은 지역조명 기법의 단점인 지나치게 어두운 부분을 없애는 역할을 수행한다. κ = ca + Id cd + Is cs = la ma + Id ld md + Is ls ms 15 / 25

수정된 퐁 모델 - 블린(Blinn) 모델 퐁 모델은 정반사 광강도 계산에서 반사 벡터 R 을 계산해야 함 블린(Blinn)은 이 반사벡터 대신에 반 벡터(halfway vector)라는 것을 도입 L+E 반 벡터 H 는 광원 벡터와 시선 벡터 E 를 더해서 정규화: H = L+E Ilight L N H= L+E L+E R E if R E = 0 then H N = 0 if R E increases then H N also increases 16 / 25

OpenGL 조명 - 조명과 재질 적용할 데이터 준비 조명의 위치는 동차좌표(homogeneous coordinate)로 표현 마지막 성분이 1이면 점광원이고, 0이면 방향광원(directional light source) //재질의 정반사, 난반사, 주변광, 반질거림 특성으로 사용될 데이터 // v a l u e s f o r m a t e r i a l s p e c i f i c a t i o n GLfloat mat specular [ ] = { 1. 0, 1.0 f, 1.0 f, 1.0 f GLfloat m a t d i f f u s e [ ] = { 0. 0, 1.0 f, 1.0 f, 1.0 f G L f l o a t ma t ambient [ ] = { 1. 0, 1. 0, 1. 0, 1. 0 } ; GLfloat ma t sh in ine ss [ ] = { 120.0 }; // 광원의 정반사, 난반사, 주변광 특성으로 사용될 데이터 // v a l u e s f o r l i g h t s p e c i f i c a t i o n GLfloat l i t s p e c u l a r [ ] = { 1. 0, 1. 0 f, 1. 0 f, 1. 0 f }; GLfloat l i t d i f f u s e [ ] = { 0. 0, 1. 0 f, 1. 0 f, 1. 0 f }; GLfloat l i t a m b i e n t [ ] = { 0. 5, 0. 0 f, 0. 0 f, 1. 0 f }; // 광원의 위치로 사용될 데이터 // v a l u e s f o r l i g h t p o s i t i o n i n g GLfloat l i g h t p o s i t i o n [ ] = { 1. 0, 1. 0 f, 1. 0 f, 0. 0 f }; }; }; 17 / 25

OpenGL 조명 - 조명과 재질 적용 실제 조명과 재질에 적용 조명의 특성을 설정하는 함수는 gllight* 재질 특성을 설정하는 것은 glmaterial* // 조명과 재질의 특성을 준비된 데이터로 설정하는 함수 void LightSet ( void ) { g l M a t e r i a l f v (GL FRONT, GL SPECULAR, m a t s p e c u l a r ) ; g l M a t e r i a l f v (GL FRONT, GL DIFFUSE, m a t d i f f u s e ) ; g l M a t e r i a l f v (GL FRONT, GL AMBIENT, mat ambient ) ; g l M a t e r i a l f v (GL FRONT, GL SHININESS, m a t s h i n i n e s s ) ; g l L i g h t f v ( GL LIGHT0, GL SPECULAR, l i t s p e c u l a r ) ; g l L i g h t f v ( GL LIGHT0, GL DIFFUSE, l i t d i f f u s e ) ; g l L i g h t f v ( GL LIGHT0, GL AMBIENT, l i t a m b i e n t ) ; g l E n a b l e ( GL LIGHTING ) ; g l E n a b l e ( GL LIGHT0 ) ; } //조명의 위치를 설정하는 함수 void LightPositioning ( void ) { g l L i g h t f v ( GL LIGHT0, GL POSITION, l i g h t p o s i t i o n ) ; } 18 / 25

OpenGL 조명 - 렌더링 v o i d i n i t ( i n t a r g c, c h a r a r g v ) { [[각종 초기화 작업]] L i g h t S e t ( ) ; // 조명의 특성과 재질의 특성을 설정한다 g l E n a b l e (GL DEPTH TEST) ; } void display () { [[GL MODELVIEW 모드 설정]] glulookat ( 0, 1, 2, 0, 0, 0, 0, 1, 0 ) ; LightPositioning () ; // 점광원의 위치를 설정한다 glutsolidteapot (0.5) ; glutswapbuffers () ; } (a) 주변광 포함 (b) 주변광 제외 19 / 25

OpenGL 조명 - 반질거림 조정 for ( i n t i =0; i <5; i ++) { // 재질의 반질거림을 변경하여 설정하고 주전자를 그림 g l M a t e r i a l f (GL FRONT, GL SHININESS, 4. 0 f +123.0 f ( i / 4. 0 ) ) ; f o r ( i n t j =0; j <5; j ++) { glpushmatrix ( ) ; g l T r a n s l a t e d ( f l o a t ( i ) +0.5, f l o a t ( j ) +0.5, 0. 0 ) ; glrotated (45, 1, 1, 1) ; glutsolidteapot (0.4) ; glpopmatrix ( ) ; } } 20 / 25

OpenGL 조명 - 점광원 구현 1/2 [[광원과 재질의 색상 설정]] // 광원의 위치를 설정한다. // 광원의 좌표 가운데 w 성분이 1로 설정되어 있다 // 디스플레이 콜백에서 광원의 위치를 바꾸지만, w 좌표는 변경하지 않는다 G L f l o a t l i t p o s i t i o n [ ] = { 0. 0 f, 0. 0 f, 0. 0 f, 1.0f } ; // void void SetLight () { 이전 코드와 동일 light position } i n i t ( void ) { [[윈도우, 버퍼 초기화, 카메라 설정 등의 초기 작업]] SetLight () ; } void display () { // [[버퍼 지우기, 모델뷰 행렬 모드 설정, 카메라 위치 설정 등 수행]] s t a t i c f l o a t t = 0. 0 ; t +=0.01; // 광원의 위치를 설정함. w 좌표는 1로 고정하고 회전하도록 함 l i t p o s i t i o n [ 0 ] = 5.0 sin ( t ) ; l i t p o s i t i o n [ 2 ] = 5.0 cos ( t ) ; g l L i g h t f v ( GL LIGHT0, GL POSITION, l i t p o s i t i o n ) ; f o r ( i n t i =0; i <10; i ++) { f o r ( i n t j =0; j <10; j ++) { glpushmatrix ( ) ; g l T r a n s l a t e f ( i 4.5, j 4.5,0) ; g l u t S o l i d S p h e r e ( 0. 5, 30, 30) ; glpopmatrix ( ) ; } } // [[광원의 위치 등을 표시하여 확인할 수 있도록 함]] glutswapbuffers () ; } 21 / 25

OpenGL 조명 - 점광원구현 2/2 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 22 / 25

OpenGL 조명 - 집중광원에필요한요소 GL SP OT CUT OF F light source GL SP OT DIRECT ION 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 23 / 25

OpenGL 조명 - 집중광원 1/2 // 집중 광원의 방향으로 사용될 데이터를 준비한다 GLfloat spotdir [ ] = { 0.0 f, 0.0 f, void 1.0 f }; SetLight () { g l E n a b l e ( GL LIGHTING ) ; g l E n a b l e ( GL LIGHT0 ) ; // s e t m a t e r i a l p r o p e r t i e s g l M a t e r i a l f v (GL FRONT, GL DIFFUSE, m a t d i f f u s e ) ; g l M a t e r i a l f v (GL FRONT, GL SPECULAR, m a t s p e c u l a r ) ; g l M a t e r i a l f v (GL FRONT, GL AMBIENT, mat ambient ) ; g l M a t e r i a l f v (GL FRONT, GL SHININESS, m a t s h i n i n e s s ) ; // s e t l i g h t g l L i g h t f v ( GL g l L i g h t f v ( GL g l L i g h t f v ( GL properties LIGHT0, GL DIFFUSE, l i t d i f f u s e ) ; LIGHT0, GL SPECULAR, l i t s p e c u l a r ) ; LIGHT0, GL AMBIENT, l i t a m b i e n t ) ; // 집중광원에 필요한 데이터를 설정한다 g l L i g h t f ( GL LIGHT0, GL SPOT CUTOFF, 2 0. 0 f ) ; g l L i g h t f v ( GL LIGHT0, GL SPOT DIRECTION, s p o t D i r ) ; // Exponent 집중광의 테두리를 부드럽게 한다. 자세한 내용은 Reference API 등을 참고하라 g l L i g h t f ( GL LIGHT0, GL SPOT EXPONENT, 2 0. 0 f ) ; } 24 / 25

OpenGL 조명 - 집중광원 2/2 강영민 ( 동명대학교 ) 3D 그래픽스프로그래밍 2015 년 2 학기 25 / 25