가상현실 12. 실제 가상현실 구현
가상현실을 어떻게 구현하는가?
가상현실에 필요한 데이터는 Non-Interactive Data와 Interactive Data가 있다.
Non-Interactive Data를 어떻게 만들까?
시각정보만 중요하고 굳이 촉각, 청각 정보를 구현하지 않아도 되는 배경 데이터가 바로 Non-Interactive Data에 해당한다. 배경 데이터는 360도 이미지다. 이 360도 이미지를 어떻게 캡처하고, 어떻게 렌더링할까?
(1) Panorama Mosaics 카메라를 빙글빙글 돌려가며 찍고, 그 찍은 이미지를 이어붙이는 가장 단순한 방법. Parallax Error 문제가 있다. 촬영 중 카메라를 조금이라도 삐끗하면, 이어붙일 때 위치가 어긋나는 문제가 있다.
(2) Lightfield / Lumigraph 아이디어는 특정 지점에 들어오는 모든 빛 정보를 데이터화 하고, 사용자의 아바타가 그 지점으로 갔을 때 빛 정보를 토대로 360도 공간을 다시 렌더링하자는 것이다.
특정 지점의 빛은 (x, y,z)와 빛의 방향 (s, t)로 표현할 수 있다. 즉 5차원 정보고, 빛의 정보를 모두 모아둔 함수가 Plenoptic function이다. 고정된 기준 평면 2개를 설정하면, 빛을 4차원 정보로 표현할 수 있다. 카메라 평면(UV)와 초점 평면(ST)은 서로 평행하게 놓여져 있다. 어떤 빛줄기가 첫번째 UV 평면을 뚫고 가는 좌표를 (u,v)라 하고, 두번째 ST 평면을 뚫고 가는 좌표를 (s,t)라고 하자. 빛줄기는 (u,v,s,t) 4차원 정보로 표현 가능해진다. 이 방법이 Lightfield 방법이다.
그렇다면, 특정 지점의 빛을 어떻게 측정할까? 이산적으로 Sampling하면서 촬영한다. 카메라 한대로 격자 형태로 움직여가며 촬영할 수 있다. 그러나 이는 동적인 장면을 찍을 수 없으며, 특정 방향만 촬영 가능하다. 360도 영상을 표현하는데 제한이 있다. 그렇다면 샘플링할 격자에다가 카메라를 한대씩 달아두고 동시에 촬영하면? 동적인 장면을 찍을 수 있다. 그러나 여전히 특정 방향만 촬영 가능하다. 플렌옵틱 카메라를 사용하면 한대의 카메라로 두번째 방법의 효과를 얻을 수 있다고 한다.
이론적으론 완벽하지만 캡처가 힘들고, 자유로운 시점 이동, 360도 영상을 구현하려면 천문학적인 데이터 용량이 필요하다.
이를 해결하기 위해 다양한 기법이 제시된다.
(1) 3D Lumigraph 사용자의 시점이 직선에서만 제한되는 경우, 3차원 데이터만으로도 충분한 정보를 생성할 수 있다.
(2) Concentric Mosaics 카메라를 임의의 동심원에서 움직여가며 촬영함. 그 원 내에 있는 지점에서는 시차가 반영된 영상을 생성할 수 있음.
Interactive Data를 어떻게 만들까?
정리한 내용은 여기까지입니다.