티스토리 뷰

지난 포스트에서는 3D 개체를 생성하고 그걸 마우스의 움직임에 따라서 달리 보이는 것까지 다뤄봤습니다. 그런데 마우스로 할 수 있는 건 단 하나, 그냥 박스를 움직이는데 그쳤습니다. 

 보통 다른 Visualization CAD 툴 상에서는 마우스로 줌인/아웃 이나 회전같은 마우스로서 시점을 변경시킬 수 있는 기능들이 내장되어 있습니다. 역시 프로세싱에도 그런 라이브러리가 존재합니다. 그래서 한번 소개해드리고자 합니다.

 지난 포스트의 서두에서도 언급했었지만 우리가 3D라는 것을 인지하기 위해서는 원근감이라는 것을 이용해서 표현한다고 했었지요. 그리고 사용자가 가지는 제한점은 바로 시점이 고정되어 있는 겁니다. 만약 시점을 이동시킬 수만 있다면 그에 따른 입체감 표현은 더욱 쉬워질겁니다. 이 때 필요한 라이브러리가 바로 KinectOrbit 이라는 라이브러리입니다. 

 이름에서의 Kinect는 전혀 상관없습니다. 키넥트가 연결되어 있지 않아도 사용할 수 있고 3차원 공간의 개체를 어느 시점에서든 자유롭게 관찰할 수 있습니다. 

 우선 인스톨 과정을 알아보겠습니다. 물론 지난 포스트중 SimpleOpenNI 라이브러리를 삽입하신 분이라면 거의 과정이 비슷합니다. 우선은 다음 링크를 통해서 파일을 하나 다운로드 받습니다.

http://www.arduinoandkinectprojects.com/kinectorbit 

 사실 이번 라이브러리는 키넥트와 프로세싱을 연동한 프로젝트를 다루는 책인 Arduino and Kinect Project 저자들이 만든 겁니다. 그래서 그 책에서도 이 것을 사용해서 진행하고 있습니다. 


압축을 푼 후에는 지난번과 같이 내문서-Processing안에 있는 libraries 폴더안에 집어넣습니다. 물론 simpleOpenNI가 들어가 있는 상태라면 다음과 같이 되어 있을겁니다.



이제 프로세싱을 실행시키면 적용됩니다. 라이브러리가 적용되어 있는지는 import 창에서 확인할 수 있습니다.


간단한 예제를 만들어보겠습니다.



역시 지난 포스트에서 언급했던 Push와 Pop의 개념이 똑같이 적용됩니다. 크기가 500인 박스를 하나 생성하고 가장자리에 네모를 하나 생성함으로써 하나의 기준점을 만들고자 했습니다. 위와 같이 실행시키면 결과는 다음과 같습니다.



전체적인 뷰 조작은 다음과 같습니다.

오른쪽 버튼 : Rotation 변경

왼쪽 버튼 : Position 변경

휠 : Zoom in/out 


이를 활용한다면 조금더 입체적인 효과를 활용할 수 있겠지요. 이뿐만 아니라 p키를 누름으로써 현재의 시점을 저장할 수도 있습니다. 막 변경하다가 다시 저장한 시점으로 돌아가려면 o 키를 누르면 됩니다. 

댓글