IDL/New Graphics

MESH_OBJ 명령을 이용한 폴리곤 생성 방법 [1]

이상우_idl 2022. 7. 4. 15:10
728x90
반응형

3차원 공간상에서 존재하는 다면체 즉 폴리곤(Polygon)을 구성하려면 우선 이를 구성하는 여러 개의 꼭지점(Vertex)들에 대한 좌표 데이터가 필요합니다. 그리고 그 꼭지점들이 어떤 방식으로 서로 연결되어야 하는가를 규정하는 연결성(Connectivity) 정보도 함께 필요합니다. 폴리곤이 가질 수 있는 형태는 매우 다양하며, 꼭지점들의 개수가 많을수록 더 세밀한 모습을 갖게 됩니다. 예를 들어 사람, 동물, 자동차 등등의 개체들과 유사한 형태를 갖는 폴리곤을 가정해보면 세밀한 묘사를 위해서는 엄청나게 많은 꼭지점들이 필요하고 연결성 정보도 매우 복잡할수 밖에 없습니다. 그리고 이러한 복잡한 폴리곤을 컴퓨터에서 처리하여 표출하는데 있어서는 강력한 파워와 상당량의 메모리가 필요하게 됩니다.

 

그런데 이렇게 실제 사물을 묘사한 복잡하고 세밀한 형태의 폴리곤들 외에도 기하학적으로 정형화된 형태의 폴리곤들을 사용해야 할 경우도 꽤 있습니다. 예를 들면 육면체(Cube), 실린더(Cylinder), 구체(Sphere) 등이 이에 해당됩니다. 이러한 폴리곤들은 3차원 공간상의 데이터 표출에 있어서도 활용도가 높다고 볼 수 있습니다. 다만 이와 같이 기하학적으로 정형화된 폴리곤들의 경우 그 형태는 단순해 보여도 막상 만들어보려고 하면 꼭지점들의 구성 및 그 연결성을 어떤 식으로 정의해야 할지 막막한 경우가 많습니다. 구체(Sphere)를 예로 들어보면 이를 구성할 꼭지점들의 좌표 데이터 및 연결성 정보를 사람이 직접 계산하여 생성하는 것은 매우 어렵습니다.

 

그래서 IDL에서는 이러한 다소 귀찮은 작업을 알아서 처리해주는 명령이 있는데 그것이 바로 MESH_OBJ 명령입니다. MESH_OBJ 명령은 방금 언급한 몇 가지 종류의 정형화된 폴리곤 형태들에 대하여 필요한 최소한의 사전 정보들만 주어지면 이를 바탕으로 적절한 꼭지점 및 연결성 정보를 자동으로 생성하여 되돌려주는 역할을 합니다. 물론 그 외에도 무정형의 복잡한 형태를 구성하는 꼭지점들의 정보만 주어져도 이를 바탕으로 최적의 연결성 정보를 계산하여 생성해주는 기능도 지원합니다. 일단 IDL 도움말에서 MESH_OBJ 명령에 대한 내용을 찾아보면 기본적인 문법은 다음과 같습니다.

 

MESH_OBJ, Type, Vertex_List, Polygon_List, Array1 [, Array2] $

[, /CLOSED] [, /DEGREES] [, P1, P2, P3, P4, P5=value]

 

여기서 첫번째 인수인 Type이라는 것이 있는데, 이것은 생성하고자 하는 폴리곤의 형태가 어떤 카테고리에 속하는지를 규정하는 일련번호라고 보면 됩니다. 0부터 7까지 총 8종이며 각 번호에 대응되는 폴리곤 형태는 IDL 도움말에서 다음 표와 같이 명시되어 있습니다.

 

 

따라서 작업의 목표에 맞게 이러한 Type 번호를 명시해줘야 합니다. 그리고 두번째 및 세번째 인수인 Vertex_List Polygon_List는 명령 실행 후 결과를 되돌려받는 인수들입니다. Vertex_List는 생성된 폴리곤을 구성하는 꼭지점들의 XYZ 좌표값들로 구성된 배열이고, Polygon_List는 꼭지점들 사이의 연결성에 관한 정보를 담은 배열이 됩니다. 그리고 바로 뒤에 이어지는 Array1, Array2 및 기타 키워드들은 사용자가 제공해야 하는 입력 정보에 해당되는데, 구체적으로 어떻게 정의해야 하느냐는 생성하고자 하는 폴리곤이 어떤 Type인가에 따라 달라집니다. 따라서 MESH_OBJ 명령에 대해서 이해하려면 결국 각 Type별로 어떤 방식으로 입력 정보들을 제공해야 하느냐에 대한 이해가 반드시 필요합니다. 따라서 각 Type별로 어떤 형태의 폴리곤에 해당되며 결과를 얻기 위하여 입력 정보들을 어떤 방식으로 제공해야 하는지에 대하여 앞으로 하나씩 살펴보고자 합니다. 또한 결과를 받아서 어떻게 표출 및 활용할 것인가에 대해서도 함께 알아보도록 하겠습니다. 다만 소개하는 순서는 Type 번호를 순서대로 따라가지는 않고 나름대로 단순한 형태부터 시작하여 복잡한 형태로 가는 순서로 진행해보도록 하겠습니다.

 

그러면 바로 이어질 다음 회차에서는 Type 1인 Rectangular에 관하여 알아보도록 하겠습니다.

반응형