글
분류없음 2011/07/12 21:44증강현실 응용 개발 및 제작에 유용한 iOS 5의 기능들
얼마전에 WWDC를 통해 iOS 5가 제공하는 기능들이 소개되었습니다. 새로운 기능의 종류가 많아서 열거하기도 힘들 정도입니다. 그 수 많은 기능들 중에서 증강현실 응용 개발/제작에 유용한 기능들을 두 가지를 추려내 보면 다음과 같습니다.
1. A direct path for video data to OpenGL ES
증강현실 응용앱에서는 보통 카메라로부터 받아들인 영상을 OpenGL ES 뷰의 백그라운드에 넣어줍니다. 이를 위해 카메라 preview를 그려주는 새로운 UIView를 추가해 주거나, OpenGL ES 텍스쳐에 영상 데이터를 복사한 후 텍스쳐 매핑을 통해 비디오 백그라운드를 넣어주는 일반적인 방법입니다.
텍스쳐를 사용하는 경우 glTexSubImage2D 를 통해 영상 데이터를 텍스쳐로 복사해주는 과정이 필요한데, 이 때 CPU-GPU 사이의 메모리 복사를 하는데 있어 약간의 지연이 발생하고 이로인해 성능 저하가 일어나게 됩니다. WWDC2011 비디오에서 데모로 보여주듯이 이는 필연적으로 OpenGL ES 렌더링을 느리게 만드는 원인이 됩니다.
이 과정을 더 빠르게 하기 위해 애플에서는 CVOpenGLESTextureCache 라는 것을 제공하여 보다 빠른 데이터의 전송을 가능하게 해준다고 합니다.
텍스쳐를 사용하는 경우 glTexSubImage2D 를 통해 영상 데이터를 텍스쳐로 복사해주는 과정이 필요한데, 이 때 CPU-GPU 사이의 메모리 복사를 하는데 있어 약간의 지연이 발생하고 이로인해 성능 저하가 일어나게 됩니다. WWDC2011 비디오에서 데모로 보여주듯이 이는 필연적으로 OpenGL ES 렌더링을 느리게 만드는 원인이 됩니다.
이 과정을 더 빠르게 하기 위해 애플에서는 CVOpenGLESTextureCache 라는 것을 제공하여 보다 빠른 데이터의 전송을 가능하게 해준다고 합니다.
2. GLKit
그 동안 iOS 에서의 OpenGL ES 뷰를 만들기 위해서는 EAGLView + UIViewController 조합으로 사용을 해왔습니다. EAGLView 라는 것이 아무래도 Objective-C 에서 사용하는 UIView 와는 약간 동떨어진 형태를 가지고 있었기 때문에 둘 사이에 상속 관계가기는 하지만 여전히 서로 다른 클래스처럼 보였습니다. 또한 iOS에서의 OpenGL ES는 써드
그 동안 iOS 에서의 OpenGL ES 뷰를 만들기 위해서는 EAGLView + UIViewController 조합으로 사용을 해왔습니다. EAGLView 라는 것이 아무래도 Objective-C 에서 사용하는 UIView 와는 약간 동떨어진 형태를 가지고 있었기 때문에 둘 사이에 상속 관계가기는 하지만 여전히 서로 다른 클래스처럼 보였습니다. 또한 iOS에서의 OpenGL ES는 써드
파티 라이브러리를 제외하면 거의 순수 API 의 기능만을 제공하기 때문에 여러모로 OpenGL ES 프로그래밍이 귀찮은 점이 많았습니다.
애플에서는 이번에 GLKit 을 발표했는데, GLKit 은 OpenGL ES 뷰를 위해 EAGLView 가 해왔던 일을 UIView 스타일로 추상화하고, OpenGL ES 프로그래밍을 위한 기능들을 제공함으로써 프로그래머의 일을 줄일 수 있을 것으로 기대됩니다. 또한 GLKit 을 통해 OpenGL ES 1.1과 2.0 사이의 코드 변환을 최소화 할 수 있게 코드를 짤 수 있다고 합니다.
그렇지만 GLKit을 쓰다보면 iOS외에 다른 플랫폼으로 이동이 어려울 수도 있겠네요. ^^
GLKit 이 제공하는 기능은 아래와 같습니다.
애플이 새로운 기능을 제공하는데 인색하긴 하지만 막상 기능을 내놓을 때는 개발자가 필요로하는 기능들을 꽤나 잘 다듬어서 SDK로 제공하기 때문에 iOS 가 새로 나올 때마다 업그레이드 되어가는 모습을 보는 것도 즐겁습니다.
애플에서는 이번에 GLKit 을 발표했는데, GLKit 은 OpenGL ES 뷰를 위해 EAGLView 가 해왔던 일을 UIView 스타일로 추상화하고, OpenGL ES 프로그래밍을 위한 기능들을 제공함으로써 프로그래머의 일을 줄일 수 있을 것으로 기대됩니다. 또한 GLKit 을 통해 OpenGL ES 1.1과 2.0 사이의 코드 변환을 최소화 할 수 있게 코드를 짤 수 있다고 합니다.
그렇지만 GLKit을 쓰다보면 iOS외에 다른 플랫폼으로 이동이 어려울 수도 있겠네요. ^^
GLKit 이 제공하는 기능은 아래와 같습니다.
애플이 새로운 기능을 제공하는데 인색하긴 하지만 막상 기능을 내놓을 때는 개발자가 필요로하는 기능들을 꽤나 잘 다듬어서 SDK로 제공하기 때문에 iOS 가 새로 나올 때마다 업그레이드 되어가는 모습을 보는 것도 즐겁습니다.
트랙백
댓글
글
분류없음 2011/04/14 08:37Kinect 를 위한 MS의 공식 SDK 가 공개될 예정 !!
Microsoft 에서 MIX2011 이라는 행사에서 Kinect SDK 를 이용한 데모를 공개했습니다. 그 동안 비공식 SDK 에서 지원하지 않았던 여러가지 기능들이 지원될 예정이라고 합니다.
홈페이지에 나온 내용을 보면,
(http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/)
- 키넥트에 탑재된 마이크를 이용한 Audio processing
- 마소의 음성인식 API 를 이용하는 소리가 나는 위치를 찾아내는 기능
- 3D depth 데이터
- 사람의 신체를 Skeletal tracking 방법으로 추적 (이건 비공식 버전에서도 지원하던 것)
- SDK 에 대한 문서 (개발자들에게 꼭 필요하죠 !!)
- 샘플 코드 (역시 개발자들에게 필요한 .. )
또한 "This SDK is intended for non-commercial use to enable experimentation in the world of natural user interface experiences, with new state-of-the-art features planned for future releases that will continue to provide new ways to experiment" 이라고 쓰여 있어서 비상업적으로만 이용하는 것으로 공개될 것 같네요.
아직은 베타 딱지를 달고 있지만 어쨌든 공식 버전이니 키넥트를 이용하려고 하는 개발자들에게는 반가운 일입니다. 그리고 HCI 쪽에서는 Computer vision + Audio processing 기능을 활용한 응용이 많이 등장할 것으로 예상해 봅니다 ~!!
업데이트 (2011/07/10) : 이미 공개되었네요 ^^
홈페이지에 나온 내용을 보면,
(http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/)
- 키넥트에 탑재된 마이크를 이용한 Audio processing
- 마소의 음성인식 API 를 이용하는 소리가 나는 위치를 찾아내는 기능
- 3D depth 데이터
- 사람의 신체를 Skeletal tracking 방법으로 추적 (이건 비공식 버전에서도 지원하던 것)
- SDK 에 대한 문서 (개발자들에게 꼭 필요하죠 !!)
- 샘플 코드 (역시 개발자들에게 필요한 .. )
또한 "This SDK is intended for non-commercial use to enable experimentation in the world of natural user interface experiences, with new state-of-the-art features planned for future releases that will continue to provide new ways to experiment" 이라고 쓰여 있어서 비상업적으로만 이용하는 것으로 공개될 것 같네요.
아직은 베타 딱지를 달고 있지만 어쨌든 공식 버전이니 키넥트를 이용하려고 하는 개발자들에게는 반가운 일입니다. 그리고 HCI 쪽에서는 Computer vision + Audio processing 기능을 활용한 응용이 많이 등장할 것으로 예상해 봅니다 ~!!
업데이트 (2011/07/10) : 이미 공개되었네요 ^^
RECENT COMMENT