본문 바로가기

개발/컴퓨터 그래픽스

컴퓨터 그래픽스 : 입체각(Solid Angle)

이 글은 수학적으로 정확한 정의를 알려주기보다는, 직관적인 이해를 돕기 위해 작성한 글입니다. 그 점 양해부탁드립니다.

 

컴퓨터 그래픽스에 대해서 공부하다 보면, 입체각에 대한 이야기가 많이 나옵니다. 이 입체각은 기존의 평면에 존재하는 평면각과는 달리 입체 공간에서 각도를 표현하기 위해서 사용되는 개념입니다. 

 

입체각에 대해서 직관적으로 이해하기 위해서는, 평면각에 대한 직관적인 이해가 필요합니다. 그렇다면 평면각을 직관적으로 이해해봅시다.

 

그림 1) 평면각

 

평면각전체 원의 호의 길이와 각도 θ가 이루고 있는 호의 길이의 비율을 나타냅니다. 위 그림에서는 원이 반지름이 1인 단위원이라고 가정을 한다면, 전체 원의 호의 길이는 가 되고, θ가 이루고 있는 호의 길이는 θ가 됩니다. 즉 위 그림의 평면각은 아래와 같습니다. 

(θ / 2π) x 단위

만약, 라디안 단위로 표현하고 싶다면 단위를 2π, 각도 단위로 표현하고 싶다면 단위를 360으로 치환하면 됩니다. 라디안으로 표현하게 된다면 2π가 소거되므로 최종적인 평면각은 θ가 됩니다. 

 

그렇다면 입체공간에서 각도를 표현하기 위해서 사용되는 입체각은 어떻게 표현될까요? 위에서 본 평면각의 직관적인 이해를 그대로 입체각으로 치환하면 입체각에 대한 직관적인 이해를 하는데 도움이 됩니다. 

 

평면에서는 원의 표면을 표현할 수 있는 것이 호였지만, 입체에서는 구의 표면을 표현할 수 있는 것은 호가 아닌 면적이 됩니다. 즉 입체각전체 면적의 넓이와 각도 ω가 이루고 있는 면적의 넓이의 비율을 나타냅니다. 

 

그림 2) 입체각

 

위 사진의 구가 반지름이 1, 입체각 ω가 이루고 있는 면적의 넓이를 A라고 가정을 합니다. 그렇다면 단위구의 전체 면적의 넓이는 4π가 됩니다. 평면각과 마찬가지로 전체 구의 면적과 입체각 ω가 이루고 있는 면적의 넓이의 비율이 입체각이 되고, 아래와 같습니다.

(A / 4π) x 단위

입체각에서의 단위는 스테라디안(㏛)이란 단위를 사용합니다. 

 

위의 표현에서는 반지름의 길이가 1인 단위구를 사용했기때문에, 입체각 공식에 반지름의 길이가 1로 소거되어서 나타나지 않습니다. 하지만 반지름의 길이를 공식에 나타내고 싶을 때는 위와 다른 관점으로 표현하게 된다면, 입체각 공식에 반지름을 표현할 수 있습니다.

 

 

그림 3) 입체각 2

 

그림 3은 면적 A가 반지름이 r인 구 위에 나타나는 면적이고 단위각 ω는 A가 단위구에 투영된 면적의 크기입니다. 이 관점에서 단위각 ω를 구하기 위해서는 단위각 ω와 면적 A의 비율을 구하면 됩니다. 단위각 ω를 구하는 방법은 아래와 같습니다.

ω / A = 4 x π x 1^2 / 4  x π x r^2,
ω = A / r^2 x ㏛

 

이렇게 구한 입체각들은 어디서 활용될까요? 그 분야는 다양하겠지만, 컴퓨터 그래픽스에서는 대표적으로 한 점에 들어오는 빛의 총량을 계산할 때 사용됩니다. 

 

평면 위에 점 p의 색을 계산하기 위해서는 점 p에 도달하는 모든 빛을 계산해야합니다. 이런 모든 빛을 계산할 때 입체각을 활용할 수 있습니다(이 과정은 매우 간략한 설명이며, 실제로는 고려해야하는 부분이 많습니다).

 

그림 4) 반구 입체각

 

위 그림에서 점 p는 반구가 감싸고 있습니다. 또한 이 반구의 표면에는 미소 입체각인 dω가 있습니다. 이 dω를 반구의 범위에 적분을 하게 된다면 점 p에 들어오는 빛의 총량을 계산할 수 있습니다. 

 

이제 우리는 입체각에 대해서 알아보았고, 입체각이 컴퓨터 그래픽스 분야에서 어떻게 활용되는지도 배웠습니다. 이제는 미소 입체각 dω를 구하는 방법에 대해서 설명하겠습니다.

 

 

그림 5) 미소 입체각

 

미소 입체각은 입체각을 표현하는 두번째 방법가 비슷합니다. 입체각을 구하는 두번째 방법은 아래와 같았습니다.

ω = (A / r^2)㏛

이제 위의 공식을 그림5에 맞춰서 조금 수정만 해주면 됩니다. 각도 θ는 dA의 법선벡터와 선분 r 사이의 각도를 나타냅니다. 그러므로 dA에 cosθ를 곱하게 된다면 입체각 dω와 같은 방향을 향하고 있는 dA의 크기를 구할 수 있습니다. 그렇다면 최종적인 dω는 아래와 같습니다

dω = (dA x cosθ / r^2)㏛

다음은 미소 입체각 dω를 구좌표계로 표현하는 방법에 대해서 알아보겠습니다. 

 

그림 6) 미소 입체각 구좌표계

 

미소 입체각 dω는 넓이를 나타내기 때문에, 구좌표계로 표현되는 dω의 넓이를 구한다면 구좌표계로 표현되는 미소 입체각 dω를 구할 수 있습니다.

 

그렇다면 dω의 세로 길이부터 구해봅시다. 미소 입체각 dω의 세로 길이는 dθ가 이루고 있는 호의 길이를 구하면 됩니다. 단위구는 반지름이 1이기 때문에 dθ가 이루고 있는 호의 길이는 1 x dθ = 가 됩니다. 

 

다음은 dω의 가로 길이를 구해봅시다. dω의 가로 길이는 dΦ가 이루고 있는 호의 길이를 구하면 됩니다. 세로의 길이와 달리 dΦ가 이루는 호는 반지름이 1이 아닌 각도 θ에 종속된 반지름을 가지고 있습니다. 이 반지름은 각도 θ가 0일 때는 0이고 θ가 90º일 때 반지름은 반구의 반지름과 같은 r일 것입니다. 즉 이 반지름은 sinθ의 비율을 가지고 있습니다. 그렇다면 dΦ가 이루는 호의 반지름은 r x sinθ이고 이 반구는 단위구이므로 최종적인 호의 반지름은 sinθ입니다.

 

그렇다면 dΦ가 이루는 호의 길이는 sinθdΦ가 됩니다. 그러면 최종적인 dω의 면적은 아래와 같습니다.

dω = sinθdθdπ

입체각에 관련된 유용한 사실 하나는 아래와 같습니다.

 

$$\int_{2\pi} {\cos{\theta}dw} = \pi$$