Lecture #9 제 6장. 음영법(Shading).

Slides:



Advertisements
Similar presentations
제 2 의 신세계푸드 가능성.  롯데그룹의 전략 ◦ 롯데제과 : 해외진출, 롯데삼강 : 종합식품회사 ◦ 그룹 인수와 관련 있을 것으로 판단됨  롯데삼강의 리스크 적은 고성장 예상 ◦ 롯데그룹 식자재 납품  롯데호텔 식품첨가물 사업부 인수  엔젤리너스 / 롯데칠성음료.
Advertisements

사 진 성명 학교 휴대폰 전공 / 학년 / 학번 ●교내 외 활동내역 활동명활동기간주요내용 ●공모전 수상경력 년 월 일년 월 일내 용내 용시행처 재학 / 휴학 본 주소 ※ 공모전 수상경력은 참고사항일 뿐 평가에 반영되지 않습니다 수상내용 생년월일 SNS/ 미니홈피.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
1. 던전 디자인 개요_1 1. ‘던전’ 룬스톤은 던전 한 층에도 여러 개가 존재하며, 각 룬스톤 마다 영향을 미치는 범위가 설정되어 있다. 룬스톤이 영향을 주는 범위에 일정시간 사용자가 위치해 있게 되면 사용자 캐릭터는 ‘유령화’ 되어 버리기 때문에, 사용자는.
The Beginning Of Light Skeaker mgun
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
제 11 장 구조체.
CG Programming (Modeling)
CG Programming (Modeling)
163535/A25002 컴퓨터 그래픽스 Chap 6. Shading Copyright ⓒ 2001 N Baek.
컴퓨터 그래픽스 연구회지 2000년 5월 발표자 : 이영건 날짜 :
Chapter 10. Illumination Models and Surface-Rendering Methods
10장. 조명과 음영 학습목표 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
Deferred Shading (지연 세이딩)
OpenGL 시작하기.
OpenGL 발표일 : 발표자 : 조윤혜.
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
블렌딩 안티앨리어싱, 안개효과 그리고 폴리곤 오프셋
Rectangular도파관 공동공진기구현
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
Chapter 5. 라이팅(Lighting)
7장 디스플레이 리스트.
음 영 (Shading).
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환
태양계 시뮬레이션 팀 명: 복학생 강유진 박지혜.
Part 08 함수 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
OpenGL Project (3D 움직이는 자동차)
기초 이론.
Sang Il Park Sejong University
그래픽스 시스템과 모델.
음영법 최 수 미
10 Three-Dimensional Object Representations  고려대학교 컴퓨터학과 김 창 헌.
openGL Project 결과보고서 야구 시구 시뮬레이션
Homework Hierarchical bounding volume
7. 자극과 반응 7-2. 신경계 3. 여러 가지 반응.
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
1장 그래픽스 시스템과 모델-이미지 형성, 모델, 구조
Kyoungju Park Computer Graphics Kyoungju Park
렌더링.
Hanyang University Jungsik Park
5주차: Functions in C.
기업지원 제도 주요 내용 안산고용센터 기업지원팀.
OpenGL PROJECT 우광식 성기영 서창수 이인주.
openGL Project 제안서 비 오는 정류장에서
5장. 오픈지엘 기본틀 학습목표 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환
프 레 임 버 퍼.
핸드폰 시뮬레이션 김 형 도 송 미 경.
광원 제어 하기.
가상현실연구실 박정식 증강현실 예제 가상현실연구실 박정식
제 5장 저항·코일·콘덴서 5-B 김영두·박은정·정진구 전기전자기술.
Draw the basic Geometry Objects
게임 || 충돌. 돼지고기(구경원) 구제역아 물러가라..
알아야 할 것들.
Chapter 4 컬러( COLOR ).
Power Point 2007년 정보화교육 원미구청 총무과 통신전산팀.
빛의 반사 Mount Hood reflected in Mirror Lake, Oregon
게임수학 제 7 장 조명.
Part III 애니메이션 Chapter 9 곡선.
openGL Project 제안서 - 해상 전투
OpenGL Project.
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
직장생활 예절 ① - 인사 1.내가 먼저 [인사의 5point] 2.상대방의 눈을 보고 미소지으며 3.상대방에 맞춰서
인센티브(성과급)재원산출방식 자료제공; 달란트HR컨설팅
① 단산 O/H CONSOLE ② 양산 O/H CONSOLE
국어지도 유아교육과 권수연 김아람 중등특수교육과 박수진 양한솔
Ray Casting 발표자 : 박 경 와
삶을 낭비하지 말라 친구초청잔치 준비 설교 I 울산시민교회 비전틴(고등부)
9장 부프로그램 순천향대학교 컴퓨터공학부 하 상 호.
Presentation transcript:

Lecture #9 제 6장. 음영법(Shading)

개 요 음영이 없으면 3차원 물체도 2차원 이미지로 보일 수 있다 빛과 면사이의 상호 관계를 모델에 추가 광원의 모형 광-재질 상호 작용의 모형 국지적 조명 모델만 고려  전역적 조명 모델

강의 내용 조명과 재질 광원 Phong 반사 모형 벡터의 계산 다각형 음영 OpenGL의 광원 OpenGL에서 재질의 지정 순환적 분할에 의한 구의 근사 구 모델의 음영 처리 - Layman’s physics

조명과 재질 단순화 단순화 조명과 반사를 물리적으로 완전히 모델링 하는 것은 불가능 전역적 방법으로 근사(광선 추적, 방사성 기법) : 그래픽스 파이프라인에 부적합 단순화 국지적 조명 모델(Phong 반사모형 등) : 물리적 정확성과 계산효율의 절충 - 훌륭한 사진작가를 ‘빛의 마술사’라 부름. A와 B 사이에 무수한 반사작용이 발생 모델링 불가능 단순화가 필요

조명 모형 전역적 모형 국지적 모형 광원과 표면 사이의 다중 상호 작용 고려 방사성 기법, 광선 추적 기법 등 광원과 표선 사이의 단일 상호 작용만을 고려 표면상의 한 점과 광원 사이의 상호작용은 다른 표면상의 점들에 독립적 두개의 모형으로 구성 광원 모형 : 장면에서 사용하는 광원을 모델링 반사 모형 : 장면의 반사면과 빛 사이의 상호작용을 모델링

빛과 표면 인간 광원의 색 객체 표면의 색

많은 광선들은 투영면의 절단 사각형을 통과하지 않음 빛, 표면과 컴퓨터 이미지 컴퓨터 많은 광선들은 투영면의 절단 사각형을 통과하지 않음 관측자를 투영면으로 대치

표면의 종류 전반사면 난반사면 반투명면

광 원 광원 : 위치 (x, y, z) , 방향 (,  ), 파장  조도함수 : I ( x, y, z, , ,  ) 일종의 vector field를 이룸.

백열 전구 광원  I ( x, y, z, , ,  ) 광원에 의한 총 기여도 : 계산이 어려움 : 단순화된 광원 모델이 필요

색광원 광원은 주파수 의 연속함수이지만 단순한 R-G-B모형을 사용한다.

광원의 종류 1) 주변광(ambient light) 2) 점광원(point source) 3) 집중광선(spotlight) 4) 원거리 광원(distant light)

주변광 균일한 조명 실내의 객체들간의 다중 상호작용에 의해 형성된 조명을 모델 객체의 모든 점에서 동일한 세기의 빛을 받음 주변광(Ambient Light) 환경 내의 각 점에서의 주변 광도를 정의

점광원 (1) 모든 방향으로 균일하게 빛을 방사 조도는 거리의 제곱에 반비례

점광원 (2) 대비가 큰 이미지가 만들어진다 실제의 광원은 유한한 크기를 가지고 있으므로 좀 더 부드러운 이미지가 만들어진다 주변광을 사용하여 높은 대비 효과를 완화시킬 수 있다 부드러운 조명을 위해 거리항을 수정 암영부 반영부

집중광선 (1) f I  cos 가 감쇄도를 제어) ( e e : 집중광선 지수 f 작은 각도로만 빛을 방출 Is S 가 180이면 점광원이 됨 가 감쇄도를 제어) ( e f I  cos e : 집중광선 지수

집중광선 (2) 두 단위 벡터가 주어졌을 경우 cos 값 계산

원거리 광원 점광원 원거리 광원 표면상의 각 점으로부터 광원으로의 방향을 계산해야 함 (많은 시간 소요, 보다 좋은 화질) 방향을 한번만 계산(빠른 계산, 화질이 떨어짐) 광원의 위치 광원의 방향 각 점에 대한 방향 동일 점광원 원거리 광원

Phong 반사 모형 (1) 물리적 정확성과 계산효율의 절충 모형 법선벡터 관측자 광원 완전 반사 방향 그래픽스 파이프라인에 적합 실시간으로 음영 효과를 생성 사용자가 장면을 효과적으로 제어 가능 Phong 모형에서 사용되는 벡터들 광원 법선벡터 관측자 완전 반사 방향

Phong 반사 모형 (2) 세가지 광-재질 상호 작용 지원 주변광 반사 난반사 전반사 각 광원이 삼원색에 대하여 별도의 주변광 성분, 난반사광 성분, 전반사광 성분을 갖는다고 가정

Phong 반사 모형 (3) 표면 점 p에서 i번째 광원에 대한 조도 행렬 반사항 행렬 - 각 점에서 재질, 표면방향, 광원 방향, 관측자와의 거리에 의존

계산이 각 광원, 각 원색에 동일하므로 간단히 표현 Phong 반사 모형 (4) 광원 i에 의한 점 p에서의 적색 세기 모든 광원의 기여도 전역적인 주변광 계산이 각 광원, 각 원색에 동일하므로 간단히 표현

주변반사(ambient reflection) 주변광의 세기 는 표면의 모든 점에서 같다 반사계수

난반사 정오에 더 밝음 일출과 일몰에 어두움 거친 표면 관측각도에 무관 반사되는 양은 광원의 방향에 의존적

난반사의 수학적 규정 (1) Lambert 의 법칙

난반사의 수학적 규정 (2) 거리 d에 의한 감쇄를 포함하면

전반사 (1) 매끄러운 표면 반사가 일정 방향으로 됨 관측자의 위치에 따라 반사량이 다름 전반사의 입사각과 반사각이 같음

전반사 (2) : 광택 계수

Phong 반사 모형 예 Phong 모형에 의한 렌더링 - 재질 특성을 이용하여 각 찻잔이 다르게 보임

곡면을 다강형의 집합으로 렌더링 함으로써 속도 향상 다각형 음영 세 가지 음영법 1) 평면 음영법 2) Gouraud 음영법 3) Phong 음영법 곡면을 다강형의 집합으로 렌더링 함으로써 속도 향상

각 다각형에 대해서 음영계산이 한번만 이루어짐 평면 음영 (균일 음영) 가정 원거리 관측자 원거리 광원 n, l, v : 상수 각 다각형에 대해서 음영계산이 한번만 이루어짐

평면 음영 glShadeModel (GL_FLAT) 다각형의 첫번째 정점의 법선을 사용한다 문제점 : 다각형 경계선이 뚜렷하다

Mach 띠(band) 인간의 시각 시스템의 측면 금제(Lateral Inhibition) 특성 빛의 세기 차이에 민감하게 반응 눈의 추상체와 시신경이 연결되는 방법에 기인 이러한 특성을 극복하기 위해서는 부드러운 음영 처리 기술이 필요

보간 음영과 Gouraud 음영 다각형 내의 각 화소에 대한 음영을 개별적으로 계산하는 것은 많은 시간이 소요된다 각 정점에 대해서 인접한 다각형들을 찾아 다각형들이 공유하는 정점을 정의 그 정점에서 법선(다각형들의 법선 평균)을 계산 그 정점에서의 음영 계산 다각형 내의 각 화소에 대해서 음영을 보간 보간법 이용

보간 음영과 평면 음영                                                         glShadeModel(GL_FLAT) glShadeModel(GL_SMOOTH)

각 정점에서 법선의 계산

보 간 정점들의 광도를 보간 n1 => L1 n2 => L2 n4 => L4 n3 => L3 L = interpolate (L1, L2, L3, L4)

메쉬 자료구조 정점에 이웃한 다각형들을 찾을 수 있도록 하는 자료 구조

Phong 음영법 알고리즘 더 많은 계산량, 하드웨어 구현이 더 어려움 각 정점에 대해서 다각형 내의 각 화소에 대해서 인접한 다각형들을 찾는다 그 정점에서의 법선을 계산 다각형 내의 각 화소에 대해서 법선을 보간 음영을 계산 더 많은 계산량, 하드웨어 구현이 더 어려움

법선의 보간

OpenGL의 광원 (1) 8개 까지의 광원을 허용 각 광원별로 광원의 위치 또는 방향 주변광, 난반사광, 전반사 광원의 세기 지정 glLightfv(source, parameter, pointer_to_array); glLightf(source, parameter, value); 광원의 위치 GLfloat light_0_pos[] = {1.0, 2.0, 3.0, 1.0}; GLfloat light_0_dir[] = [1.0, 2.0, 3.0, 0.0}; 광원의 방향

OpenGL의 광원 (2) GLfloat light_0_pos[] = {1.0, 2.0, 3.0, 1.0}; GLfloat light_0_dir[] ={ 1.0, 2.0, 3.0, 0.0}; GLfloat diffuse_0[] = {1.0, 0.0, 0.0, 1.0}; GLfloat ambient_0[] ={ 1.0, 0.0, 0.0, 1.0}; GLfloat specular_0[] = {1.0, 1.0, 1.0, 1.0}; glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light_0_pos); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient_0); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_0); glLightfv(GL_LIGHT0, GL_SPECULAR, specular_0); 각 광원 종류별 세기 조명 활성화 첫번째 광원 활성화

OpenGL의 광원 (3) 전역적 주변광 거리항 의 상수 값 설정 GLfloat global_ambient[] = 0.1, 0.1, 0.1, 1.0; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient); 거리항 glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, a); glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, b); glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, c); 의 상수 값 설정

OpenGL의 광원 (5) 점광원 지정 : 디폴트는 원거리 광원 전면과 후면 모두 렌더링 glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); 전면과 후면 모두 렌더링 glLightModel(GL_LIGHT_MODEL_TWO_SIDED, GL_TRUE);

glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, int a) 전반사의 광택계수 지정 전반사의 광택계수 지정 1  a  128 glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, int a) a = 2.0 a = 25.0

glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, float degree) 전반사의 범위 지정 glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, float degree) 0  degree  90 degree = 10.0 degree = 30.0

OpenGL에서 재질의 지정 (1) 재질 지정 함수 표면의 반사 계수 glMaterialf(face, value); 예) glMaterialfv(face, type, pointer_to_array); glMaterialf(face, value); 예) GLfloat ambient[] = 0.2, 0.2, 0.2, 1.0; GLfloat diffuse[] = 1.0, 0.8, 0.0, 1.0; GLfloat specular[] = 1.0, 1.0, 1.0, 1.0; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular); 표면의 반사 계수

OpenGL에서 재질의 지정 (2) 표면의 광택 지수 빛을 내는 표면 glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.0); 빛을 내는 표면 GLfloat emission[] = 0.0, 0.3, 0.3, 1.0; glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);

OpenGL에서 재질의 지정 (3) 재질 예 Material GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_SHININESS 결과 Brass 0.3294 0.2235 0.0275 1.0 0.7804 0.5686 0.1137 1.0 0.9921 0.9412 0.8078 1.0 27.89                        Bronze 0.2125 0.1275 0.054 1.0 0.714 0.4284 0.18144 1.0 0.3935 0.2719 0.1667 1.0 25.6 Chrome 0.25 0.25 0.25 1.0 0.4 0.4 0.4 1.0 0.7746 0.7746 0.7746 1.0 76.8

OpenGL에서 재질의 지정 (4) 재질 예 Copper 0.1913 0.0735 0.0225 1.0 0.7038 0.2705 0.0828 1.0 0.2568 0.1376 0.0860 1.0 12.8                        Gold 0.2473 0.1995 0.0745 1.0 0.7516 0.6065 0.2265 1.0 0.0.6283 0.5558 0.3661 1.0 51.2 Pewter 0.1059 0.0588 0.1137 1.0 0.4275 0.4706 0.5412 1.0 0.3333 0.3333 0.5216 1.0 9.85

순환적 분할에 의한 구의 근사 구는 그래픽스에서 중요한 기본 요소이다 GL 은 구를 지원하지 않는다 GLU -- 이차 곡면으로 지원 GLUT -- 다각형 근사로 지원 순환적 분할(recursive subdivision) 정 사면체로 시작 각 삼각형을 분할 정점들을 단위 구에 맞춤 16개의 삼각형이 됨 위의 과정을 n회 반복

구 모델의 음영 처리 평면 음영법 보간 음영법 삼각형의 세 점으로 법선을 결정 결정된 법선을 첫 번째 정점에 할당 삼각형의 각 정점에 대해 법선을 결정 삼각형의 각 정점의 음영을 계산 보간법에 의해 삼각형 내의 점에 대해 음영 계산