간단한 설명과 재미없게 자세한 설명이 반복됩니다.


간단한 설명만 보고 싶으면 대충 접힌 부분은 무시하고 빠르게 넘어가면 됩니다.





VR AR MR XR이란?


쉽게 말하자면 VR은 현실과 단절된 가상 현실. AR 또는 MR의 경우에는 현실 위에다가 가상의 물건을 얹고 상호작용을 하거나 하는것입니다.

XR은 y=ax+b와 같은 방정식처럼 x에 모든것이 들어갈 수 있다고 생각하면 됩니다.



자세한 분류 방법 (클릭시 펼쳐짐)

XR의 척도 - Reality-Virtuality Continuum - https://arca.live/b/vrshits/52321606 





VR에서 사람들에게 가상 현실을 보여주는 방법


VR은 사람이 현실을 바라보는 방법을 베껴서 구현하는 기술이라고 생각하면 됩니다.


개인적으로는 쌍안경을 떠올리면 그나마 비슷한 느낌이라고 생각합니다.



VR에서는 일반적인 화면을 그냥 보여주는게 아니라 디스플레이를 렌즈를 통해 화면에서 보이는 것을 왜곡해서 현실에서 사람이 보는것과 비슷하도록 묘사합니다.


현실에서 사람이 세상을 바라보는데 중요한 것 중 하나는 심도입니다. 흔히들 한쪽 눈을 감은채로 왼쪽 검지와 오른쪽 검지를 맞대기가 어렵다고 하는데, 그것과 비슷합니다. 왼쪽 눈에서 보는 물체와 오른쪽 눈에서 보는 물체의 모습이 다른것을 통해 심도를 알 수 있습니다.


VR 또한 왼쪽과 오른쪽 눈 각각 다른 이미지를 보여주는데, 이를 통해 심도를 만들어냅니다. 그리고 초점거리는 대략 1.2~2미터 사이로 고정되어있습니다.


전반적으로 VR에서는 트래킹, 디스플레이, 렌즈 광학과 같은 부분들이 크게 영향을 끼치고 전반적으로 스마트폰과도 유사한 기술 스택을 가지고 있습니다.



자세한 설명 (클릭시 펼쳐짐)


여기서는 HTC, 밸브, 오큘러스가 시작되었던 시기부터를 언급하고 있습니다. 그 이전부터 시작하면 너무나도 양이 많고 큰 의미를 갖고 있다고 보기 힘들다고 생각합니다.


기본적으로는 다들 생각하기 쉬운 내 눈앞에 거대한 디스플레이가 있다! 라는 생각을 갖고있다면 아마 이런 느낌일겁니다.



이걸 쓴채로 머리를 왼쪽 오른쪽으로 움직이면 거기에 맞춰 화면도 움직입니다.


여기서 조금 더 나아가면 3DoF와 6DoF가 있습니다. 이미지로 쉽게 보자면 이렇습니다:



좌측은 머리를 그 자리에 고정하고 회전값만 받아들이는 상황이고

우측은 몸의 위치와 회전값을 모두 받아들이는 상황입니다.


이걸 쉽게 말하자면 좌측은 방 안에서 돌아다니려면 조이스틱을 이용해서 움직여야하고 그 자리에 못으로 박힌듯이 가만히 고정되어있습니다. 세상이 내 머리의 위치에 고정되어서 따라다닙니다.


우측의 경우, 방 안에서 돌아다니려면 그냥 현실에서도 돌아다니면 됩니다. 조금 더 멀리 가고싶고 편하게 가고싶으면 조이스틱을 사용하는겁니다. 세상은 그곳에 있고 나 자신만 그곳에서 움직입니다.













VR 디바이스가 내 위치를 인식하는 방법


카메라를 통해서 외부를 인식하고 위치를 추정하는 방식과

센서를 통해서 외부에서 보내오는 신호를 인식하고 위치를 추정하는 방식으로 나뉩니다.


어려운가요?




내가 밖을 보고 위치를 추정하는 방법과 밖에서 나를 보고 어느 위치에 있는지 추정하는 방법의 차이라고 생각하면 됩니다.


현재로써는 대부분 카메라를 통해서 Inside-Out 트래킹을 사용합니다.



자세한 설명 (클릭시 펼쳐짐)


일단 트래킹 방식은 이렇게 되어있습니다.


카메라를 통한 인사이드 아웃은 컴퓨터 비전과 AI가 어느정도 개입할 여지가 있으며 소프트웨어의 중요성이 강합니다.


글래스류의 경우 글래스 양쪽 끝에 카메라를 장착하고 SLAM을 통해 트래킹을 하기도 합니다.


카메라를 통해서 컨트롤러를 트래킹하는 방법은 간단하게 해당글을 보면 알 수 있습니다.


인사이드 아웃 트래킹에서 컨트롤러를 인식하는 방법 - https://arca.live/b/vrshits/52388179


최근에는 메타 퀘스트 프로 터치 컨트롤러에서 컨트롤러에 카메라를 넣고 스냅드래곤 662 칩을 넣어 자체적으로 위치를 추적 할 수 있도록 하기도 합니다.


밸브의 라이트 하우스 (베이스 스테이션)의 구조와 원리에 관하여 - https://arca.live/b/vrshits/96133117







내가 보는 시야, 해상도는 어떻게 나타낼까?


시야는 FOV라는 이름을 통해서 가로와 세로로 얼마나 넓은 범위를 볼 수 있는지를 나타냅니다.

해상도의 경우, PPD라는 요소를 통해 나타냅니다. (각도당 픽셀 수)


FOV - 시야각

PPD - 각도당 픽셀 수

해상도 - 디스플레이에 있는 픽셀의 수


PPD는 렌즈의 특성상 렌즈의 중앙부가 픽셀이 밀집되고 외곽으로 갈수록 PPD가 낮아지기때문에 이 VR HMD의 PPD는 35다! 라고 하는 경우 중앙부의 PPD만 35일 가능성이 있습니다. 결국 VR HMD의 제조사에서는 범위에 따른 PPD를 제공하는것이 이상적입니다. 


일반적으로 해상도가 같을 경우 FOV와 PPD는 서로 반비례 관계입니다. (물론 FOV를 늘리고 디스플레이 중앙부에 픽셀을 더 몰아줘서 FOV와 중앙부 PPD를 높일수는 있습니다.)


다음의 단어들은 사용하는 사람마다 다르게 사용되는 단어이므로 그때 그때 맥락에 맞춰서 생각하면됩니다.


가상의 이미지 - 실제 오브젝트 - 렌즈 - 아이박스 순


스윗스팟 (또는 아이박스) - 렌즈의 위치는 고정되어있을때, 사람의 눈 위치를 움직일 경우 화면이 보이는 범위



Edge to Edge Clarity (경계에서 경계까지의 선명도 또는 스윗스팟) - 사람의 눈이 스윗스팟 또는 아이박스에 위치해있을때 렌즈를 통해 본 이미지가 흐림 없이 선명한 정도 (렌즈 특성상 주로 중앙부가 선명하고 바깥으로 갈수록 흐려집니다. 이 선명한 중앙부가 얼마나 넓느냐를 이야기)


스윗스팟 (또는 아이박스)이 작을 경우, 헤드셋이 조금만 흘러내리거나 어긋나도 화면이 잘 안보이게 되고,

Edge to Edge Clarity(또는 스윗스팟)가 나쁠 경우, 화면의 정중앙만 선명하게 보입니다.



스윗스팟 (또는 아이박스)이 클 경우, 헤드셋이 어긋나더라도 잘 보이며, 헤드셋의 동공 간 거리(IPD)를 내 눈의 동공 간 거리보다 크게 하여 FOV를 늘리는 꼼수도 가능합니다.

Edge to Edge Clarity(또는 스윗스팟)가 좋을 경우, 시야 전체에 걸쳐서 선명하게 보입니다.




자세한 설명 (클릭시 펼쳐짐)



일반적인 디스플레이나 스마트폰에서는 PPI라는 이름으로 인치 당 픽셀 수를 이야기하며 픽셀의 밀도가 넓을수록 하나의 요소를 그리는데 사용되는 픽셀들이 많아져서 좀 더 세밀화된 화면을 나타낼 수 있는 것으로 알려져있습니다.


하지만 VR에서는 전혀 상관없는 이야기가 됩니다.


위에서 이야기했던것처럼 디스플레이를 렌즈를 통해 왜곡해서 시야를 넓히는 방식이 사용되기때문입니다.


결국 디스플레이의 픽셀 수가 제한되어있다면 시야각과 PPD는 서로 역비례하는 요소이기때문에 FOV가 증가하면 PPD는 감소하고, PPD가 증가하면 FOV는 감소합니다.


또한 인간의 시야는 중앙부가 선명하고 바깥으로 갈수록 흐리기때문에 렌더링을 할 때에도 중앙부는 선명하고 외곽으로 갈수록 해상도를 낮추며 렌즈의 왜곡에 의해서도 중앙부에 픽셀이 밀집되고 외부로 갈수록 픽셀이 줄어듭니다.




좌측이 렌더링된 이미지(사용자에게 보여줘야 하는 이미지)라면 우측과 같이 중앙부의 픽셀을 많이 먹을 수 있도록 의도적으로 왜곡하게 됩니다.




이제 렌즈를 통해서 이미지를 수축하고 의도되었던 본래의 이미지를 보여줍니다.


이를 거치게 되면 중앙부의 PPD는 높고 가장자리로 갈수록 낮아집니다.






VR에서의 디스플레이


최근의 디스플레이는 LCD, mini LED를 백라이트로 사용한 LCD, 퀀텀닷을 쓰면서 mini LED를 백라이트로 사용한 LCD, OLED, micro OLED 디스플레이가 사용되고 있습니다.


최근의 트렌드에서는 렌즈의 유형에 따라 디스플레이가 결정되는 경우가 많습니다. 그 이유는 렌즈와 관련된 파트에서 설명합니다.


VR의 디스플레이는 1프레임을 보여줄때 1프레임을 보여주는 '시간'의 일부 시간동안만 화면에 불을 밝혀야합니다.


그렇지 않으면 사람의 머리가 움직이거나 회전했을경우 눈에 보여지는 이미지는 비록 짧은 시간이라고 하더라도 움직이기 이전의 이미지를 보게 되므로 멀미를 유발하게 됩니다.



자세한 설명 (클릭시 펼쳐짐)



그렇기때문에 Fast Switch LCD라고 불리는 유형의 LCD를 사용하거나 OLED와 같은 반응속도가 빠른 디스플레이를 사용합니다.


다만 OLED의 경우 밝기를 조절하기위해서는 화면이 켜지는 시간 또한 조절이 되는 경우가 많기 때문에 자칫하면 위에 있는것 처럼 멀미 문제를 발생 시킬 수 있습니다. (밝기를 조절할때 LCD는 그냥 밝기의 정도만 바꾸면 되는데, 대부분의 OLED는 PWM이라고 불리는 방식을 통해 화면이 켜지는 시간을 조절해서 밝기를 조절합니다.)


이러한 문제를 low persistence 이슈라고 부릅니다.


하지만 이러한 문제는 '대부분' 과거에 해결되었었던 문제이며 OLED 패널을 사용하는 모든 VR에 존재하는 문제는 아닙니다.


다만 이러한 제약에 의해 화면이 켜지는 시간이 줄어들면서 밝기 또한 많이 줄어들게 됩니다.





VR에서의 렌즈




좌측: 팬케이크 렌즈. 우측: 프레넬 렌즈



VR에서의 렌즈는 보통 3가지로 나뉘게 됩니다.


비구면 렌즈, 프레넬 렌즈, 팬케이크 렌즈


비구면 렌즈는 제일 좋은 퀄리티와 선명도를 보여주지만 무게가 무겁고


프레넬 렌즈는 가볍고 무난하지만 선명도나 빛번짐과 같은 문제가 있습니다. 또한 디스플레이와 어느정도 거리가 무조건 있어야하기 때문에, 부피를 작게만들기 어렵습니다.


팬케이크 렌즈는 부피를 줄일 수 있다는 것이 제일 큰 장점이며, 이를 통해 소형화를 이뤄낼 수 있습니다. 현재로써는 개발사의 역량에 따라 퀄리티가 다릅니다. 단점으로는 빛 번짐이나 고스팅이라고 불리는 상이 복제되어 보이는 현상이 있습니다.



특히나 최근 팬케이크 렌즈를 사용하여 소형화가 이루어지고 있는데, 팬케이크 렌즈의 특성에 의해 렌즈를 통과한 밝기는 화면에서의 밝기의 대략 10%~25%까지 줄어들게 되고, 디스플레이 관련 파트에서 설명했던 것 처럼 1프레임의 시간의 일부 동안만 화면을 밝혀야하기 때문에 여기서 10%가량 밝기가 또 줄어들게 됩니다.


(참고로 AR 글래스에 주로 사용되는 도파관의 경우 광 효율이 1%에서 0.1%까지 내려갑니다. 팬케이크 렌즈는 10~25%)


그로인해 일반적인 LCD를 사용한 제품의 경우 80~90니트까지 밝기가 내려가며, 백라이트 밝기가 높은 디스플레이를 사용해야 기존 VR 헤드셋들의 밝기와 비슷한 정도가 됩니다.


하지만 한편으로는 주변 빛을 완벽하게 차단하게 되면 밝기가 낮더라도 인간의 눈이 적응하기 때문에 괜찮다는 의견도 있습니다.


자세한 관련 내용은

마이크로 OLED가 10k니트? 과한거 아님? 눈 상하는거 아님? 에 대한 답변 - https://arca.live/b/vrshits/77626657




자세한 설명 (클릭시 펼쳐짐)

주로 비구면 렌즈는 사용되지 않는 추세입니다.

최근 팬케이크 렌즈가 소비자 헤드셋에서도 사용되기 시작하면서 주목을 받고 있습니다.


위에서 설명한대로 프레넬 렌즈(좌측)은 디스플레이와 렌즈 사이의 거리가 항상 어느정도 존재해야합니다.

팬케이크 렌즈는 여러개의 렌즈 (정확히는 반사 필름 및 편광 필름)를 통해 유리나 플라스틱 렌즈 안에서 빛을 반사하는 방식으로 작동합니다. (즉, 빛이 이동하는 경로를 접어서 거리를 좁힐 수 있습니다.)


팬케이크 렌즈는 렌즈안에서 빛이 반사되고 또 반사되어서 빛의 경로가 접힌다. 이렇게 해서 프레넬 렌즈에서 필요했던 렌즈와 디스플레이 간의 거리를 렌즈 안에서 처리해버린다.



프레넬 렌즈는 비교적 시야각이 넓지만 색수차가 일어나기 쉽고, 왜곡 또한 고려해야합니다.

팬케이크 렌즈는 렌즈 내에서 반사가 이루어지기때문에 반사가 일어날때마다 상이 여러개가 보이는 고스팅 현상이 생길 우려가 있으며 빛의 효율 또한 줄어들게 됩니다. 또한 제조사의 역량에 따라 빛 번짐과 고스팅 현상의 억제 수준이 차이납니다.





헤드셋에 들어가는 칩셋의 성능이 좋을 필요가 있나요?


기존에 있던 대부분의 헤드셋은 PC에서 연산을 했다면 퀘스트 시리즈부터는 헤드셋에 스마트폰 칩셋을 내장해서 연산을 하고 있습니다.


이때, 위에 있던 모든 요소들이 전부 다 헤드셋에서 연산되어야합니다.


트래킹을 처리하기 위한 카메라들에서 정보를 추출해야하고

그 정보를 통해 현재의 위치를 추정하며

그와 동시에 컨트롤러의 위치를 알아내고

게임 화면을 보여주며

유저가 게임과 상호작용할때마다 그에 따른 연산을 해야합니다.


그렇기 때문에 그 어떠한 방식으로의 연산 성능 여유가 늘어나면 거의 대부분의 측면에서 이득이 있습니다.




VR에서는 해상도가 높아도 의미가 없다?


흔히들 하는 오해 중 하나로써, 해상도가 높아봤자 그에 맞게 게임을 렌더링 할 수 없기 때문에 오버킬이라는 오해가 있습니다.


1. 렌더링을 높은 해상도에서 하지 않더라도 디스플레이의 밀도가 높은것 그 자체에서 모기장과 같은 요소는 줄어듭니다. (물론 FOV가 높으면 그만큼 퍼지기때문에 모기장이 보일 수 있습니다.)


2. 한눈 한눈마다 렌더링을 각각 새로하지 않습니다. 왼쪽 눈에서 보는것과 오른쪽 눈에서 보는것에서 큰 차이가 없다는 것에서 착안하여 렌더링의 일부를 왼쪽 및 오른쪽 눈에서 공유하는 식입니다.


한쪽 눈마다 디스플레이가 4000x4000로 되어있다면 양쪽 눈을 각각 렌더링 한다고 쳤을때 4000x4000을 두번 렌더링 해야한다고 생각하거나 8000x4000의 렌더링을 해야한다고 오해를 하는 경우가 있는데, 그게 아니라 왼쪽 눈과 오른쪽 눈에서 공유하는 부분이 있기때문에 4000x4000을 한번 렌더링하는 리소스보다 약간 더 많은 리소스만 소모합니다.