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

60.분산광 조명

by 민돌이2 2022. 3. 2.

거친 표면의 한 점에 조명을 비추면 광선들이 다양한 무작위 방향들로 흩어질 것이다. 이를 분산 반사(diffuse reflection)라고 부른다.

분산광의 계산은 두 부분으로 나뉜다.

  1. 분산광의 색과 표면의 분산광 재질 색상을 조정한다.
  2. 반사광의 세기를 람베르트의 코사인 법칙에 의거해서 조정한다.

첫 번째는 분산광 재질 색상을 표면이 입사 분산광을 얼마나 반사하고 흡수하는지를 의미한다. 예를 들어 표면의 한 점이 분산광의 반사율이 적색광은 50%, 녹색광은 100%, 청색광을 75%이고 분산광의 세기가 80%인 백색광 즉, 적녹청 모두 80%인 빛이 들어온다고 가정했을때, 입사 분산광 ld = (0.8, 0.8, 0.8)이고, 분산광 재질 색상은 md = (0.5, 1.0, 0.75)가 된다. 이때 반사된 분산광은 다음과 같다.

 

두 번째는 빛 벡터와 표면 법선의 각도에 따라 반사광의 세기를 조율하는 것을 의미한다. ld가 분산광 색상이고 md가 분사광 재질 색상, L이 빛 벡터이고 n이 표면 법선벡터라고 할 때, kd = max(L · n, 0)이라고 하자. 이때 반사된 분산광은 다음과 같다.

728x90

댓글