VR은 컴퓨터 장치를 이용해 동작하는, 일종의 프로그램이다. 게임 프로그램을 생각해보자. 게임을 실행하면 프로그래머와 디자이너(앞으로는 개발자라고 통칭하겠다)가 고생 고생 만든 그림들이 사용자의 조작에 따라 움직인다. 게임 속에 보여지는 배경이나 캐릭터들은 게임을 만든 개발자가 미리 그려서 게임앱에 넣어 놓은 것이다. 사용자가 캐릭터를 조작하면 게임에 이미 들어 있는 동작 애니메이션이 화면에 보여지게 되는 것이다.

  VR도 역시 앱 개발자들이 미리 만들어 놓은 가상의 물체들을 사용자의 조작에 따라 보여준다. 단, VR은 3차원으로 보여야 하기 때문에 3차원의 물체를 그리고 조작 할 수 있는 특별한 도구들을 사용하여 만든다. 요즘 많이 사용하는 도구는 Unity, Unreal이라는 툴이다. 보통 이런 툴들을 그래픽 엔진이라고 하는데 가상의 물체가 실제 물체처럼 중력에 제한을 받거나 서로 부딪혀 깨지는 등의 현상들을 표현해야하기 때문에 복잡한 알고리즘들을 가지고 있다. 이런 그래픽 엔진들은 개발자들이 복잡한 알고리즘을 신경쓰지 않고 자신의 시나리오를 쉽게 구현할 수 있도록 돕고 있다.

Unity
Unreal

  그래픽 엔진들은 3차원에 그려진 물체들을 화면에 보여주기 위해 Rendering이라는 작업을 하는데 이는 마치 화가가 3차원의 현실 세계를 화첩에 그려 넣는 작업과 같다. 아, 사진으로 찍는 것과도 같다고 할 수 있다. 이 과정에 복잡하고 어려운 수학 공식들이 들어가는데 그래픽 혹은 게임 엔지니어들은 이런 공부를 하기도 한다. 이 포스트에서는 다루지 않을 것이다. 혹시 궁금하다면 OpenGL 튜터리얼 사이트를 찾아보면 된다. (경고, 수학에 왠만큼 자신이 없다면 찾아보지 말기를... 머리만 더 복잡해진다.) VR의 경우에는 그림을 2장 그린다. 당연한 것이 3차원으로 보이게 하려면 각 눈에 서로 (약간) 다른 그림을 보여줘야 하기 때문이다.

  일반 게임에서는 키보드와 마우스로 게임을 조작한다. 그런데 VR의 경우에는 한가지 더 이용한다. 바로 센서 입력이다. 일반적으로 VR은 HMD(Head Mounted Device) 형태인데, 사용자에게 3차원의 그림을 보여줘야 하기 때문에 눈에 가까이 있어야 하기 때문이다. 또한 사용자의 머리 움직임을 모니터링 해야한다. 사용자가 보는 방향을 알아내기 위해서다(엔지니어들은 이를 3DoF라고 한다), 따라서 HMD에는 보통 센서가 함께 장착되어 있다. 추가로 사용자가 바라보는 방향 뿐만 아니라 전후, 좌우 그리고 상하의 움직임을 모니터링 하기 위해서는 더 복잡한 장치가 필요하다(엔지니어들은 이를 6DoF라고 한다). 이 부분은 차후에 포스팅 할 기회가 있을 것이다.

  VR의 동작을 이해하기 위해 아래의 그림을 보자.

VR의 동작 과정

  ① 사용자가 착용하고 있는 HMD의 센서로 부터 데이터를 입력 받는다. ② 이 데이터는 잘 가공하여 사용자의 움직임을 알수 있도록 계산된다. 이를 Sensor Fusion이라고 하는데 결과 값은 x, y, z 3축을 기준으로 하는 각도나 vector + 이 벡터를 기준으로 하는 각도로 표현된다.(이 부분도 자세히 들어가면 Euler, Quaternion 같은 수학이 나온다. ㅠㅠ)  ③ 사용자의 움직임 값은 VR 앱의 그래픽엔진에게 전달되어 가상세계를 모델링하게 되고 ④ 이어 2차원으로 그림을 그리는 Rendering 과정을 거친다. ⑤ 지금까지의 과정은 꽤 많은 시간을 필요로 하기 때문에 (보통 Latency라고 부른다) 이를 보상하기 위해 Compositor가 가장 최신의 사용자 포즈를 한번 더 읽어서 그래픽 엔진이 그린 2차원 그림을 살짝 틀어준다. 여기에 사용되는 기술이 Time Warp, Space Warp 혹은 Reprojection이라고 하는데 이 또한 다음 기회에 다뤄볼 예정이다. ⑥ 완성된 그림은, 마지막으로 Display에 뿌려지게 되고 사용자에게 보여지게 된다.

  간단하게 설명을 했지만, 이런 과정이 거의 1초에 60번 이상 반복이 되어야 하고, 위에서 잠깐 말했던 Latency를 줄이기 위해 많은 기술들이 사용된다. 그 어렵고 복잡한 일들을 엔지니어들이 해낸다. 참 대단한 사람들 많다. ^^

  오늘 포스트에서는 어려운 용어들이 많이 사용되었는데, 걱정할 것 없다. 이런 어려운 용어들도 독자들은 이해해 낸다. 음... 앞으로의 포스트들을 통해 이런 어려운 용어들, 기술들을 풀어보도록 하자.

블로그 이미지

태후아빠

,

  가상 현실이란 무엇일까?

VR concept

  말 그대로 진짜 현실이 아닌 가짜 현실이다. 말이 이상하긴 한데, 현실을 모사한 가상 세계 쯤으로 생각하면 될 듯 싶다. VR은 갑자기 나타난 기술이 아니다. 벌써 100년 전쯤 누군가 아이디어를 냈고(주1), 그걸 과학자 혹은 발명가들이 실제로 구현하면서 세상에 나타났다. 내 기억으로는 2015년 쯤 삼성이 GearVR을 만들어 팔기 시작하면서 본격적인 대중화가 되었다. 소비자들이 쉽게 접근할 수 있는 가격을 제시했기 때문이다. 물론 그 전에도 VR 기기들은 존재 했었고 판매도 되었으나, 게이머들에게는 '아~~ 돈만 있으면 사고싶은데~~!' 할 정도의 비싼 제품 이었다. 하지만 삼성의 과감한 투자로 우리 곁에 가까이 오게 되었다. ㅎㅎ

  최초의 가상현실 기기는 무엇일까? 바로, 이반 서덜랜드(Ivan Edward Sutherland)라는 분에 의해 1968년에 만들어진 Head Mounted Display(머리에 장착하는 스크린, HMD)가 최초의 공식적인 가상현실 기기가 되었다. 그후 1977년에 MIT의 아스펜 무비 맵(Aspen Movie Map), 1991년에 일리노이 대학의 CAVE (Cave Automatic Virtual Environment) 등이 계보를 이어왔다.

Ivan Sutherland(좌)의 Head Mounted Display(우)

  요즘에는 다양한 기기들이 출시 되고 있다. Oculus의 Rift, HTC의 Vive, Sony의 Playstation VR 등이 대표적인 PC 연결형 VR이며, Gear VR, Daydream이 폰을 이용한 모바일 VR이다. PC나 폰의 성능을 빌리지 않는 단독형(Standalon, All-in-One)의 VR도 있는데, Oculus Go, Vive Focus, DPVR M2 Pro, Lenovo Mirage Solo 등이 있다. 그 밖에도 다양한 제품들이 있는데 구글링 해보면 엄청 많이 나온다. 그만큼 VR기술이 널리 퍼져있다는 뜻이다.

다양한 VR 기기들

  VR을 가지고 무엇을 할 수 있을까? 가장 대표적인 것이 게임이다. 기존 게임들은 2차원 화면에 그려진 세계에서 즐기지만 VR게임은 3차원의 가상 세계로 들어가 게임을 즐기기 때문에 몰입감 면에서는 2차원 게임보다 월등하다. 키보드와 마우스로 게임 케릭터를 조작하는 것이 아니고, 내가 직접 게임 안으로 들어가 캐릭터가 되고 직접 플레이를 하게 되기 때문에, 2차원 게임과는 말 그대로 차원이 다른 경험을 하게 된다. 얼마전 스티븐 스필버그 감독의 'Ready Player One'이라는 영화에서 보여준 것이 바로 VR이 지향하는 바이다. 아직 영화와 똑같은 경험을 할 수는 없지만 VR 기술이 더 발달된다면 불가능한 이야기도 아니다.

영화 'Ready Player One' 중 한 장면

  게임 뿐 아니라 교육 분야에서도 VR의 활용도는 높다. 예를 들어 역사교육을 책으로만 받는 것이 아니라 VR을 통해 역사의 현장을 직접 방문하므로써 교육이 효과를 높일 수 있다. 도형이나 그래프를 3차원으로 보면서 교육을 받을 수도 있고 엔진의 원리, 우주의 모양을 입체적으로 보여주며 교육할 수 있다. 학교 교육 뿐만 아니라 비행 시뮬레이션 같은 업무 현장 교육에도 활용할 수 있다. 멀티미디어 분야에서도 VR은 진가를 발휘한다. 고가의 초대형 TV를 VR이 대체할 수 있고 360 3D영상, 180 3D영상으로 현장감 있는 공연을 방안에서 즐길 수 있다. 이 밖에도 다양한 분야에서 활용 되고 있지만 특히 요즘에는 치료의 목적으로도 사용할 수 있다고 하니 과연 VR은 미디엄으로서의 역할을 충분히 할 수 있을 것이라고 생각된다.

교육 현장에 사용되는 VR

  자~! 그래서 이번 포스트를 시작으로 VR에 대한 이야기를 해보려고 한다. VR관련일을 하다보니 한번은 이렇게 정리를 해서 기억의 창고에 보관하면 좋을 것 같다는 생각이 들었다. 혹시나 누군가에게 도움이 될 수도 있는 일... 시간이 오래 걸리겠지만, 차곡차곡 정리해보기로 한다. 오늘은 첫 포스트라서 간단한 이야기만 해보기로 한다.

 


(주1) 프랑스의 시인, 배우, 극작가 이자 연출자인 앙토냉 아르토(Antonin Artaud; 1896~1948)가 극장을 묘사하는 단어로 '가상현실(Virtual Reality)'를 사용하였고, 1970년대에 마이런 크루거(Myron Krueger) 라는 가상 현실 연구가가 '인공현실(Artificial Reality)'이라는 단어를 사용했으며, 1980년대 후반에 재런 래니어(Jaron Lanier)라는 컴퓨터 과학자에 의해 지금 사용하는 가상현실이라는 의미가 확립되었다.

 

 

블로그 이미지

태후아빠

,

  드디어 마지막 날이다. 내일 오전에 공항으로 가니까 하와이에서 뭔가 할 수 있는 날은 오늘이 마지막 날이다. 최선을 다해서 즐겨보기로 했다.

  피곤한 아이들을 위해 오늘은 좀 늦게 깨웠다. 평소 보다 약 30분(ㅋㅋ) 정도 더 자게 두었다. 대신 아침은 든든하게 밥으로. 오전에 이불을 포함한 빨래를 하고 짐도 추가로 더 쌌다. 혹등고래는 알로하 타워 근처에 있는 피어 8에서 Star of Honolulu를 타고 나가서 본다. 11시 15분 부터 체크인을 하고 12시 출항이니 10시 30분쯤 나가면 충분할 터였다. 버스는 19번 버스를 타고 가면 된다. 

   그런데 이상했다. 구글 맵에서 온다고 한 버스가 안왔다. 다음 버스는 30분 후... 지연되는 모양이었다. 하와이에서 버스 지연은 흔한 일. 조금 기다리면 온다. 19번 버스는 20분이나 지나서 왔다. 버스 기다리는데 많이 소비하긴 했지만 그래도 아직 괜찮았다. 12시까지만 가면 되는 거다. 그런데 버스가 매번 정거장에서 시간을 지체했다. 버스표를 사는 사람들도 많고, 버스를 잘 못 타고 몇 번 버스를 타고 가야하는지 묻는 사람들도... 세월아 네월아 하면서 가고 있었다. 이 속도로 가다가는 12가 넘어야 도착할 수 있을 것 같았다. 오늘 이 일정부터 빠그라지면 완전 망친다는 생각에 우버를 검색했다. 우버를 타고 가면 훨씬 더 빠르다고 나왔다. 생각할 여유도 없었다. 그냥 아이들과 버스에서 내리고 우버를 호출했다. 다행히 우버를 타고 11시 40분에 티켓 오피스에 도착해 표를 받고 승선할 수 있었다.

  여행에서, 특히 해외 여행에서, 더구나 마지막 날에 일정이 꼬이면 정말 난감하다. 그럴 때는 어쩔 수 없이 돈으로 메꿔야 한다. 목적지까지 시간 내에 반드시 가야하는 경우는 어쩔 수 없다. 충분히 여유 있게 나왔어도 이런 일은 발생한다. 아까워 하면 이도 저도 다 잃는다.

  Star of Honolulu는 Whale watching, Sunset dinner show 로 유명한 투어 코스이다. 신혼여행이라면 바다에서 석양을 보며 디너쇼까지 참여해도 좋을 것 같아 보인다. 우리는 고래를 보러 왔다. 3개의 Stabilizer가 있어서 파도에도 흔들리지 않고 안전하다고 한다. 단점은 음식을 가지고 들어가지 못한다는 것이다. 무스비를 사가서 중간에 밥을 먹으려 했으나, 음식 물 반입 금지. 물은 된단다. 어쩔 수 없이 선상 뷔페를 신청해서 먹었다. 성인 $18, 아이 $10. 총 $38을 추가로 지출했다. ㅠㅠ. 이 경우가 돈으로 메꿔야 하는 또 하나의 경우다. 배고프면 고래고 뭐고 다 소용 없다.

  선상 뷔페는 꽤 맛있었다. 요리사가 직접 잘라주는 소고기까지 있었다.

  맛있게 먹었는데... 폰카가 이상하다. 촬영 버튼을 누르면 살짝 딜레이가 발생한다. 타이밍이 안 좋았다. ㅠㅠ 우리 셋이서 총 8접시를 먹었다. 용제 3, 태후 2, 나 3. (태후는 후식을 내가 가져온 것으로 먹음) 아이들은 폴리네시안 문화센터 뷔페가 훨씬 맛있다고 했다. 여기 선상 뷔페는 데리야끼 치킨 이 제일 맛있다고 했다.

  고래를 만나기 전에 배안 이곳 저곳을 다니며 사진을 찍었다. 배는 뭐니 뭐니 해도 꼭데기가 최고지. 오하우 호놀룰루 지역을 모두 볼 수 있었다. 아이들은 와이키키 비치와 다이아몬드 헤드를 보며 아는 곳이라고 좋아 했다. 다이아몬드 헤드가 보이는 곳에서 재미있는 사진을 찍었다. 안 찍는다던 용제도 태후가 하는 걸 보고 도전. 녀석 찍고는 싶은데 귀찮은가 보다.

  그리고나서 길고 지루한 기다림이 시작되었다. 혹등고래(Humpback Whale)을 보기위해 한참동안 바다를 주시 했다. 카메라 촬영 준비도 완벽히 마쳤다. 혹시나 놓칠까 눈에 힘을 줘가며 수증기나 물기둥을 찾았다. 아무리 기다려도 안나왔다. 용제는 자꾸 내려가자고 한다. 용제에게 바로 밑 층 의자에 앉아서 기다리라고 했다. 태후도 따라가서 앉아 있었다. 고래가 나타나면 내가 알려주기로 했다. 또 다시 지루한 기다림... 갑자기 선장님이 방송을 한다. 1시 방향에 고래 출현. 잠시 수증기 같은 것이 보이고 고래 꼬리가 이어서 보였다. 방송을 듣고 태후가 올라오고 용제도 잠시 뒤에 올라왔다. 사람들의 환호성도 들렸다. 배에서 좀 먼 곳 이었지만 눈으로 선명하게 볼 수는 있었다.

  배 바로 옆이나 밑을 지나간다면 너무너무 좋겠지만 대부분은 이렇게 멀리서 본다고 한다. 실망하는 사람들도 있었다. 점프하기를 바라며 작은 소리로 점프 점프를 외쳐봤다. 내말을 들어줄 리가 있나. 그렇게 멀리서 혹등고래가 물 품는 장면과 등, 그리고 꼬리 지느러미를 몇 번 관찰하고 나서 배는 다시 피어 8로 향했다. 멀리서지만 그래도 고래 등과 꼬리 지느러미는 봤다.

  돌아오는 길에 아이들이 서핑하러 빨리 가자고 했다. 이녀석들 서핑을 엄청 하고 싶었던 모양이었다. 아이들이 보드를 하나 빌릴 것인지 두 대를 빌릴 것인지 물었다. 두대를 빌려 각각 태우면 안전에 문제가 있을 것 같고 하나만 빌리면 한명은 심심할테고... 고민되었다. 어떻게 하지?

  용제는 아쿠아 슈즈가 있지만 태후는 없어서 타겟에서 하나 구입했다. 와이키키 앞바다에 돌(죽은 산호들)이 많아서 잘 못하면 발이 다칠 수 있다. 집에 오자마자 수영복으로 갈아 입었다. 그리고 보드 대여 샵인 moku로 향했다. 그리고 2대를 빌렸다. 어린이용이라 좀 작았다. 그리고 가벼웠다. 내가 앞쪽에서 두개를 들고 아이들은 각각 후미를 들었다. 드디어 서핑하러 바다로...

  바다에 도착해서 발목 끈을 채우게 하고(보드 탈 때 뒤 쪽에 연결된 끈을 발 목에 묶어 준다. 안전을 위해서 묶는 것이다.) 배를 깔고 보드위에 눕게 했다. 그리고 수영 하듯 팔을 저으며 앞으로 전진. ㅋㅋㅋ 녀석들 조금 가더니 힘들단다. 녀석들아 세상에 쉬운게 어딨겠니~!

  적당한 위치를 잡았다. 내 무릎정도 오는 깊이게 양쪽으로 세우고 한명씩 일어서는 동작을 가르쳤다. 생각보다 균형잡는게 어려운 모양이었다. 제대로 서지를 못하고 물에 빠져 버렸다. 태후는 몸무게가 좀 있어서 약간 더 힘들어 보였다. 균형이 중요한데... 원래 해변 모래위에서 해야하는 훈련인데 바로 물에 들어와서 균형 잡기가 더 어려웠던 모양이었다.

  이렇게 몇번 하다가 한명씩 교대로 파도를 태웠다. 뒤에서 파도가 오는지 잘 보고 있다가 아이들에게 신호하고 밀어주고 그리고 한참 가다가 일어 서라고 신호를 줬다. 

이놈의 물방울 때문에 촬영을 망쳤다. 용제는 서서 꽤 오래 갔다. 태후는 좀더 연습이 필요했다. 태후야 걱정 마~! 아빠가 더 가르쳐 줄게. 나도 잘 못하긴 하지만. ㅎㅎ

  시간이 되어 보드를 반납하고 해변 수돗가에서 모래를 씻은 후 집으로 들어왔다. 아이들이 힘들단다. 당연히 힘들겠지. ㅋㅋ 이제 씻고 저녁 먹자~!

  저녁은 소고기 무국에 짜장 덮밥이다. 애들은 짜장덮밥이 엄청 맛있단다. 그래도 일등은 된장찌게란다. ㅋㅋ

  저녁 먹고 짐 정리를 다시 한번 했다. 초콜릿이 꽤 부피가 나갔다. 겨우 트렁크 닫음. ㅎㅎ. 짐정리가 끝 난 후 오늘 와이키키 차 없는 거리로 나갔다. 장이 열렸다. 피곤하지만 하와이 마지막 밤을 불 태워야지 ㅋㅋ

  쥬스도 한잔 사먹고(자연 그대로라고 애들이 놀라면서 마셨다)

  엄마 줄 목걸이도 사고

  경찰 아저씨들과 사진도 찍고(우리가 찍고나서 사람들이 줄을 섰다. 다들 찍고 싶었는데 말을 못했었나보다. 우리가 일빠로 찍었다 ㅋㅋ)

  큐브도 샀다.

샤라랄라 하고 별빛이 내려야 하는데 지름신이 또 내렸다. 엄마 생각하는 맘이 이뻐서 사주고, 마지막 밤이라 사준다. ㅋㅋ 이제 들어가 자자 내일은 일찍일어나서 공항가야 하니까. 잘 자라~!


블로그 이미지

태후아빠

,