표면에 입사하는 빛이 수직에 가까울 수록 빛이 더 강하게 들어온다.
이로부터, 정점 법선과 빛 빅터(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 |
댓글