• 검색 결과가 없습니다.

OpenGL 세미나 10장. 조명과 음영

N/A
N/A
Protected

Academic year: 2022

Share "OpenGL 세미나 10장. 조명과 음영"

Copied!
33
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

OpenGL 세미나 10장. 조명과 음영

IVIS 이영록

(2)

조명과 음영

• 렌더링 - 모델링된 물체 영상을 그려내는 것

• 와이어 프레임 렌더링

• 하드웨어적으로 처리속도가 빠르고 물체의 겉모습을 개략적 으로 파악하는 데는 별문제 없슴

솔리드 렌더링

• 조명이나 시점 등 물체를 둘러싼 복잡한 환경을 어떻게 모델 링할것인가가 관건

• 조명과 음영을 합쳐서 렌더링이라 부름

(3)

조명과 음영

• 모델링된 원구를 조명이 없는 상태에서 뿌리면 (a)와 같다.

• 3차원의 원구의 모습을 보이려면 (b)처럼 조명에 의해 물체 자체의 색을 드러내고 아울러 입체감을 주어야 한다.

(4)

조명모델

전역 조명 모델

물체면의 색은 다른 물체에서 반사되어 입사되는 빛까지 고려하여 결정

사실적으로 표현 가능

여러 물체에서 여러 번에 걸쳐 물체면에 반사된 빛까지 추적하는데는 수많 은 계산이 필요

컴퓨터 그래픽스로 표현하기 어려움

(5)

조명모델

지역 조명 모델

• 물체면의 색은 광원으로 부터 물체에 직접 부딪쳐 우리 눈에 들 어오는 빛만 고려

• 전역 조명 모델만큼 사실적 묘사를 하기는 어려움

• 상대적으로 처리속도 빠름

• OpenGL은 지역 조명 모델을 사용

(6)

광원과 물체 색

면적광원

표면위의 모든 점을 광원으로 보고 조명 계산

계산량면에서 불가능

점광원

빛이 한점에서 나온다고 간주

광원의 크기나 면적이 없고, 단지 위치만 정의

(a)처럼 광원의 크기가 상대적으로 매우 크다면 (b)처럼 여러개의 점광원으로 근사화

(7)

광원과 물체 색

• 위치성 광원 (옴니라이트)

• 광원으로부터 나가는 빛이 모든 방향으로 방사형으로 퍼져가는 광원

광원의 위치가 중요

• 주로물체로 부터 가까운 곳에 위치한 광원을 근사화시키는데 사 용

(8)

광원과 물체 색

• 방향성 광원(지향성 광원)

• 광원으로부터 나가는 빛이 일정한 방향으로 진행하는 광원

광원의 방향이 중요

• 상대적으로 먼 거리에 있는 광원을 근사화시키기 위해 사용

(9)

광원과 물체 색

스포트라이트

• 빛이 한 방향으로 비침

유한 거리에 존재

• 빛이 방사형으로 진행하나 일정한 각 범위내로만 제한

(10)

지역 조명 모델

(11)

물체의 색

• 물체의 색은 광원에서 나온 빛이 물체면과 상호 작용한 결과가 반사 되어 우리 눈에 와 닿는 세기 또는 밝기에 의해 결정

• 물체면의 색은 성분별로 반사된 R.G.B 각각의 세기를 모두 더하여 결정

(12)

조명관련 벡터

• 광원 벡터 L과 법선벡터 N이 단위벡터라면 입사각 θ의 코사인을 두 벡터의 내적으로 표현할 수있다.

(13)

조명모델

조명모델

• 광원, 물체면, 시점 등을 기준으로 어떤 빛의 성분들이 어느 정도 세기로 우리 눈에 도달할 것인지에 대한 방법론

• 조명 모델을 달리함으로써 최종적인 물체의 모습이 달라짐

• 일반적으로 주변광, 확산광, 경면광에 의한 모델링이 많이 사용 됨

(14)

주변반사(Ambient Reflection)

광원에 직접 노출되지 않는 면에 밝기를 부여하기 위함

B면은 광원에 노출되지 않으므로 표면에서 반사되는 빛이 없음

실제로는 반사광이 물체면에 입사함

주변의 반사광을 모두 추적하는 것은 매우 어려움

모든 물체면에 대해 상수크기로 밝기를 증가시킴(상수크기는 광원의 밝기에 정비례)

(15)

주변반사(Ambient Reflection)

빛의 세기는 D의 제곱에 반비례한다.

Ia는 물체면에 입사되는 입사광의 세기:광원의 세기에 비례

Ka는 주변광계수라 부리는 비례상수:이값을 변화시켜 주변 광의 세기를 조정

(16)

주변반사(Ambient Reflection)

• (a)는 주변광만 적용한 모습

• 주변광 계수를 증가시키면 모든 물체면의 밝기가 증가(입체감이 없슴)

• (b)다른 반사광과 함께 주변광을 적용한 모습

• 다른 반사광으로 원구의 물체면이 서로 다른 밝기를 지닌상태 에서 주변광계수 만큼 동일한 크기만큼 증가

(a)주변광 계수 증가 (b)여타 반사광 + 주변광 계수 증가

(17)

확산반사(Diffuse Reflection)

완벽확산체(난반사)

• 반사되는 빛이 거의 모든 방향을 향함

방향성 확산체

• 거의 일정한 방향을 향함

• 대부분의 물체면은 두가지 극단적인 경우 사이에 존재

완벽 확산체 방향성 확산체

(18)

확산반사(Diffuse Reflection)

• 면의 밝기는 광원 벡터와 법선 벡터가 이루는 각이 θ일때 cosθ에 비례

Id 물체면에 입사되는 입사광의 세기:광원의 세기에 비례

Kd는 확산계수라 불리는 비례상수(상수값을 변화시켜 확상광 조절 가능)

(19)

확산반사(Diffuse Reflection)

우상단 우측중앙 정중앙

• 광원과 면이 이루는 입사각에 따라 밝기가 다름

(20)

경면반사(Specular Reflection)

반질반질한 표면에 반사되는 빛을 경면광(거울면)

경면광에 의한 물체면의 색은 물체 자체의 색이 아님

경면광은 물체면이 반질반질하기 때문에 상호 작용 없이 광원에서 나오 는 빛의 색이 바로 반사

확산 확산+경면

(21)

경면반사(Specular Reflection)

경면반사 경면광의 분포

• 경면반사는 정반사(입사각과 반사각이 일치)

• 경면광의 세기(로우브)는 반사광 R을 중심으로 분포

• 경면광의 크기는 R 벡터와 V 벡터가 이루는 각의 크기에 반비례

(22)

경면반사(Specular Reflection)

퐁 반사 모델

로우브를 코사인 함수로 모델링

경면반사의 양을 cosθ로 간주(θ가 0일때 최대값 1, θ가 90일때 0)

cosθ의 승수를 광택계수라고 함(cosθ의 값은 0~1이라 누승할 수록 0에 근접)

매끄러운 물체일수록 광택 계수를 크게 함으로써 물체 하이라이트가 아주 좁게 관찰되게 함

코사인 법칙 광택 계수 증가에 따른 효과

(23)

경면반사(Specular Reflection)

Ks는 경면계수

Is는 광원의 경면광 세기

(24)

약화함수

• 빛의 세기는 거리의 제곱에 반비례

• 프로그램에서 실제 적용시 급격히 약해짐

• OpenGL에서는 위의 약화함수를 이용해서 빛의 세기를 조정

a=0, b=0, c= 1

a=.25, b=.25, c= .5 a=0, b=1, c= 0

(25)

물체면의 밝기

• 물체면의 밝기는 주변반사, 확산반사, 경면반사에 의한 반사광을 더해 결정됨

(26)

OpenGL에서의 밝기

지역 조명 모델을 적용하기 위해서 광원 특성에 관한 계수와 물체특성에 관한 계수로 나 뉘어짐

Ia, Id, Is등 광원 특성에 대한 계수는 주변광, 확산광, 경면광별로 광원의 세기를 나타냄

R, G, B별로 세분화되어 IaR, IaG, IaB로 표시

Ka, Kd, Ks등 물체 특성에 대한 계수는 주변광, 확산광, 경면광별로 반사계수를 나타냄

R, G, B별로 세분화되어 KaR, KaG, KaB로 표시

(27)

지역조명모델 알고리즘

For Each Object of the Scene { 모든 물체에 대해 For Each Polygon Mesh of the Object { 모든 다각형에 대해 Calculate N, L, V, R, D; 벡터 및 거리 계산 For Each Light Source { 모든 광원에 대해 For Ambient Reflection 주변반사에 대해 Calculate R, G, B Reflection Separately; 색별로 계산 For Diffuse Reflection 확산반사에 대해 Calculate R, G, B Reflection Separately; 색별로 계산 For Specular Reflection 경면반사에 대해 Calculate R, G, B Reflection Separately; 색별로 계산 Add R, G, B Colors Separately; 주변광, 확산광, 경면광을 합산 }

Add R, G, B Colors Separately; 모든 광원의 영향을 합산 }

}

(28)

음영

• 계산된 정점의 색상으로 부터 다각형 내부의 색을 칠하는 작업

(29)

플랫 셰이딩

• 주어진 하나의 다각형 전체를 동일한 색으로 칠함

빠르고 간단한 방법

• 경계선이 필요이상으로 뚜렷하게 보임(마하 밴드 효과, 일종의 착시)

(30)

구로 셰이딩

다각형 내부를 서로 다른 색으로 채움

정점의 법선 벡터는 인접면의 법선벡터의 평균을 구함

정점의 법선백터를 기준으로 조명모델에 의해 정점의 색을 구함(경면광은 제외)

구로 셰이딩은 하나의 다각형 내에서도 음영을 달리함(선형보간, 레스터 변환 시 이루어짐)

플랫 셰이딩 구로 셰이딩

(31)

구로 셰이딩

구로 셰이딩의 오류

• 정점의 둘러싼 양면에서 법선 벡터가 서로대칭

• 6개의 정점 벡터가 모두 동일

• 여전히 마하 밴드 현상이 나타남

(32)

퐁 셰이딩

• 정점의 색대신 법선 벡터를 보간

• 곡면을 복원(C`의 법선벡터가 C의 법선벡터와 동일)

법선벡터 보간 곡면의 복원

(33)

셰이딩 비교

플랫 셰이딩 구로 셰이딩 퐁 셰이딩

구로 셰이딩 퐁 셰이딩

참조

관련 문서

- 자유주의와 부르주아의 권력 도전을 방어 - 노동계급의 사회주의적 저항과 혁명을 방지 국가가 노동계급의 복지제공자 역할 수행 노동자는 군주에게

즉 , 주조색과 오브제의 어우러짐을 통하여 순수한 자연에서 전해오는 이 미지의 세계를 작품에 다시 환원시켜 잠재하고 있는 모든 가능성의 희망 을 되살리고자

 OpenGL is an acronym for Open Graphics Library5.  OpenGL Architecture

 트루디는 앨리스와 밥갂의 하자 없는 거래읶 것처럼 IPSec 접속을 설정핛 수 있음.  앨리스와 밥을 포함핚 모든 관찬자에게 하자가

• 태양계의 전반적인 위치와 공전 및 자전을 구현하고 텍스쳐 맵핑을 태양계의 전반적인 위치와 공전 및 자전을 구현하고 텍스쳐 맵핑을 이용하여 실제

예: 두 물체의 마찰 시 생겨나는 전하는 새로이 창조되는 것이 아니라 한 물체에서 다른 물체로 이동함에 의하여 나타나는 알짜전하

• Da war eine Mutter, die ihre sterbenden Jungen um sich zucken hatte und nicht auf die Verendenden, nicht auf die unerbittlichen steinernen Mauern, sondern in die leere

우리는 우리의 두뇌가 부드러운 쿠션이 될 것이며, 또 우리의 반독단주의가 관리들과 마찬가지로 배타적이며, 또 우리는 자유롭지 않기 때문에 자유를 외친다는 것을