얼마전에 IDL Datapoint 블로그에 제 관심을 끄는 게시물이 하나 올라왔습니다. 이 블로그는 IDL의 본사인 ExelisVis의 기술진이 IDL에 관한 다양한 주제를 올리는 곳이며, 저도 종종 여기에 올라오는 내용들을 참조하고 있습니다. 이번에 제가 관심있게 봤던 내용은 Stanford 3D Scanning Repository라는 웹페이지에 올라와 있는 3차원 스캔 자료를 읽어서 IDL에서 가시화하는 방법에 관한 게시물이었습니다. 일단 블로그에 나온 게시물 및 이 게시물에서 참조한 Stanford 3D 웹페이지의 링크는 다음과 같습니다.
Stanford 3D Scanning Repository
블로그 게시물에서는 위 웹페이지에 올라온 스캔 자료들 중 Stanford bunny라고 부르는 토끼의 형상을 스캔한 vertex 자료를 읽고 가시화하는 예제를 소개하고 있습니다. 실제로 이 웹페이지상에 올라와 있는 자료 파일을 받아서 직접 읽어보면, 토끼 형체를 구성하는 점들 모두에 대한 X, Y, Z 좌표 및 밝기 값 등이 포함된 아스키(ASCII) 형태로 되어 있습니다. 따라서 일반 텍스트 에디터에서 쉽게 열리는 텍스트 파일이라고 보면 됩니다. 그래서 저도 이 파일을 받아서 IDL에서 읽고 필요한 정보들을 추출한 다음 나름대로의 가시화를 해보았습니다. 단, 제가 해본 방식은 지금 언급중인 IDL Datapoint 블로그게시물에 나온 내용과는 방식이 약간 다릅니다. 거기서도 어차피 추후 언급할 예정인 것 같지만, 기본적으로 vertex들의 X, Y, Z 좌표 뿐 아니라 그 점들간의 연결성(connecitivity)에 해당되는 정보까지 함께 반영하여 표출해야 합니다.
따라서 아스키 파일로부터 X, Y, Z, connectivity 등의 정보를 IDL에서 추출하여 배열로 읽은 후 이 배열들을 sav 파일에 담아보았습니다. 이 파일은 아래에 첨부해두었습니다.
이 파일을 받은 후 RESTORE 명령을 사용하여 풀면, x, y, z, conn과 같은 네 개의 배열들이 생성됩니다. 이 배열들은 3D 스캔이 된 토끼의 형체를 구성하는 각각 35947개의 X좌표,Y좌표, Z좌표의 값들 및 277804개의 값들로 이루어진 연결성(connectivity) 정보에 해당됩니다. 그 이후에는 이 정보를 사용하여 폴리곤 객체를 생성하고, XOBJVIEW 명령을 사용하여 그 형태를 간편하게 눈으로 확인해볼 수 있습니다. 이 모든 과정들은 다음과 같이 비교적 간단합니다.
RESTORE, 'bunny.sav'
XOBJVIEW, IDLgrPolygon(x, y, z, STYLE=2, POLYGONS=conn, COLOR=[255, 105, 180])
그리고 이와 같은 과정을 거쳐 표출된 모습은 다음 그림과 같습니다. XOBJVIEW로 뜬 GUI에서는 마우스 클릭 및 드래그에 의하여 저 토끼 폴리곤을 이리저리 돌려보거나 확대/축소를 해서 볼 수도 있습니다. 일부러 색상을 핑크색 계열로 해보았는데 제법 귀여운 것 같습니다. 사실 이 폴리곤은 모습은 귀여워 보여도 35947개의 점들로 이루어진 것이기 때문에 렌더링에 있어서 어느 정도 시간이 소요될 수 있습니다. 그리고 렌더링이 되어 눈으로 보이게 된 후에도 방향을 돌리거나 확대/축소 등의 조작을 할 때, 컴퓨터 사양에 따라약간 부드럽지 못할 가능성도 존재한다는 점 참조해두시면 좋겠습니다.
그리고 이번에는 이 폴리곤을 이리저리 시선방향을 돌려가며 보는 과정을 하나의 동영상으로 만들어보았습니다. 그리 대단한 내용은 아니지만 즐겁게 봐주시길 바랍니다.
'IDL > Object Graphics' 카테고리의 다른 글
Wire Frame 3D Sphere의 구현 [2] (0) | 2016.10.24 |
---|---|
Wire Frame 3D Sphere의 구현 [1] (0) | 2016.10.21 |
고리형(Ring Shaped) 폴리곤을 구현해봅시다 (0) | 2014.08.29 |
Mac OS Mountain Lion 10.8에서 Object Graphics 구현시의 문제 해결법 (0) | 2012.10.31 |
비디오 파일 생성 기능 소개 (0) | 2011.05.11 |