전공 지식 - 컴퓨터 그래픽스

Global Illumination

다른 물체들과의 상대적인 위치까지 고려하여 물체의 색을 결정하는 방법이다. 물체의 색이란 물체 위의 임의의 한 점에서 반사되어 눈으로 들어오는 빛(RGB)의 세기이다.
Local Illumination인 phong reflection model과는 달리 그림자, 반사, 굴절을 표현할 수 있다.

  • Ray tracing - specular effect 표현에 적합하다. 시점에 의존한다.(view dependent)
  • Radiosity - diffuse effect를 잘 표현한다. Specular effect는 무시된다. 시점에 의존하지 않는다.(view independent)

Foward ray tracing

레이 트레이싱에는 두 가지 종류가 있다.
Forward ray tracing은 광원으로부터 출발한 광자(photon)를 추적하여 피사체에 부딪혀 관찰자의 눈에 들어오는 것들을 계산하는 방식이다. 대부분의 photon들은 viewport 밖으로 나가버리기 때문에 이는 매우 비효율적인 방법이다.

Backward ray tracing

Ray tracing은 기본적으로 backward ray tracing을 가리킨다. COP로부터 출발하여 viewport의 각 픽셀을 통과하는 광선들만을 계산하면 불필요한 연산을 줄일 수 있다. 연산 과정은 다음과 같다.

  • 물체와 광선의 교점을 구한다. (P1, P2, P3, …)
  • Shadow ray 계산(trace)
  • Primary ray 계산(trace)
  • Secondary ray 계산(trace)

example

ray-tracing

  1. COP에서 임의의 픽셀을 통과하는 광선(ray)을 그린다. 이 광선을 primary ray라고 한다
  2. Primary ray와 도형의 교점(P1)을 구한다
  3. 점 P1에서 광원(L)까지의 광선과 도형의 교점(S)을 구한다(교점이 없을 수도 있다)
  4. 점 P1에서의 빛의 세기(색)을 결정하기 위해 phong reflection model을 적용한다
  5. 점 P1에서의 reflection effect를 더해주기 위해 reflection ray(P1P2)를 그린다(P2가 존재하지 않으면 해당 점에서의 반사 효과는 없다) relfection effect를 계산하기 위해 점 P2에서의 빛의 세기를 계산해야 한다(점에서의 빛의 세기를 계산하기 위해 다른 점에서의 빛의 세기를 구해야 한다)
  6. 점 P1에서의 굴절 효과(transparency effect)도 계산할 수 있다

reflection ray, transparency ray를 secondary ray라고 한다.

Intensity

피사체의 임의의 한 점에서의 빛의 세기 𝑰는 다음과 같이 계산한다. 공식

  • 𝑳 - 모든 광원 집합
  • 𝑆ᵢ - 광원이 다른 피사체에 의해 가려지는 것을 계산한다
    • 𝑆ᵢ = 0 - shadow ray가 다른 물체와 부딪히지 않는다(광원이 가려지지 않는다)
    • 𝑆ᵢ = 1 - shadow ray가 다른 물체와 부딪힌 경우(그 물체가 광원을 가린다)
  • 𝒌𝑠 - spcular coefficient(경면광 계수). 물체의 표면이 빛을 반사시키는 정도를 표현한다.
  • 𝒌T - transparency coefficient. 무체가 투명한 정도를 표현한다.
    • 𝒌T = 1 - 완전 투명함
    • 𝒌T = 0 - 완전 불투명함
    • 0< 𝒌T < 1 - 반투명

reference

Comments