brunch

You can make anything
by writing

C.S.Lewis

by RealityReflection Jan 02. 2017

SF영화의 홀로그램 커뮤니케이션,
가능할까?

비개발자가 설명해주는 3D 스캔 & 3D 동영상 제작 원리


영화 '아바타'의 홀로그램 맵

2009년, 영화 아바타를 본 사람이라면 이 장면, 기억 나시나요? 

홀로그램 맵으로 나타낸 아바타 세계였는데요. 

여전히 미래의 영역에 있는 것 같은 이 홀로그램, 사실 그 이전부터 SF 영화에는 단골로 등장했었죠. 

영화 킹스맨에서도 등장! 홀로그램 회의 장면이 화려한 액션 신 만큼이나 신기하더라고요. 

증강현실(AR)을 사용하는 영화 '킹스맨'

마이너리티 리포트부터,아이언맨까지 시대를 막론하고 주요 영화에서 단골 소품으로 등장하는 홀로그램. 

도대체 언제 가능한 걸까요?  AR, VR과 관련한 소식이 세계 곳곳에서 들려오는 지금, 

마이클 잭슨의 홀로그램 콘서트가 성공적으로 열리고 있는 지금이면, 가능할 것도 같아 보이지 않나요? 

https://youtu.be/vZRFcGrrsyc

증강현실(AR) 기술을 이용한 magic leap의 데모 영상
마이크로소프트의 증강현실(AR) 디바이스인 홀로렌즈(HoloLens)

사실은, 굉장히 가까운 미래에 상용화될 지도 몰라요! 

이론상으로는 성공에 가까이 간 사례들이 나오고 있거든요. 


그렇다면 이 기술의 원리는 무엇일까요?

이 글에서는 홀로그램 기술 중에서도 실시간 3D 영상 제작에 대해 다루고 있습니다. 참고해주세요.


비개발자인 저는 궁금증을 해결하기 위해 리얼리티 리플렉션의 연구자분께 원리를 전수받았어요. 

이 글에서 저와 같은 비개발자의 눈높이에 맞춰 천천히 설명해드릴게요.

최신 트렌드의 재미있는 기술들을 이 글과 같이 비개발자 입장에서 설명하는 글들이 순차적으로 업데이트될 예정이니 관심있는 사람들은 우리 퍼블리케이션을 구독하길 바라요.  


슨 No 1. 3D 스캔 (rigid registration) - 고정된 물체 구성


먼저, 홀로그램을 만들기 위해서는 물체를 3D로 스캔하여 3D 모델을 만들어야 해요. 

모델이 나와야 가상 공간에 현실의 물체의 모델을 위치시킬 수 있거든요. 

이 글에서는 3D 스캔 방법 중에서도 depth 카메라를 이용해 스캔하는 원리를 알려드릴게요. 

Depth 카메라: 적외선을 사용하여 물체를 치고 돌아오는 시간을 이용해 
                         카메라와 물체 사이의 거리를 측정. 

Depth 카메라를 이용하면 한 면의 3차원 정보를 알 수 있어요. 

하지만 하나의 카메라로는 찍지 못하는 방향, 예를 들면 뒷 면 같은 곳은 뻥 뚫려서 나오게 되겠죠. 

다양한 각도에서 사진을 찍어야 전체의 3차원 정보를 알 수 있어요. 

여러 방향에서 찍은 부분을 합치면 전체 3D 모델을 만들어낼 수 있는거죠. 

합치는 과정은 서로 겹치는 부분을 이용해 각각의 방향에 찍힌 물체의 부분을 회전과 이동을 이용하여 

맞춰나가는 과정이에요. 예를 들어, 정면과 정면에서 20도 정도 틀어진 각도에서 찍은 물체는 

이어지고 겹치는 부분이 있겠죠? 그 부분을 찾아서 잘 맞춰주면 되는 거죠!

비개발자를 위한 팁: 퍼즐에 빗대어 생각해 보세요. 

퍼즐의 그림이 이어지는 부분: 3D 스캔에서 겹치는 부분. 
퍼즐을 맞추기 위해 조각을 돌리고 이동시키는 것: 스캔을 맞추려고 회전 이동 하는 것
다 맞춘 퍼즐의 그림: 완벽한 3D 모델


레슨 No 2. 사람 스캔 (non rigid registration) - 움직이는 물체 구성 


위에서 배운 스캔 방식은 움직임이 없는 딱딱하고 고정된 물체만 스캔이 가능해요. 

홀로그램을 위해서는 움직임이 많은 사람을 스캔해야 하니, 그 방법을 배워볼까요? 

사람은 여러 방향을 찍는 동안 살짝씩 움직이게 되어서 퍼즐이 딱 떨어지게 맞지 않을 수 있어요. 

그래서 필요한 게 ‘non rigid registration’ 방법이에요!

 

차이를 보기 위해 레슨 1에서 배운 rigid registration 과 

지금 배울 non rigid registration (NRR)의 스캔 결과를 비교해 볼게요.

(좌) rigid registration       (우) non rigid registration 

사람 몸은 움직임이 많아 늘어나고 줄어드는 변형이 있어요. 

한 방향에서 찍은 덩어리를 하나의 퍼즐로 놓고 맞추면, 

그 사이에 그 다른 퍼즐은 늘어나 있어서 완벽하게 맞추기가 어려워요. 

그래서 움직임이 많은 물체의 모델을 만들 땐 퍼즐도 조금 늘어나고 줄어드는 움직이는 퍼즐로 바꿔줘야 해요. 하나의 방향에서 찍은 스캔 덩어리를 선과 점으로 쪼개서 점을 회전, 이동하여

 덩어리를 잘 맞게 조절해주는 거죠. 아까는 덩어리 전체가 고정된 채로 움직였다면, 

이번에는 덩어리를 선과 점으로 자른 후, 그 점을 회전, 이동시켜 덩어리를 변형시켜가며 퍼즐을 맞춰줘요.


비개발자를 위한 팁: 찰흙과 같이 탄성이 있는 퍼즐을 맞춘다고 생각해봅시다.

각 모서리(점)를 당기면 변형이 되는 퍼즐이에요.
포토샵이나 일러스트레이터 등에서 도형의 각 점들을 당겨서 변형시키는 것과 같은 원리라고 보면 돼요. 


P.S. 사람을 스캔하는 다른 방법도 있어요

사람이 움직일 시간도 없이 여러 방향에서 한번에 ‘찰칵'하고 사진을 찍어 그 사진들을 조합하는 거죠. 

이 방법은 photogrammetry라는 방법으로,  RR이 현재 스튜디오에서 사용하고 있는 방식이에요. 

2D 사진들을 통해서 퍼즐을 맞춰 3D 모델을 구성해요. 물체의 특징적인 부분을 중심으로 여러 방향의 사진을

퍼즐처럼 맞춰 모델을 만들어요. DSLR을 이용해 Depth 카메라의 스캔보다 모델 해상도가 높을 뿐 아니라 

찰나의 순간을 포착해내는 데에도 더 적합해요. 


레슨 No. 3 3D 동영상 제작


이제는 사람 3D 모델을 토대로 동영상을 제작해 볼게요. 사람 3D 모델은 동영상에서 기본 뼈대 역할을 해요. Depth 카메라로 동영상을 찍으면 한 방향에서의 단면만 찍을 수 밖에 없기 때문에 대상의 기본 모델 위에 단면 모델을 입히는 거죠. 입히는 과정은 NRR를 사용해요. 단면 모델에 맞춰 기본 모델을 변형시켜요. 

단면 모델은 움직임의 정교함을 높이고, 기본 모델은 360도로 완벽한 뼈대를 제공해요. 


이 샘플 동영상은 RR에서 photogrammetry와 NRR를 사용해 작업한 동영상이에요. 

실제로는 얼굴 뿐 아니라 전신 다 스캔이 가능해요. 

https://youtu.be/KJA1eKmAvD0

RR에서 photogrammetry & NRR를 사용해 작업한 영상
비개발자를 위한 팁: 애니메이션, 혹은 인형 놀이에 빗대어 생각해보세요.

기본 모델을 만들고 그 모델에 움직임을 입혀서 인형을 움직이는 과정과 비슷해요! 


Lesson No. 3D 동영상 압축


레슨 3의 과정은 일반 동영상에서 한 장을 만드는 과정이에요.

 동영상은 1초에 24장의 사진으로 구성되어 있어서 사진을 빨리 보여줄 때 동영상이 돼요. 

비슷하게 3D 동영상 역시 움직이지 않는 3D 모델 여러 개로 만들어지는데요. 

레슨 3에서 만든 모델들을 한 개 한 개 모으면 되겠죠?


한 가지 더 거쳐야 하는 과정이 있어요. 바로 데이터 압축 과정이에요. 

3D 모델의 데이터가 너무 커서 모델 하나 하나를 다 그대로 사용하는 건 현실적으로 불가능하거든요! 

3D 모델은 3차원에서 점의 위치를 저장해요. 정확히는 점의 가로, 세로, 높이 위치 정보에요. 

당연히 각각의 모델 한 개 한 개 마다 위치의 정보가 변화하겠죠? 


첫번째 압축방법은 모든 점이 아니라 몇몇개의 대표점을 뽑아서 정보를 저장하는 거에요. 

 다른 점들은 그 대표 점을 따라가도록 설정하구요. 두번째 압축방법은 

점들의 정보를 (x1, y1, z1) (x2, y2, z2) 가 아니라 (x1, y1, z1) (x1+i, y1+j, z1+k) 등으로 저장하여 
기존의 정보를 재활용하는 방법이에요. 

첫번째는 각각 x1, y1, z1으로, 서로 독립된 값으로 저장이 되어 데이터를 많이 차지하게 되지만, 

두번째는 x, y, z 값에 변화한 거리인 i, j, k 가 더해진 형태로 저장되기 때문에 중복 데이터를 많이 줄일 수 있어요. 특히 동영상 특성상 각각의 장면마다 움직이는 거리가 가깝기 때문에 i, j, k의 값은 굉장히 작아져요. 

이제 압축도 했으니, 3D 동영상 만들기 작업이 다 끝났어요!

비개발자를 위한 팁: 동영상 예시를 다시 생각해 봅시다.

3D 동영상 압축 과정은 2D 동영상 압축과도 비슷해요. 2D 동영상에서는 픽셀마다 색깔 정보를 데이터 값으로 가져요. 배경과 같이 잘 변하지 않는 색깔 정보가 있다면 프레임마다 겹치는 배경 색깔 정보를 압축하는 거죠. 3D 동영상에서는 점의 위치 정보를 2D 동영상처럼 압축해요.  


이렇게 3D 동영상 제작의 원리를 알아보니 홀로그램의 원리가 감이 오시나요? 

1. 킹스맨처럼 쿨해보이고 싶을 때 
2. 영상통화 대신에 실감나는 미팅을 위해 
3. 공연을 실시간으로 볼 때

사용자의 거리에 관계없이 어느 곳이든 참여할 경우에 3D 동영상이 유용하게 쓰일 수 있어요.

장거리 연애자들은 환호를 부를 소식!

실제로 올해초 마이크로소프트는 실시간 3D 동영상을 실험하기도 했어요. 

https://youtu.be/7d59O6cfaM0

마이크로소프트 실시간 3D 동영상 커뮤니케이션 실험 영상

리얼리티 리플렉션에서도 RR 스튜디오 작업을 이용해 3D 영상을 제작했었어요.

https://vrocast.com/viewer?id=bf63f6c49e67acc0


여러분은 이 기술로 무엇을 하고 싶으신가요? 좋은 아이디어는 서로 공유해요! 

질문이 있으시면 댓글 남겨주시구요!  


혹은 3D 모델 및 동영상이 필요하다면 RR의 3D 스튜디오에 연락주세요! 

고품질의 3D 모델을 만드실 수 있어요! (깨알 홍보)


이 글은 RR과 관련된 주제인 게임, VR, Tech에 관한 흥미로운 글을 리서치 및 공유 차원에서 insight을 공유하기 위해 작성되었어요. 이 글이 좋았다면, 다른 글들도 읽어보고 RR의 퍼블리케이션을 구독해주세요!
매거진의 이전글 [RR] 굿바이 2016.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari