살다보면 우리가 "원래 그런거" 라면서 아주 당연하게 취급하는 것들이 많다


아마 VR에 있어서 이 '룸스케일' 플레이가 그 중 하나일 거라고 생각





물론 '룸스케일'은 6DOF 기능을 활용한 3D 플레이 공간 구성을 의미하지만,


여기서 내가 말 하는 룸스케일은 진짜로 '방 내부'로의 제약을 의미







PSVR, 오큘러스 리프트, HTC 바이브로 대표되는 1세대 VR기기들은,


방식은 약간씩 다를지언정, 결과적으로는 비슷한 구성으로 룸 스케일 VR을 구현해 냈다





...그리고 이것이 현재까지의 주류 VR 시장의 초석이자 기반







VR은 이후 기기 내장 카메라 기반 인사이드-아웃 SLAM 트래킹 기술로 진화하지만,


이미 확립된 룸스케일 VR의 근간은 바뀌지 않는다는게 문제다





정확히 말하자면, 우리는 기존의 틀에서 한발짝 더 나아갈 수 있는 기술적 힌트가 있지만,


아직 이걸 제대로 활용할 수 있을만큼 기술이 완벽하지도 않을 뿐더러,


밑도 끝도 없는 "공간 해석의 문제"가 기다리고 있기 때문





(SLAM은 자율주행, 로봇, 드론, VR 등등 다양한 분야에서 사용되는 기술이다)



메타 퀘스트는 SLAM을 이용해 기본적인 공간 인식 및 추적을 함에도 불구하고,


안전 경계 설정을 통해 임의로 '플레이 공간'을 정의해줘야 한다





사실 한다면야 저 경계를 벗어나 플레이어가 계속해서 다른 곳으로 걸어가도,


헤드셋은 6DOF 추적을 잃지 않는다


SLAM 자체는 어느 공간에서나 포인트 클라우드 생성을 통해 3D 인식을 할 수 있기 때문


야외 공간에 퀘스트를 가지고 나가도 정상 작동하는 이유다





*참조: Meta Quest의 포인트 클라우드에 대해 알아보기

https://www.meta.com/help/quest/articles/in-vr-experiences/oculus-features/point-cloud/







이런식으로 스스로 케이지를 만들어서 그 안에 갇혀야 하는 이유는,


VR의 기반이 라이트 하우스 베이스 스테이션이나 거치형 카메라 기반으로 발전한 탓이 크다고 생각한다





현재의 VR 생태계에서의 앱들은 저 '임의로 정의된 공간' 안에서만 정상적으로 작동하도록 설계되었다


안전한 버블 안에서만 한정적으로 움직이는 상황 말이다







물론 "조이스틱이 아니라 실제로 몸을 움직여서 플레이 하세요!" 개념의 룸스케일도 있긴 하다


'아이 오브 템플'이나 '제로 레이턴시' 같은거





근데 결국 이것도 플레이 공간이 넓어졌다 뿐이지, 한정된 플레이 공간 내부를 상정하는건 동일하다







메타 퀘스트3는 MR 활용도를 위해 기존 카메라 방식보다 더 정밀한 ToF 뎁스 센서 부품을 추가했다


이는 점진적으로 VR을 넘어서, 주변 환경 해석까지 요구되는 MR 분야로 나아가기 위한 포석인데, 


이 퀘스트3의 MR은 아직까지 '룸스케일 VR'의 그림자 아래에 놓여있다는 느낌을 지울 수 없다





이게 대체 무슨 소리냐고?







퀘스트3의 룸 메시 생성은 결국 '고정된 MR 플레이 공간'의 본을 뜨는 작업에 불과하다는 얘기다


기기는 일단 헤드셋을 쓰고 방 구석구석을 샅샅히 둘러보며 최대한 완벽한 스캔을 뜨도록 요구한다


그 후 스캔이 완료되면 이 '결정화 된 (crystallized)' 방의 스캔 데이터를 그대로 쓰는거다





즉, 기기는 이 후 방의 가구 배치가 바뀌거나 하더라도 동적으로 3D 메시 데이터를 수정하지 않고,


딱 스캔을 마친 저 방 안에서만 제대로 작동한다


이 밖으로 나가는건 상정하지 않는거다







이 때문에 퀘스트3는 적외선 도트 방식의 ToF 뎁스 스캐너를 장착하고 있음에도,


이 센서는 잠깐동안 현실의 본을 뜨는 '정밀 룸 스캔' 상태에서만 짧게 작동한다


소비 전력 문제인지, 실시간으로 항상 스캔을 뜨진 않는다는 것





물론 이 외에도 코덱 형식으로 스테레오 카메라 이미지를 이용한 실시간 뎁스 해석을 하는 뎁스 API도 작동하지만,


이는 카메라 기반의 저해상도 실시간 뎁스 맵 생성 기술이며, 


방의 3D 룸 메시 데이터에는 영향을 끼치지 않는 별개 데이터 취급이다







그래서 퀘스트3의 일부 적극적 MR 사용 사례들을 보면, 


고정 플레이 공간 내부에 결정화 된 3D 룸 메시와 상호작용하는 내용들이다





이 전의 VR들이 플레이 공간 설정을 하고 그 안에서 움직였듯이,


MR도 고정된 정밀 스캔 공간을 설정하고 그 안에서 움직여야 가장 잘 작동한다





https://twitter.com/_LucasRizzotto/status/1775223432235683891



- 혼합 현실 앱 개발의 어려움



MR 앱들은 극단적인 일부 특수 상황들에서 적용될 때 악몽처럼 망가집니다. 메타는 아직 MR 앱을 제대로 테스트하는 방법을 모르고 있으며, 이러한 현실을 모른다면 당신의 MR 앱은 별점 1점을 받을 것입니다.



@pillowsocial  MR 앱을 개발하면서 겪었던 대표적인 극단적 특수 상황들 다음과 같습니다.




#1: 사용자가 스캔한 방에서 나가버립니다.



지금까지 가장 큰 악평의 원인이었습니다. 사람들은 거실에서 앱을 실행하고 침실로 들어가서 앱이 고장났다고 신고하곤 했습니다.

하지만 실제로는 고장난 것이 아니라 MR 요소들을 거실에 그냥 두고 나간 것입니다.

스캔 된 공간을 플레이어가 벗어나려고 할 때 경고하는 시스템을 넣으세요.





#2: 사용자는 거대한 창고부터 작은 욕실까지 다양한 크기의 장소에서 게임을 플레이합니다.



욕실부터 이상한 모양의 집까지 모든 곳에서 MR 앱을 테스트해 보세요.

장담하건대, 그러한 상황에서 MR 앱은 망가질 것입니다.

MR 앱은 거대한 아마존 물류 창고뿐만 아니라 홍콩의 1평짜리 고시원에서도 작동할 수 있도록 설계되어야 합니다.





#3: 아무리 경고창을 띄우도 유저들은 방 스캔 과정을 그냥 스킵하고 앱을 실행합니다.



사용자가 방 스캔을 거부하더라도 앱이 계속 작동할 수 있도록 폴백 메커니즘이 필요합니다.

방 메시가 감지되지 않는 경우 앱에 할당되는 '기본' 방 메시를 만들어 앱이 계속 작동하도록 하세요.




#4: 천장이 작거나 벽에 붙어 있는 방에서 플레이하는 사람도 있기 때문에 일부 UI 요소가 방의 벽 밖으로 나가서 표시될 수 있습니다.



중요한 UI 요소가 방의 벽이나 가구 뒤로 들어가버려서 사용자에게 보이지 않도록 되는걸 피해야 하고, 앱이 고장나지 않도록 멀리 날아가버린 UI도 조작할 수 있는지 확인하세요.




#5: 일부 사용자는 방이 아니라 야외에서 앱을 실행시키려고 합니다.



컨트롤러 트래킹은 강한 햇빛 아래에서 비정상적으로 작동할 수 있지만, 핸드 트래킹은 제대로 작동하는 편입니다.

앱이 핸드 트래킹과 호환되는지 확인하는 것만이 외부에서도 MR 앱을 제대로 사용할 수 있는 유일한 방법입니다.





마지막으로 가장 중요한 것은 MR 앱이 고장나면 아무도 무슨 일이 있었는지 알려주지 않는다는 점입니다.

그저 조용히 별점 1점짜리 리뷰를 남길 뿐입니다.

그러니 강력한 사용자 커뮤니티를 형성하고 그들과 계속 대화하세요. 그래야만 무엇이 잘못되었는지 알아낼 수 있습니다.




이 스레드가 도움이 되었다면 퀘스트 앱 스토어에서 @pillowsocial 를 팔로우해 주세요!

저희는 이 모든 문제를 해결한 후 마침내 평점을 회복하고 있으며 다른 개발자들이 이러한 문제를 겪지 않았으면 좋겠습니다.

그리고 새로운 문제를 발견하면 알려주세요 :)




+ 두 가지 팁이 더 있습니다:

#8: 외주로 QA 테스트 회사를 고용하면 위의 모든 극단적 예외 사항들을 놓칠 수 있습니다.



그들은 자신이 무엇을 하고 있는지 모르기 때문입니다. 그들은 가장 기본적인 조건에서 단순하고 좁은 방에서 앱을 테스트할 것이고 위의 모든 극단적 예외 상황들을 놓칠 것입니다.

엣지 케이스 테스트를 직접 수행하세요.




#9: OS 업데이트로 인해 앱이 망가질 수 있습니다.


소비자 MR 앱은 매우 새로운 개념이며, 작동 방식을 지속적으로 변경하는 정기적인 OS 업데이트가 있습니다. 이 중 일부는 앱을 망가뜨릴 수 있습니다.

따라서 OS가 업데이트될 때마다 새로운 테스트를 수행하지 않으면 이러한 문제가 발생할 수 있습니다.




혼합 현실은 흥미롭지만 아직 기술적으로 완성되지 않은 분야입니다.

스토어에 있는 대부분의 MR 앱은 자신의 잘못이 아닌 문제에 대해 별점 1개를 받아야 하며, 저희는 이러한 문제들을 해결하기 위해 서로 도움을 주어야 합니다!

그러니 문제가 있다면 별점 테러만 하지 말고 뭐가 문제인지 알려주세요!






https://youtu.be/r86tZa_CIq4?si=86NZWbXq0rL5pmj0&t=665




11분 5초 부터:


사실 그게 지금 제가 직면한 문제입니다.



메타의 메시 API와, 이렇게 생성된 메시를 중심으로 게임을 만드는 작업은 현재로서는 매우 새로운 분야입니다. 

그렇기 때문에 이 작업을 하는 앱 개발자와 플랫폼 개발자들은 실제 개발에 필요한 요소들이 무엇인지에 대해 여전히 많은 논의를 하고 있습니다.



현재 문제 중 하나는, 퀘스트3에서 생성되는 일부 메시의 디테일은 매우 높지만, 일부는 디테일이 높지 않을 수 있다는 점입니다. 

예를 들어, 방의 상당 부분을 스캔했어도 일부 영역들을 빼먹어 메시가 불완전한 경우가 있습니다.

이러면 개발자는 그 공간이 그저 빈 공간인지 아니면 막힌 공간인지 알 수 없습니다. 

개발자는 메시에서 얻은 데이터만 알 수 있고, 이를 바탕으로 '추정'밖에 할 수 없습니다.



예를 들어 게임에는 메시를 바탕으로 커스텀 경로를 생성하는 알고리즘이 있습니다.

근데 알고리즘이 가구를 빙 돌아서 통과해야 하는 레이저 터널 레벨을 생성한다고 해보죠.

알고리즘은 가구 뒤쪽에 스캔 되지 않은 공간이 진짜 빈 공간인지 아니면 막힌 벽인지 알 수 없습니다. 레이저 터널에 들어갔더니, 벽을 뚫고 가라는 경로가 생성될 수도 있는겁니다.



앞으로는 메시 API와 같은 것들이 이러한 종류의 작업에 대해 더 탄력적이고 개발자가 모든 특수 상황들을 처리할 수 있도록 적절한 양의 데이터를 제공할 수 있어야 합니다. 


...


저는 큰 개방형 공유 오피스에서 일했기 때문에, 그 공간 일부를 스캔하려고 시도했습니다.
여기가 바로 메시 생성에서 디테일 문제가 발생하는 부분입니다.
스캔을 계속해서 무한정 하다보면, 퀘스트 3이 멈추게 되는 메시 생성의 상한선이 있기 때문입니다.
메시 API를 만들때, 메시 생성의 상한선은 대체 무한하게 어느정도로까지 설정해야할지는 솔직히 알 수 없는 문제죠. 


아무튼 사무실을 스캔하다보면 굉장히 복잡한 구간도 있고, 스캔을 안/못 한 구간도 있게 되죠.
책상과 의자 그리고 다른 사무실의 물건들이 끝없이 있지만, 스캔되지 않은 곳은 그저 빈 공간으로 인식됩니다.
이러면 결국 게임은 기기가 스캔하지 않아 존재하는지 모르는 책상을 뚫고 가라고 경로를 생성하고요.
따라서 이러한 종류의 경우는 여전히 메타가 메시 API를 개선하여 처리해야합니다.







방 전체 구조를 이해하고 활용하는 '진정한 MR'은 결국 철저하게 스캔된 데이터가 필요한데,





 - 누구도 귀찮게 방의 스캔을 따로 뜨고 싶어하지 않음


 - 내가 거쳐가는 모든 방마다 계속해서 전부 다 스캔을 떠주는건 비현실적임


 - 스캔을 뜨기 힘들 정도로 지나치게 넓거나 복잡한 방도 있음


 - "ToF나 라이다 같은 3D 스캐너는 너무 번거롭고 느림!"





...이러다보니 기기에서 만들어진 3D 스캔 메시 데이터에만 의존해서는 구체적 해석을 요구하는 특수 상황에서 뭘 제대로 할 수 없다는 거다


괜히 '극단적 특수 상황 (Edge Case)' 적용에서의 악몽이라고 하는게 아님





https://learn.microsoft.com/en-us/windows/mixed-reality/design/spatial-mapping


매우 유익한 마이크로소프트 홀로 렌즈 MR 교육 자료 중, 공간 맵핑 관련 내용


실질적으로 MR 관련 연구는 MS가 홀로 렌즈 개발하면서 초석을 전부 다져놓은 수준 (MR 객체의 공간 앵커, 공간 음향 디자인 등등)





결국 문제가 발생하지 않는 앱은, 변수를 최소화 해 가장 단순한 형태의 앱일 수 밖에 없다


"상대적으로 평평한 벽, 평평한 바닥, 평평한 책상을 탐지한 후, 그 위에 고정" -끝-


이 이상으로 거창하게 복잡해지면 변수가 너무 많아진다







어떻게 보면 가장 이상적인 MR의 형태는 실제로 방 전체의 레이아웃을 순식간에 파악하고 각각의 요소들을 인식한 다음 활용하는 방식이겠지만,

(이 때문에 '레이저 댄스' 앱은 상당히 대범한 시도)


여러개의 앱을 실행했을 시 발생하는 앱간 간섭, 교통 정리, 공간 할당 문제 등등...





이를 해결하려면 아주 좁은 공간만 앱에게 할당해주는 수 밖에 없다


이를 애플에서는 '볼륨'이라고 부른다







비전 프로용 앱 개발에서 공간 할당 구분

(얘네는 뭐 "이건 VR앱, 이건 MR앱" 이런거 보다는 그냥 패스쓰루 영상 위에 앱 배치하는 중점이라)





 - 창 (Window)


macOS 및 iOS에서 익숙한 표준 2D 형태로, 수직으로 된 2D 평면에 더해 밖으로 약간 튀어나오는 UI 요소 같은 유사 3D 비슷한 몇 가지 추가 기능이 있습니다. 사용자에게 문자로 된 콘텐츠뿐만 아니라 메뉴와 컨트롤 패널을 표시하는 데 유용합니다.



 - 볼륨 (Volume)


기본적으로 3D로 된 3D 창이라고 보면 됩니다. 크기를 조절할 수 있는 수평의 2D 바닥 위에 3D 개체를 올려서 표시할 수 있습니다. 이커머스에서 상품과 같은 개체를 표시하거나 CAD 소프트웨어에서 작업 중인 엔진의 규모를 파악하는 데 유용합니다.



 - 전체 공간 (Full Space)


앱이 사용자의 전체 시야를 차지하고 다른 앱을 숨겨 완전히 몰입할 수 있는 경우로, 애플은 이 형태를 꼭 필요한 경우에만 사용하도록 권장하며 사용자에게 앱의 공간에 들어가고 나갈 수 있는 명확한 옵션을 제공합니다. 사용자가 콘텐츠에 완전히 몰입할 수 있도록 해야 하는 영화나 게임과 같은 미디어 소비에 적합합니다.





각각의 앱은 한 가지 타입의 공간 할당만 쓸 수 있는게 아니라, 이걸 적절히 섞어서 쓸 수 있다고 알고있음







앱에 할당된 볼륨 형태로 잘려나가는 컨텐츠





애플 비전 프로 MR 체험의 두 가지 유형



 - 제한된 형태 (Bounded) : 


제한된 형태는 할당된 볼륨의 정육면체 영역에서 일어나는 체험입니다. 이 경험은 그 범위 내에서만 실행되므로 방에 있는 다른 경험들과 함께 동시에 실행될 수 있으며, 모든 경험은 작은 큐브 안에서만 일어납니다. 이러한 제한된 형태는 방 내부의 위젯과 같은 것이라고 생각하면 됩니다. 상호 작용 옵션이 제한되어 있습니다.



 - 제한 없는 형태 (Unbounded) : 


AR/MR의 모든 기능을 활용하는 제한 없는 형태는 고정 영역 없이 모든 공간을 활용합니다. 물론 제한 없는 형태의 앱은 한 번에 하나만 실행할 수 있으며, 여러개의 앱이 동시에 모든 공간을 다 활용할 수 없습니다. 제한 없는 형태의 앱도 자체적으로 따로 볼륨을 갖춘 제한된 위젯을 동시에 함께 실행할 수 있습니다. 제한 없는 형태는 어떻게 보면 다른 플랫폼이나 기기들에서 볼 수 있는 고전적인 형태의 MR 앱으로, 모든 형태의 다양한 상호작용을 지원합니다.







방 전체를 유령의 집으로 만들어주는 MR 앱 데모


언뜻 보면 재미있고 신기한 컨셉이지만, 현실적인 앱 개발의 관점에서 생각해보자





 - 이 앱은 그냥 아무 방에 들어가서 기기를 켜고 앱을 실행하면 바로 집 전체가 유령의 집으로 바뀌는가?


  → 아니다. 집 전체 구석구석에 대한 철저한 스캔 과정 없이는 제대로 동작할 수 없다





- 이 앱을 단칸방 원룸 집에서 실행하면 제대로 작동하는가?


  → 아니다. 집이 여러개의 방으로 되어있거나, 가구 등이 중간에 배치되어 돌 수 있는 구조여야 이상적이다





 - 이 앱을 누군가가 갑자기 제대로 스캔도 안 된 야외에서 실행하면 제대로 작동하는가?


  → 아니다. 애초에 '실내' 유령의 집 컨셉으로 만들어졌고, 벽이나 장애물이 아예 없는 들판에서 제대로 작동하리라 확신할 수 없다





뭘 해보려고 해도 변수가 너무 많다


(실제로 개발자가 시연한 영상에서, 야외의 숲속으로 도망가니깐 개발자가 직접 걸어서 지나온 아주 좁은 스캔 영역으로만 귀신이 따라오고, 주변의 숲은 아예 없는 공간인 것 마냥 무시하는 좀 깨는 상황이 연출)







이 때문에 가장 기본적인 MR 앱은 '오버레이 (Overlay)' 형태로 대표되는, 


'창 (window)'과 '볼륨 (volume)' 위주일 수 밖에 없는 것이다





막말로 위의 골프 정보 앱을 "와! MR앱!" 이라고 홍보해도,


저걸 VR의 가상 환경 위에서 실행해도 차이점이 없을거 아닌가?


그냥 아무 앱이나 실행한 다음 배경만 패스쓰루면 전부 MR 앱인가?





역시 거창한 트루 MR은 너무 어렵다







이러한 단순 패널, 볼륨, 오브젝트들이 실제 MR 경험으로 녹아들려면,


'프레젠스' 즉 실제감, 이것들이 현실의 공간 안에 실제 존재한다는 느낌이 중요하다


이 프레젠스는 가상 물체가 얼마나 물질성 (physicality)을 가지는지로 따질 수 있다고 봄


현실의 물리 법칙을 따를수록 더 실제감이 높아지는거





 - 공간 앵커 (Spatial Anchor) : 

단순히 둥둥 떠있는게 아니라, 현실의 정확한 3D 좌표상에 딱 고정이 되어 일관성을 가진다



 - 폐색/오클루전 (Occlusion) : 

다른 물체들과의 물리적/시각적 상호작용으로 공존의 느낌을 준다



 - 광원 효과 (Lighting) : 

가상 물체들이 현실에 그림자를 드리우고, 현실의 광원에 반응하고, 또한 자체적으로 현실에 가상의 빛을 비추는 광원이 되기도 한다






(스파이더맨이 반사되지 않는 유리 표면. 사실 스파이더맨은 뱀파이어이기 때문에 거울에 비치지 않는다...?)



게임에 관심이 있다면, 엔비디아의 거창한 '레이-트레이싱' 마케팅 시절 이전에도,


게임 내에 제법 현실적인 반사 표면들이 많았다는 것을 알 수 있다





이는 실시간 광원 추적을 하는게 아니라, 미리 구워진 '큐브 맵 (Cube Map)'이라는 것을 이용한 광원 표현 기술


미리 구워진 일종의 반사 텍스쳐이기 때문에 위의 사진처럼 동적인 오브젝트인 스파이더맨은 반사가 되지 않는 것







큐브 맵은 엄청 거창한게 아니라, 말 그대로 큐브 형태의 육면체 환경 텍스쳐다





전후상하좌우로 어떤 모습이 보이는지 주변 환경의 사진을 딱 떠놓으면,


현실적인 것 처럼 보이는 (그러나 사실은 가짜인) 반사를 값싸게 재현할 수 있다




보통 레이 트레이싱이 없는 게임에서 반사 품질 옵션 조정은 저 큐브맵의 텍스쳐 해상도 조절





* 참조: 큐브 맵이란?

https://en.wikipedia.org/wiki/Cube_mapping


https://twitter.com/GabRoXR/status/1776609530169663544



큐브맵 이미지를 통해 현실의 물체가 가상의 물체 표면에 반사되는 것을 재현하는 애플 ARkit






애플 ARkit의 큐브맵 생성 속도를 보여주는 짤

(현실의 조명을 바꾸자 실시간으로 가상 물체 표면 반사광 표현에 쓰이는 큐브맵도 약간의 시간차를 두고 수정되는게 보임)





애플 ARkit은 '환경 텍스쳐 (Environment Texture)'라는 이름으로 현실의 사진을 찍어 큐브맵을 만든다


물론 엄청 고해상도의 큐브맵은 아님





패스쓰루 환경이 아니라 다이얼을 돌려 몰입형 환경으로 바꾸면, 


그때는 현실 환경 텍스쳐가 아닌 몰입형 환경의 큐브맵을 사용한다





현실의 표면에 드리워지는 그림자, 저런 반사광 등등의 디테일 덕분에 애플 비전 프로의 가상 오브젝트들을 프레젠스가 뛰어남





* environmentTexturing 관련 다큐먼트

https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration/2977509-environmenttexturing







비전 프로는 다른건 칼 같이 하면서, 


유별나게도 프레젠스의 핵심 요소의 오클루전은 두루뭉술하게 처리하려는 경향이 있다





위의 짤은 가상 패널과 현실의 의자가 겹쳐질 때, 


경계선이 칼같이 떨어지지 않고 소프트 엣지 + 애매한 반투명화가 적용되는 모습





이는 돌고 돌아, 다시 처음에 얘기했던 주변 환경 3D 메싱 문제와 겹치기 때문이다


(사실 여기에 골치아픈 UI 설계 문제도 겹친다. 오클루전이 너무 칼같으면 조작용 패널이나 안내용 메뉴가 현실의 오브젝트나 벽 뒤에 생성되었을 때 아예 안 보이거나 조작이 불가능해진다. 이 때문에 그냥 두루뭉실하게 대충 넘어가면 이런걸 생각할 필요가 없으니 편한 것. 비전OS는 기능적으로 칼같은 하드 오클루전이 가능하긴 하지만, 부정확한 3D 메시와 이러한 UI 설계 문제 때문에 대부분의 앱들이 소프트 오클루전 + 반투명화만 사용해 "이게 제대로 된 오클루전이여, 아니여?" 하는 불분명한 느낌을 주려고 한다)







주변의 관전자, 카메라맨과 가상의 F1 자동차는 마치 별개의 차원에 있는 것 마냥 서로의 존재를 무시하고 있다


원래라면 옆의 사람이 가까이 왔을 때 그 뒤의 배경에 존재하는 자동차가 자연스럽게 가려져야 하지만,


이게 제대로 안 지켜지는 상황이 발생하며 '프레젠스'가 무너진다



"아 그렇지, 이건 진짜가 아니라 그냥 가상의 물체지...;;"





그리고 이건 상당히 달성하기 어려운 문제다







메타 퀘스트 3 와 달리, 비전 프로는 3D 스캔용 라이다 센서가 항상 돌아간다


주변 환경에 대한 3D 메시를 항상 실시간으로 만들려고 노력한다는 얘기다





근데 이렇게 실시간으로 라이다 스캔을 돌려도 왜 모든 다이나믹 오클루전을 완벽하게 실행하지 못 하냐?






https://youtu.be/ZuywjOFxB5Y?si=oPw-v-qMCLaKilAm





비전 프로의 라이다 스캔 속도, 거리, 해상도를 알 수 있는 짤





라이다는 그렇게 만능이 아니다


생각보다 실시간 갱신 속도가 느리고, 해상도도 높지 않으며, 가까운 곳만 스캔이 가능





비전 프로를 쓰고 방에 들어간다고 해서 짠! 하고 순식간에 방의 구석구석이 모두 스캔되고, 


방 안에서 움직이는 모든 물체의 실시간 고해상도 3D 메시를 만드는 것에는 한계가 있다는 얘기다







그래서 결국 다시 돌고 돌아 실시간 '환경 이해 능력'의 문제로 돌아온다


MR의 쟁점은 기계가 현실을 완벽하게 이해하고 분석할 수 있는 수준까지 끌어올릴 수 있냐는 거다





웃긴게, 저걸 해결하면 거리의 모든 정보를 이해하는 자율주행 자동차, 


일상의 모든걸 이해하고 보조하는 도우미 로봇 같은걸 만들 수도 있다







애플은 비전 프로 홍보 초기에,


"비전 프로는 당신의 방 천장 전체를 확 트인 하늘로 바꿔주는 기능도 있습니다!"


...라며 영상까지 만들었다가, 어느 순간 모든 홍보 자료에서 저 부분을 삭제하고는 입을 싹 닫고 있다





왜냐하면, 이건 100% 완벽하게 작동하게 만들 수 없는 기능이니깐


천장의 정확한 정의가 어떻게 되며, 스캔이 완벽하게 안 된 방의 천장을 어떻게 순식간에 전부 구분해 낼 것이며, 스캔이 불가능할 정도로 너무 높거나 넓은 방의 천장은 어떻게 처리할 것이며, 천장이 없는 야외에서 구동한다면 어떻게 할 거고...





이런 문제로, 이건 애초에 그냥 막 실행해도 100% 완벽하게 작동하는 앱으로 만드는게 불가능하다







"와! 그러면 미래에 라이다 센서가 무지무지하게 발달하면 해결?"


...이라고 볼 수도 있겠지만,





개인적으로 라이다나 ToF 뎁스 센서는 어디까지나 보조적인 영역이지,


미래는 결국 카메라 이미지 기반 AI 데이터 처리 방식으로 가지 않을까 하는 생각





테슬라 같은 경우도 오직 카메라를 이용한 컴퓨터 비전 시스템으로만 굴러가도록 만들고 있고,


과연 전력 소모나 복잡성 문제가 있는데, 미래의 안경형 AR 장비에도 라이다 센서가 덕지덕지 붙어있을까 생각해보면 약간 당연하기도







3D 맵핑과 오클루전의 미래는 어떤 모습일까요?


미리 스캔된 3D 메시는 고정된 장소에서의 AR 경험에는 유용하지만, 움직이는 물체에 정확하게 다이나믹 오클루전을 적용하려는 경우에는 4m 이상의 범위에서 즉각적인 깊이 측정이 필요하고, 이는 일반적인 뎁스 센서로도 힘듭니다



사실적인 AR 환경을 구현하려면 거의 무한대에 가까운 범위의 고해상도 깊이 맵을 생성하는 센서가 필요합니다.



센서 하드웨어의 개선으로 적외선 또는 스테레오 센서에서 더 높은 해상도와 범위를 확보할 수 있지만, 이러한 하드웨어적 스펙 개선은 가까운 미래에 한계에 부딪혀 성능이 크게 오르지 않는 지점이 올겁니다.



흥미로운 점은 3D 센싱 연구에서 딥러닝을 활용하여 3D 스캔의 속도와 품질을 개선함으로써 이러한 하드웨어 문제를 소프트웨어 문제로 전환하는 대안적 접근 방식이 등장했다는 점입니다.



인공 신경망을 이용한 딥러닝이 향후 오클루전 문제를 해결하는 열쇠가 될 수 있습니다.



이 방법은 사람이 눈을 통해서 거리를 추정하는 방식과 마찬가지로, 카메라 이미지에서 시각적 단서를 골라낼 수 있는 신경망을 사용하여 3D 구조를 추정해 냅니다. 

즉, 현실 세계의 사물의 크기에 대한 일반적인 지식을 사용하여 거리를 추측하는 것입니다. 

네트워크는 대규모 이미지 데이터 세트를 학습하고 장면에서 사물을 분할한 다음 이를 인식하여 깊이를 추정할 수 있습니다.



즉, 신경망을 설계하고 충분한 데이터 세트로 훈련시킬 수 있다면 하드웨어 비용을 추가하지 않고도 현세대 뎁스 센서의 해상도와 스캔 범위 한계를 극복할 수 있습니다.



신경망 장면 분할(http://www.ais.uni-bonn.de/papers/KI_2014_Hoeft_RGB-D_Semantic_Segmentation.pdf)



위 이미지는 3D 스캔 데이터의 품질을 향상시키기 위해 뎁스 센서와 함께 신경망을 사용하여 장면을 분할하고 라벨을 지정하는 방법을 탐구하는 논문에서 가져온 것입니다.




요약

 1. 오클루전은 AR 경험의 사실성을 가장 크게 향상시킬 수 있는 기술이기 때문에 AR 퍼즐의 가장 큰 조각 중 하나입니다.


 2. 오늘날의 뎁스 센서는 실시간 오클루전을 구현하기에 너무 느리고 범위가 제한적이며 해상도가 낮습니다.


 3. 향후 뎁스 센서의 스캔 범위와 느린 스캔 속도를 해결하는 열쇠는 딥러닝이 될 수 있습니다.




 * 출처: 왜 AR에서 오클루전은 이렇게 어려운건가요?

https://hackernoon.com/why-is-occlusion-in-augmented-reality-so-hard-7bc8041607f9







AI 딥러닝 덕분에 이미 몇년 전부터 정적인 이미지에서도 정확한 사물의 윤곽선을 따는 세그멘테이션 (Segmentation) 영역이 발전하고 있고,


동영상의 옵티컬 플로우를 이용해 뎁스 추정을 하는 AI도 나온지 꽤 되었다


이러한 것들이 언젠가 수렴해, 실시간으로 정확한 윤곽선을 가진 뎁스 추정까지 할 수 있게 된다면 다이나믹 오클루전도 완벽하게 적용이 가능해진다







실제로 현재 메타 퀘스트의 경우 카메라만 이용해 매 프레임마다 10,000 개의 뎁스 포인트를 만들어 뎁스 추정을 한다


이 정도 모바일 칩셋에서 실시간으로 해내는 것 치고는 인상적이라고 생각하지만,


제대로 쓰려면 좀 더 고해상도 뎁스맵 + 세그멘테이션이 필요하다





어떻게 하면 카메라 이미지를 저전력으로, 더 빠르고 고해상도로 처리를 할 수 있을까?






https://www.sony-semicon.com/en/technology/ivs/index.html


https://www.roadtovr.com/michael-abrash-iedm-2021-compute-architecture-for-ar-glasses/



현재 나오는 얘기 중 하나는 고대역폭 HBM 메모리와 결합된 스마트 AI 이미지 센서다





카메라에서 들어온 대용량 RAW 이미지 데이터를 굳이 처리용 중앙칩까지 힘들게 보낼 필요없이,

(실제로 이 데이터 전송이 병목현상 + 전력소모 문제가 크다)


카메라 이미지 센서 자체적으로 모든 이미지 프로세싱, 컴퓨터 비전을 처리한 후 가공된 저용량 데이터만 보내는 방식





메타 내부에서는 특정 AI 알고리즘 구동에 최적화 된 전용 가속 칩 구조를 접목하면, 


이미지 센서 내부에서 핸드 트래킹, SLAM 등등에 대한 프리 프로세싱을 마칠 수 있을거라고 보고 있다





아마 뎁스나 세그멘테이션 부분도 이런 프리 프로세싱된 데이터 덕을 볼 수 있을 듯





 * 참조: 픽셀 수준에서의 비전 프로세싱

https://www.novuslight.com/vision-processing-at-the-pixel-level_N12834.html






https://www.projectaria.com/scenescript/



최종적으로는 이렇게 센서들을 바탕으로 현실을 인식한 후,


AI가 이를 해석하여 주변 환경을 완벽하게 이해하는 형태가 가장 이상적인 종착점이다





이 수준까지 가면,



"내 방의 천장만 탁 트인 하늘의 이미지로 바꿔줘"


"저기 있는 창문으로 수족관 이미지가 보이게 바꿔줘"



...같은 것들이 지금같은 큰 어려움 없이 쉽게 가능해질 지도







이미 2019년에 구현된 구글맵의 '라이브 뷰' AR 기능





위에서 말한 내용들이 GPS 기반 지도 데이터 + 이미지 인식과 결합되면, 저러한 UI들이 훨씬 더 강한 프레젠스로 구현될거고,


야외에서 고글이나 안경형 기기를 끼고 '진짜' 증강현실이 뭔지 제대로 경험이 가능하지 않을까





그 때가 되면 본문 도입부에서 얘기했던 '룸 스케일 VR'의 그림자와 감옥에서 진정으로 벗어난, 제대로 된 MR이라고 할 수 있겠다