AR SDK와 한계
사용할 만한 SDK를 검색해보니, 역시나 구글과 Apple이 이미 가지고 있었다.
* 구글 - ARCore
* 애플 - ARKit
이외에 wikitude라는 업체에서도 SDK를 제공해주는데, 이건 free는 아니고, 월정액제로 제공된다.
참고할 만한 사이트는 아래.
https://thinkmobiles.com/blog/best-ar-sdk-review/
다시, 필요한 기술 및 기술적 한계로 돌아가게 되면,
* 3D Reconstruction - 현실 데이터를 활용해서 3D 지도 생성: 있는 기술이다. 단지, 정확도와 속도 문제가 있을뿐.
* 3D지도와 각종 위치를 매칭(SLAM): 마찬가지로 있는 기술이다. 정확도와 속도 문제가 있다.
* 가상물체의 모델링: 3D애니메이션에서 사용하는 것처럼 모션캡쳐 장비를 사용해서 모델링하면, 실사와 유사한 가상물체를 만들수 있다.
위 두가지가 SDK들이 제공해주는 기능일 것이고, 가상물체의 모델링도 기술의 문제라기 보다는 자본의 문제일 것이다. 여기까지가 현수준의 AR이 해볼 수 있는 것들인 것 같다. 현수준에서, 궁극의 AR로 다가가기 위해서는 아래와 같은 문제가 해결되어야 하고, 생각해 본바로는 이게 AR의 가장 큰 기술적 한계일 것 같다. 이 두가지가 없다면, 사용자는 쉽게 AR환경 내에서 가상 물체를 눈치챌 수 있고, 플레이시에 이에 따른 위화감을 가져가게 될 것이다
* 현실의 환경이 가상 물체(virtual object)에게 주는 영향을 반영하기
* 가상 물체(virtual object)가 현실의 환경에게 주는 영향을 반영하기
* 현실의 환경이 가상 물체(virtual object)에게 주는 영향을 반영하기
가상 물체가 현실의 환경을 얼마나 잘 반영하는가의 대표적인 사례로 occlusion 문제를 생각해 볼 수 있다. 현실과 가상이 잘 섞이려면, 3차원으로 바라볼때, 위화감없이 얼마나 실제 환경에 의해 잘 가려지고, 실제 환경을 잘 가리는지가 중요하다. 이에 더해 가상 물체가 이동할 경우에 원근법이나 중력같은 자연법칙을 얼마나 잘 모사할 수 있는가에 따라 현실에 잘 섞여들어갈 것이다. 이에 대한 해답은 3D 지도와 위치인식, 몇가지 물리 법칙들을 반영한 가상물체의 이동 기술이 얼마나 잘 만들어지는가에 달려있다. 중요한건 어디에 위치해 있는가이므로. 하지만, 이것만으로는 충분하지 않다.
- 실제 환경에서 투명 물체와 반투명 물체가 있는 경우
- 실제 환경이 정적이지 않고 동적인 경우
- 실제 환경에서, 광원이 있을 경우
위 세가지 경우만 보더라도 해답을 찾는게 쉽지는 않을 것이다. 투명 물체와 반투명 물체를 반영하려면 실제 환경에서 각 물체의 속성까지 파악해내야 하는데, 이건 다른 차원의 문제로 넘어가 버린다. 또한, 사전에 모델링된 실제 환경에서, 가상 물체를 정합하는 문제와 동적으로 변하는 실제 환경에서, 가상 물체를 정합하는 건 또 다른 문제이다. 이는, 위에서 얘기했던, 3D Reconstruction 같은 기술이 실시간으로 동작해야 함을 뜻한다. 일몰이나 일출같은 실제 환경의 광원까지 반영해야 된다면?
* 가상 물체(virtual object)가 현실의 환경에게 주는 영향을 반영하기
가장 큰 한계일 것 같다. 여기까지 고려해야 한다면, 사용자의 공간을 완전히 통제할 수 있는 VR같은 경우가 오히려 쉬울 수도 있다. AR에서 가상 물체가 현실의 소파에 앉게 된다면, 현재의 기술로는 정확한 위치에 앉는 것까지는 해볼 수 있을 것이다. 하지만, 현실 소파의 특성과 가상 물체의 특성에 따라 현실 소파의 눌림까지 표현할 수 있을까. 게다가 실제 소파는 눌리지 않는다. 이를 반영하게 되면, 현실 소파와 AR 내에서의 소파의 괴리가 발생하게 된다. 이러한 괴리를 허용해야 할까. 허용하지 않게 된다면, 가상 물체가 아무리 실사와 비슷하게 보이더라도 사용자는 이질감을 느낄 것이다. 어려운 문제다.
일단, 가상 물체가 현실의 환경에 주는 영향은 배제해야 될것 같고, 구글의 SDK를 써보면서, 현수준의 느낌을 봐야겠다.