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

59.람베르트의 코사인 법칙(Lambert's cosine law)

by 민돌이2 2022. 3. 2.

표면에 입사하는 빛이 수직에 가까울 수록 빛이 더 강하게 들어온다.

이로부터, 정점 법선과 빛 빅터(light vector) 사이의 각도에 기초해서 빛의 세기를 반환하는 함수를 구현할 수 있다. 정점 법선과 빛 벡터가 정확히 같은 방향일 때 최대값이어야 하며, 정점 법선과 빛 벡터의 각도가 커짐에 따라 점차 감소해야 한다. 또한 θ > 90°이면 빛이 표면의 뒤쪽을 비추는 것이므로 빛의 세기는 0이어야 한다. 람베르트이 코사인 법칙에서 이 함수를 유도할 수 있다.

위 공식에서 L은 빛의 벡터이고 n 정점 법선벡터이고, 둘 다 단위벡터이다. θ의 변화에 따라 빛의 세기가 0.0에서 1.0으로 변하는 그래프는 아래와 같다.

728x90

'서적 정리 > DirectX11을 이용한 3D 게임 프로그래밍 입문' 카테고리의 다른 글

63.조명 중간 정리  (0) 2022.03.03
62.반영광 조명  (0) 2022.03.03
61.주변광 조명  (0) 2022.03.02
60.분산광 조명  (0) 2022.03.02
58.법선 벡터(Normal Vector)  (0) 2022.03.01
57.빛과 재질의 상호작용  (0) 2022.03.01
56.Direct3D의 그리기 연산 요약  (0) 2022.02.21
55.동적 정점 버퍼  (0) 2022.02.15

댓글