2016년 10월 16일 일요일

07-3. 멀미(Motion Sickness)의 원인과 해결을 위한 노력들

일반적으로 멀미는 자동차나 항공기 그리고 특히 배를 탈경우에 심하게 느끼는 것으로 몸(신체)이 느끼는 것과 눈이 보고 있는 것과의 차이로 인해 뇌가 적절히 대응(해석)할 수 없게 됨으로써 결과적으로 신체가 느끼는 괴로움이다.

조금 더 세세히 살펴보면
사람은 전정기관(Vestibule)을 이용하여 몸의 균형을 잡아가게 된다. 그러나 전정기관만으로 항시 균형을 유지하기는 쉽지 않다. 따라서 뇌는 눈으로 부터 들어오는 시각적 정보까지 통합하여 항상 균형을 유지해간다. 그런데 배를 타게 되면 배의 움직임에 따라 감지되는 전정기관의 정보와 파도가 일렁이는 시각적 정보가 차이가 생기게 되는데 뇌는 이 두가지 정보의 차이에 대해 익숙해져 있지 않기 때문에 몸(신체)를 어떻게 가누어야 할지 모르게 된다. 이러한 정신적 괴리의 상태가 신체적 괴로움을 야기하는 것이다.

결국 VR을 체험할 때 멀미를 느끼는 원인은 인지부조화(Cognitive dissonance)에서 기인한다. 즉, 뇌는 그 동안 살아오면서 지극히 당연하면서 자연스러운 신체적 감각정보와 시각적 정보(Visual Information)의 통합에 익숙해져 있는 상태인데 VR을 경험할때는 현재 눈에서 보고 있는 시각적 정보에 대해 올바로 매칭되는 신체적 균형정보가 들어 오지 않게 됨으로써 자신의 몸의 상태를 어떻게 제어 해야할지 모르게 되는 것이다.

이를 해결하기 위한 노력들은 다음과 같다.

* 고해상도 디스플레이의 사용과 넓은 시야각(FOV)의 제공
   : VR 기기는 대부분 디스플레이가 눈에 근접해 있기 때문에 낮은 해상도의 경우 픽셀이 보일 수도 있다. 저해상도 그래픽은 멀미보다는 눈의 피로를 가중시키는 경향이 있지만 부정확한 그래픽 정보는 현실성을 떨어 트리는 요인이 되기도 한다. 또한 좁은 시야각은 현실과 달리 충분한 시야 정보를 얻을 수 없기 때문에 멀미를 유발할 수도 있다.
  : 오큘러스 - 2160 X 1200 pixel, 90Hz Built-in AMOLED
  : 삼성 기어 VR - 2560 X 1440 pixel, 60Hz Super AMOLED
  : HTC 바이브 - 2160 X 1200 pixel, 90Hz OLED
  : 소니 VR - 1920 X 1080 pixel, 90Hz, 120Hz OLED

* 레이턴시(Motion-to-Photon Latency) 최소화
  : 사용자의 동작과 디스플레이의 그래픽 처리 시간을 최대한 일치시키는 기술을 적용하고 있다. 90Hz의 디스플레이의 경우 약 1/100초정도 밖에 차이가 나지 않는다. 끊임 없이 움직이는 사용자의 동작에 맞춰서 3D 그래픽을 랜더링하여 전달하는 것은 고사양의 GPU를 요구하는 이유가 되기도 한다.

아직 실용적이지는 않지만 아래와 같은 대안도 있다.
* 전정기관에 시각정보에 대응할 만한 자극을 전달하는 "Hacking the inner ear" 기술
  : 현재로써는 약간 전기자극을 전정기관에 흘려 넣는 방식이지만 추후에는 조금더 정교하게 정정기관을 속일 수 있는 기술이 나오지 않을까 싶다.

그리고 가외로 '멀미약'을 먹는 경우도 있는데 VR 멀미에 특효인 전용 멀미약이 등장하지 않을까 예상해 본다.


< 참고링크 >
http://m.post.naver.com/viewer/postView.nhn?volumeNo=3985750&memberNo=29481007&vType=VERTICAL
http://www.bloter.net/archives/265356
http://www.inven.co.kr/webzine/news/?news=152580

전정기관(Vestibule): 머리의 수평, 수직 선형 가속도, 회전 운동을 감지하여 중추평형기관에 전달하여 신체의 균형을 유지하게 하는 기관으로, 세반고리관과 전정을 통틀어 일컫는다.

2016년 10월 9일 일요일

07-2. Motion Tracking System: 6 DoF

6DoF(Six degrees of freedom)는 Oculus rift에서 사용하고 있는 모션 추적 시스템이다.

* 위치 추적
  X = 좌/우
  Y = 상/하
  Z = 전/후

* 방향의 추적
  Pitch = X축으로의 회전 (고개를 끄떡임)
  Yaw  = Y축으로의 회전 (얼굴을 좌/우로 돌림. 도리도리)
  Roll  = Z축으로의 회전 (머리를 좌/우로 까닥거림)

6 DoF는 아래의 센서들을 활용하여 계산하게 된다.

* 자이로 센서(Gyro sensor): 물체의 회전 혹은 기울어진 정도를 감지하는 센서
* 가속도 센서(Acceleration sensor): 움직임의 방향과 그 크기를 감지하는 센서
* 자기장 센서(Magnetic sensor): 지구의 자기장을 감지하여 자신이 놓인 방향을 탐지.
* 키넥트 센서(Kinect sensor): 사용자의 3차원 움직임에 대한 감지

자이로 센서와 가속도 센서로 사용자의 해드 트레킹 및 핸드(컨트롤러) 트레킹이 가능하겠지만 일련의 오차에 대한 보정 그리고 머리와 손 이외의 전체적인 신체의 움직임을 감지여 보다 높은 정확도의 모션 인식을 위해 키텐트 센서를 이용하게 된다.


  Oculus Rift: Constellation tracking sensor


07-1. Motion Tracking System: Lighthouse

1) Lighthouse (2 base stations emitting pulsed IR lasers)

HTC Vive는 '라이트하우스(Lighthouse)라는 방식으로 사용자의 동작(정확히는 해드셋과 컨트롤러)을 인식한다. Lighthouse의 핵심은 Base station(우리말로 번역하면 '기지국'이라고 한다)에 있다. Base Station은 1초에 60회로 회전하면서 적외선 레이저(Infrared Laser: IR Laser)를 수평축과 수직축으로 발사하는 장치를 가지고 있다. 해드셋과 컨트롤러에는 이들 레이저를 인식하는 감지센서(photosensor)를 가지고 있다. 이 센서가 감지한 위치와 위치의 변화량을 가지고 이동 방향을 알게 된다. HTC Vive는 2개의 Base station을 이용함으로써 3차원 공간에서 움직임을 인식할 수 있게 되는 것이다.




싱크케이블(Sync cable)로 연결된 2개의 Base station에 의해 인식가능한 사각의 영역이 룸스케일(room scale)이 되며 이 영역을 사용자가 가상환경 내에서 인식하 수 있도록 해주고 있다.


Base station은 비콘(Beacon)이라고도 한다. 즉, 내가 어디에 위치해 있고 어떻게 움직여 가고 있는지를 펄스 레이저(Pulsed laser)를 이용하여 인식하여 거리와 위치를 측정하는 장치라고 생각하면된다. 이러한 원리를 이용해 2개의 Base station을 가지고 3차원 공간상에서의 거리와 위치 그리고 이동방향(회전을 포함해서)을 추적하는 것이다.

2016년 10월 3일 월요일

06-4. MS 홀로렌즈: 홀로그래픽 렌즈의 원리


마이크로 소프트홀로렌즈(MS Hololens)의 렌즈 및 디스플레이 장치의 구성은 아래와 같다.

* See-through holographic lenses (waveguides)



MS Hololens의 Lens와디스플레이 원리를 명확히 설명하고 있는 도식을 아직 찾지는 못하였습니다. 위의 그림은 그럼에도 'See-through holographic lenses (waveguides)'에 대한 원리적인 개념을 이해하는데는 도움이 되리라 생각됩니다.

2016년 10월 2일 일요일

06-3. VR 렌즈의 이해: 프레넬 렌즈(Fresnel Lens)

HTV VIVE와 Oculus Rift는 프레넬 렌즈(Fresnel Lens)를 이용하고 있다. VR HMD에 왜 렌즈가 필요한지 그리고 그 렌즈가 어떻게 작동하는지에 대해 설명하고자 한다.

1) 첫번째 이미지는 일반적인 사물을 바라볼 때의 현상을 보여주고 있다. 동공(pupil)과 수정체(lens)를 거쳐 망막(retina)에 상이 매치게 된다.


2) 그런데 VR HMD는 우리의 바로 눈앞 3 ~ 7cm 이내에 디스플레이 장치가 놓이게 된다. 대상 이미지가 사람의 눈에 너무 근접하게 되면 망막에 촛점이 정확히 매치게 되지 않는다.


3) 위에서 처럼 잘못된 촛점을 보정하기 위해 VR 기기에 렌즈를 장착하게 된다. 장착된 렌즈는 근접한 거리의 이미지가 아래의 이미지 처럼 망막에 촛점이 올바로 맺도록 보정해 주는 기능을 하는 것이다. 이러한 이유에서 VR HMD 기기들에 렌즈를 사용하게 되는 것이다.


4) 그런데 실제로는 바로 눈앞의 디스플레이장치에서 나온 사물이 바로 눈앞에 있는 것처럼 보이는 것이 아니라 조금 더 멀리 현실 시야의 공간 어디쯤에 있는 것처럼 보이게 하기 위해서는 렌즈의 굴곡을 변화시켜야 한다. 그러면 아래의 그림처럼 바로 눈앞의 HMD 안에 사물이 있는 것이 아니라 그 너머 공간 어디쯤에 있는 것처럼 가상 현실 내의 사물을 보이게 할 수 있는 것이다. 문제는 일반적인 1개의 볼록렌즈로 이를 해결하려 한다면 렌즈의 크기와 무게가 커지는 결과를 초래하게 된다.


5) 그래서 이러한 문제를 해결하기 위한 방법으로 프레넬(Fresnel)이라는 사람이 개발한 프레넬 렌즈(Fresnel Lens)를 장착하여 사용하게 되는 것이다.


6) 프레넬 렌즈(Fresnel Lens)는 아래의 그림과 같은 원리로 빛이 특정 촛점에 모이도록 하는 것이다.



< 참고 원문 >
https://vr-lens-lab.com/lenses-for-virtual-reality-headsets/

06-2. VR 렌즈의 왜곡(distortion)과 보정방법

몰입(Immersion)을 높이기 위해서는 넓은 시야(FOV; Field of View)를 제공해야 한다. 이는 곡면 디스플레이 장치(curved spherical display)를 이용한다면 큰 효과를 얻을 수 있을 것이다. 그러나 이러한 기술은 매우 값비싼 비용을 지불해야 한다. 더욱이 HMD 같은 기기에 곡면 디스플레이를 제공하는 것은 아직은 엄두가 나지 않는 일일 것이다. 따라서 효과적으로 시야각(FOV)를 넓히는 방법이 볼록 렌즈(lense)를 통해 작은 사각형의 영상-일반적으로 모든 디스플레이 장치는 사각형으로 되어 있음-을 보도록 하는 것이다.


이러한 방법이 시야각(FOV)을 손쉽게 넓힐 수 있는 방법이긴 하지만 여기에는 문제가 따른다. 즉, 이미지 왜곡이 발생한다. 아래의 그림에서 처럼 우측의 이미지를 렌즈를 통해 보게되면 좌측의 이미지 처럼 보이게 된다. 이러한 왜곡 현상은 네모서리가 길게 늘어 나는 특징을 가지고 있기 때문에 핀쿠션 왜곡(Pincushion Distortion)이라고 한다.


이를 해결하기 위한 방법으로 배럴 왜곡(Barrel Distortion)을 원이미지에 적용하는 것이다. 왜곡의 특징이 아래와 같은 통과같이 생겼다고 해서 배럴 왜곡이라고 부른다.

즉, 아래의 그림처럼 우측의 원래 이미지에 배럴 왜곡을 적용하여 제시함으로써 결과적으로 렌트를 통해 들어온 정보가 원래의 이미지와 동일하게 보이도록 만드는 것이다.

일반적으로 가상현실 이미지들이 일련의 렌즈 장치를 통해 보지 않을 경우 아래처럼 보이는 이유가 바로 그 배럴 왜곡을 적용한 결과이기 때문이다.


위에서 설명한 시각적 왜곡현상은 수학적으로 계산해 낼 수 있기 때문에 양안시를 활용한 3D 가상현실 이미지를 만드는 프로그램들의 경우 소프트웨어적으로 자동처리가 되는 것이 일반적이다.


< 참고 원문 >
http://smus.com/vr-lens-distortion/

< 더 자세히 알고 싶다면 >
http://doc-ok.org/?p=1414

2016년 10월 1일 토요일

06-1. 3D를 보는 눈: 양안시와 입체시의 원리

여기서는 사람이 어떻게 3차원을 보게되는지에 대한 기본원리를 소개하고자 한다. 사실 우리의 눈이 3차원을 보는 것은 아니다. 즉, 시각 정보를 받아 들이는 망막(retina)은 평면이기 때문에 세상이 아무리 3차원으로 되어 있다고 하더라도 우리의 눈은 2차원으로 정보를 수집할 수 밖에 없다. 결국, 3차원의 세상을 인식 혹은 지각(perception) 할 수 있도록 하는 것은 바로 우리의 뇌(Brain) 특히 후두엽(occipical lobe)이다.
그렇다면 뇌는 어떻게 3차원을 인식할 수 있는 것인가? 이는 두 개의 눈으로 부터 들어온 시각 정보를 통합하여 뇌가 재구성하는 것이다. 뇌가 재구성한다는 말 속에는 경험을 토대로 한다는 의미를 내포하고 있다. 즉, 단순히 눈이 두개라고 해서 3차원을 인식하는 것이 아니라 두 개의 눈으로 세상을 살아가며 경험을 토대로 3차원을 인식하는 능력을 발달시켜 가는 것이다. 부연 설명을 하자면 갓 태어난 아이는 물론, 시신경 시스템이 완전히 발달하지 못한 이유도 있겠지만 세상에 대한 경험이 없는 상태이기 때문에 3차원 세상을 바로 인식할 수는 없을 것이다.

두 개의 눈으로 시각정보를 처리하는 것을 양안시라고 하며 양안시차(Binocular disparity)에 의해 생성된 정보 혹은 3차원 으로 뇌가 재구성할 수 있도록 하는데 필요한 여러 각도의 시각 정보를 입체시라고 한다.

1) 양안시(Binocular Vision)
   두 개의 눈이 놓여진 위치에 따라서 각각의 망막에는 시각차에 의한 다른 이미지가 투영된다. 이는 각각의 시신경(Optic nerve)을 거쳐서 뇌로 전달이 되며, 뇌는 이 정보를 통합하여 입체로 인식하게 된다.




2) 입체시(Stereopsis)
   입체를 인식한다는 것은 깊이를 지각한다는 것과 일맥상통한다. 우리의 눈이 응시하는 응시점(Fixed point)을 기준으로 근거리 지점(Close point)과 원거리 지점(Far point)의 정보가 어떻게 망막에 다르게 매쳐지는지를 아래 그림에서 보여주고 있다.






3) 가상현실도 사실은 2D
   우리가 가상현실 기기를 통해 바라보는 시각 정보는 사실 2차원 디스플레이 장치에서 보내진 2차원 시각 정보에 불과하다. 단지, 사람의 양안시차 정보를 해석하는 뇌의 기능을 이용하여 3차원으로 인식할 수 있도록 뇌를 속이는 것이 가상현실의 3차원 디스플레이 기술이다.