IDL/Object Graphics

Object Graphics in IDL [17]

이상우_IDL 2010. 12. 27. 14:10
728x90

투영(Projection)

앞서 뷰포트에 관한 설명을 통하여, 뷰포트라는 것은 3차원 공간상에 존재하는 하나의 큐브와 같다고 하였다. 물론 이전 글에서 설명한 내용은 마치 2차원 공간상의 평면이라는 관점에서만 본 것이 사실이다. 즉, 큐브를 정면에서 바라보면 2차원적인 평면만이 보이기 때문이다. 하지만, 이러한 3차원 공간상의 뷰포트라는 큐브를 우리가 정면에서 바라보게 될 때, 어떠한 모습으로 보이게 될 것인가를 결정하는 요소가 바로 이 투영 또는 투영법(Projection)이라 할 수 있다. 3차원 공간상의 위치를 2차원 평면상의 위치로 변환하는 것이다. 어차피 사람의 눈은 3차원 개체라 하더라도 일단 2차원 평면상에 투영된 모습으로 보기 때문이다. 대략적으로는 마치 미술에서 얘기하는 원근법과 비슷한 개념이라고 이해하면 좋을 것 같다. IDL에서는 평행(Parallel) 및 원근(Perspective) 두 종류의 투영법이 있다.

  1. 평행 투영 (Parallel Projection)

다음 그림과 같이 평행광선을 따라 투영하는 방법을 뜻한다. 이 경우, 크기는 같으나 위치가 다른 두 객체는 2차원 평면상에서는 같은 크기(W)로 그려지는 것을 볼 수 있다.

뷰 객체를 처음 만들면 기본적으로 이 투영법을 사용하도록 되어있다. 만약 이 설정을 직접 하려면 다음과 같이 SetProperty 메서드에서 PROJECTION이라는 키워드에 1이란 값을 부여하면 된다.

myView -> SetProperty, PROJECTION=1

  1. 원근 투영 (Perspective Projection)

다음 그림과 같이 관찰자의 눈을 중심으로 하여 방사상으로 퍼져나가는 광선을 따라 투영하는 방법을 뜻한다. 이 경우, 멀리 있는 객체일수록 2차원 평면상에서 더 작게 보여지는 효과가 나타난다. 따라서 이 그림에서는 두 객체의 크기가 서로 다르게(W1, W2) 보이는 것이다.

이 투영법을 사용하려면 PROJECTION 키워드에 2라는 값을 부여하면 된다.

myView -> SetProperty, PROJECTION=2

참고로, 뷰 평면(Viewplane)이라는 것은 3차원 공간상의 객체가 투영되어 나타나는 평면을 뜻하며, 이 평면상에서 X 및 Y 축이 존재한다. 즉 앞서 소개된 뷰포트가 존재하는 평면이라고 볼 수 있다. 그리고, 관찰자의 눈으로부터 이 뷰 평면을 수직으로 통과하는 시선방향이 바로 3차원 공간상의 Z축이 된다. 뷰 평면을 가로지르는 부분이 바로 기준이 되며, 이보다 앞이면 (+)가 되고 뒤면 (-)가 된다는 사실을 잘 기억해두자.

소개된 두 투영법 중 어느 것을 사용하는 것이 좋을지는 상황에 따라 다를 것이다. 구현될 그래픽 결과물에서 관찰자의 눈으로부터 객체까지의 거리가 얼마나 중요한 요소가 되느냐가 결국은 적절한 투영법을 결정하는 관건이 될 것이다.

LIST

'IDL > Object Graphics' 카테고리의 다른 글

Object Graphics in IDL [19]  (0) 2011.01.04
Object Graphics in IDL [18]  (0) 2010.12.31
Object Graphics in IDL [16]  (0) 2010.12.15
Object Graphics in IDL [15]  (0) 2010.12.10
Object Graphics in IDL [14]  (0) 2010.12.06