Direct Graphics vs. Object Graphics [1]
그러면 먼저 IDL에서 Direct Graphics와 Object Graphics의 차이에 대하여 알아보기로 하자. 사실 어떤 IDL 지침서를 보면 Object Graphics에 대한 설명을 위하여 Object Oriented Programming, 즉 객체지향이라는 개념부터 시작하기도 한다. 그런데 아무래도 일반적인 IDL 사용자들의 입장에서는 이와 같은 다소 생소하고 난해한 개념으로 시작하기 보다는, 이미 기존에 익숙하게 사용해온 Direct Graphics 체계와의 비교를 통한 설명이 더 이해하기 용이한 방법이라고 생각한다.
일단 두 그래픽 체계의 특성들을 각각 요약해서 살펴보자. 좀 교과서적인 설명이라 다소 딱딱하게 느껴질지도 모르지만 마음 굳게 먹고 한번쯤은 읽어보길 권장한다.
1. Direct Graphics in IDL
(1) 특정한 그래픽 디바이스가 존재하며, 사용자가 원하는 디바이스에서 그림을 그린다. 디바이스의 선택은 set_plot이라는 명령으로 이루어진다. 예를 들어, 'X'는 X윈도우 시스템, 'WIN'은 MS의 윈도우 시스템, 'PS'는 포스트스크립트 시스템 등이 된다.
(2) 흔히 알려져 있는 plot, surface, tv, contour, xyouts 등과 같은 명령들은 모두 현재 설정된 그래픽 디바이스에 직접 그림을 그린다.
(3) 일단 그려진 최종그림은 다른 디바이스에서 바로 사용이 불가능하다. 즉, 다른 디바이스에서 같은 그림을 얻고자한다면원하는 디바이스로 변경한 후 똑같은 명령들을 반복 실행하여 그림을 다시 그려야만 한다.
(4) 이미 그려진 그림 상에 oplot, xyouts와 같은 명령들을 이용하여 다른 아이템을 추가하면, 기존 그림의 위에 그대로 그려지게 된다.
(5) 특정 세부사항을 변경하여 그릴 경우에도 그림은 처음부터 다시 그려야 한다. 예를 들어, plot을 하나 그렸는데 X축의 타이틀을 변경하려고 한다면, xtitle 키워드에 주어지는 문자값을 바꾸고나서 plot 명령을 다시 수행해야 한다. 당연히 그림은 처음부터 다시 그려진다.
2. Object Graphics in IDL
(1) 오브젝트 그래픽은 기본적으로 3차원 공간상에서 구현된다. 이를 3차원 렌더링이라 하는데, 벡터의 계산이나 광원효과 등과 같은 다이렉트 그래픽에서는 고려되지 않던 부분들이 추가적으로 필요하게 된다. 따라서 똑같은 그림을 다이렉트 그래픽에서보다는 오브젝트 그래픽 상에서 가시화하는 일이 신경쓸 것도 많고 시간도 더 걸린다.
(2) 오브젝트 그래픽은 디바이스에 구애받지 않는다. 현재의 그래픽 디바이스가 무엇인가는 중요하지 않다. 오브젝트 상에서 존재하는 그림은 어떤 디바이스에서든 바로바로 구현이 가능하다.
(3) 오브젝트 그래픽에서 일단 구현된 그림은 객체지향적 특성을 가진다. 그림의 세부특성을 변경하고 스크린상에 디스플레이한 후, 다른 특성을 바꿔서 이를 프린터 디바이스에 보내는 것과 같은 작업들이 바로바로 가능하다. 즉, 그림을 처음에 그리기위한 커맨드들을 또 반복할 필요가 전혀 없다.
(4) 다이렉트 그래픽의 경우 프로그램에 의한 구현뿐만 아니라, 커맨드 입력창에서의 간단한 입력을 통해서도 충분히 구현이 가능하다. 하지만 오브젝트의 경우는 철저하게 프로그램에 의한, 즉 컴파일과 실행에 의한 구현이 더 효율적이다.
(5) 오브젝트로 구현된 그래픽은 메모리에 상주하기 때문에, 메모리의 효율적인 이용 및 낭비와 관련하여 더욱 세심한 주의가 필요하다. 더 이상 필요가 없어진 오브젝트들은 적시에 제거해주는 습관이 필요하다. 하지만 그 개수 자체가 많아질 경우에는 효율적인 관리에도 불구하고 메모리의 부하가 과해질 수 있는 여지가 있다는 점을 주지해야할 것이다.
한마디로 Direct Graphics는 IDL에서 가장 흔하게 또 간편하게 그래픽을 구현하는 방법 또는 체계라고 보면 된다. 그러면 Object Graphics는? 그렇다. 그 반대다. IDL에서 흔히 사용되지는 않으며, 구현하는데 있어서도 생각할 것이 꽤 많은 좀 불편한 방법이긴 하다. 일단 양자간에 이러한 차이점이 있다는 사실을 이해하는 것이 Object Graphics를 이해하는 출발점이 될 것이다.
'IDL > Object Graphics' 카테고리의 다른 글
Object Graphics in IDL [05] (0) | 2010.08.20 |
---|---|
Object Graphics in IDL [04] (0) | 2010.08.14 |
Object Graphics in IDL [03] (0) | 2010.08.10 |
Object Graphics in IDL [01] (0) | 2010.08.03 |
Object Graphics in IDL 연재 예고 (0) | 2010.08.03 |