본문 바로가기
서적 정리/DirectX11을 이용한 3D 게임 프로그래밍 입문

62.반영광 조명

by 민돌이2 2022. 3. 3.

매끄러운 표면을 때린 광선들 중 시점을 향한 반사 원뿔(cone of reflectance)에 속하는 광선들은 눈에 뚜렷하게 인식된다. 이런 현상을 반영 반사(specular relection) 혹은 거울반사라고 부른다. 분산광과는 달리 반영광은 특정 방향으로 반사되는 빛이므로 시점에 따라서는 인식되지 않을 수 있다. 즉, 반영광 조명 계산은 시점에 의존적이다.

반영관이 반사되는 영역인 원뿔은 반사 벡터 r에 대한 각도 Φmax로 정의된다. 반영광의 세기는 반사 벡터 r과 시점 벡터 v 사이의 각도 Φ에 따라 변한다. 결론은, Φ = 0 일 때 최대이고, Φ가 Φmax에 가까워짐에 따라 점차 0으로 감소한다.

이 그래프는 반사 벡터 r과 시점 벡터 v사이의 각도 Φ에 따른 빛의 세기 그래프이다. 그래프를 보면 지수에 따라 빛의 세기의 기울기가 달라지는 것을 알 수 있다. 즉, 지시를 매개변수로 조정함으로써 표면의 광택도(shiness)를 조정할 수 있다. r과 v는 단위벡터이므로 cos(Φ) = v · r임을 잊지말자.

 

한 점에서 반사되어 시점으로 들어오는 반영광의 양은 아래와 같다.

색상 ls는 광원이 방출하는 반영광의 양이다. 반영광 재질 색상 ms는 표면이 반사하는 입사 반영광의 양이고, 계수 ks는 반영광 세기를 r과 v사이의 각도에 따라 비례하는 변수이다. L은 빛 벡터, n은 정점 법선 벡터이고 둘의 내적이 0보다 작다는 것은 빛이 표면의 뒤를 비췄을 때이다. 물체 뒤를 비추고있는데 반영광이 보이는 일은 없어야하므로 0으로 설정한다.

다음은 반영광 항을 도입한 새로운 조명 방정식이다.

728x90

댓글