사례 연구 - HoloTour
Microsoft HoloLens 대한 HoloTour는 전 세계의 상징적 인 위치의 몰입 형 3D 개인 투어를 제공합니다. 이 프로젝트에서 작업하는 디자이너, 아티스트, 프로듀서, 오디오 디자이너 및 개발자가 알게 되면서 잘 알려진 위치의 설득력 있는 실제 3D 렌더링을 만드는 것은 창의적이고 기술적인 마법사의 독특한 조화를 이루게 됩니다. 이 사례 연구는 HoloTour에 사용되는 콘텐츠를 캡처하고 만드는 과정을 안내합니다.
기술
HoloTour를 사용하면 사람들이 페루의 마추픽추 유적 이나 이탈리아의 나 보나 광장 과 같은 세계에서 가장 놀라운 목적지 중 일부를 자신의 거실에서 바로 방문할 수 있도록 하고 싶었습니다. 우리 팀은 HoloTour의 목표를 "당신이 정말로 그곳에 있는 것처럼 느끼게" 했습니다. 이 환경은 사진이나 비디오 그 이상이어야 했습니다. HoloLens의 고유한 디스플레이, 추적 및 오디오 기술을 활용하여 사실상 다른 곳으로 운송할 수 있다고 믿었습니다. 방문한 모든 위치의 명소, 소리 및 3차원 기하 도형을 캡처한 다음 앱 내에서 다시 만들어야 합니다.
이를 위해 방향 오디오 캡처가 있는 360° 카메라 장비가 필요했습니다. 매우 높은 해상도로 캡처해야 했기 때문에 HoloLens에서 재생할 때 영상이 선명하게 보이고, 아티팩트 스티치를 최소화하기 위해 카메라를 가까이 배치해야 했습니다. 우리는 지평선을 따라뿐만 아니라 당신 위와 아래뿐만 아니라 전체 구형 범위를 원했다. 장비는 또한 우리가 전 세계에 그것을 취할 수 있도록 휴대용이어야했다. 사용 가능한 기성 옵션을 평가하고 해상도, 비용 또는 크기 때문에 비전을 실현하기에 충분하지 않다는 것을 깨달았습니다. 요구 사항을 충족하는 카메라 장비를 찾을 수 없다면 직접 제작해야 합니다.
장비 빌드
골판지, 벨크로, 덕트 테이프 및 14개의 GoPro 카메라로 만든 첫 번째 버전은 MacGyver가 자랑스러워할 만한 것이었습니다. 저사양 솔루션에서 사용자 지정 제조 장비에 이르기까지 모든 것을 검토한 후 GoPro 카메라는 작고 저렴하며 사용하기 쉬운 메모리 스토리지가 있었기 때문에 궁극적으로 가장 좋은 옵션이었습니다. 작은 폼 팩터는 카메라를 상당히 가깝게 배치할 수 있었기 때문에 특히 중요했습니다. 카메라 사이의 거리가 작을수록 스티치 아티팩트가 작아질 수 있습니다. 우리의 독특한 카메라 배열은 우리가 지능적으로 카메라를 정렬하고 스티치 과정에서 일부 아티팩트 를 부드럽게하기에 충분한 겹침 플러스 전체 구 범위를 얻을 수 있습니다.
HoloLens의 공간 사운드 기능을 활용하는 것은 설득력 있는 실제 몰입형 환경을 만드는 데 매우 중요합니다. 삼각대의 카메라 아래에 위치한 4개의 마이크 배열을 사용하여 카메라 위치에서 4방향으로 소리를 캡처하여 장면에서 공간 사운드를 만들 수 있는 충분한 정보를 제공했습니다.
360° 카메라 장비는 판테온 밖에서 촬영할 수 있도록 설정되었습니다.
우리는 시애틀 근처의 래틀스네이크 리지(Rattlesnake Ridge)까지 올라가 하이킹 꼭대기의 풍경을 포착하여 수제 장비를 테스트했습니다. 그 결과 현재 HoloTour에서 볼 수 있는 위치보다 훨씬 덜 세련되었지만, 장비 디자인이 당신이 정말로 그곳에 있는 것처럼 느낄 수 있을 만큼 훌륭하다는 확신을 주었습니다.
우리는 벨크로와 골판지에서 3D 인쇄 카메라 하우징으로 장비를 업그레이드하고 배터리 관리를 간소화하기 위해 GoPro 카메라용 외부 배터리 팩을 구입했습니다. 그런 다음 샌프란시스코로 내려가 도시의 해안과 상징적 인 골든 게이트 다리의 미니어처 투어를 만들기 위해 보다 광범위한 테스트를 했습니다. 이 카메라 장비는 HoloTour에서 방문하는 위치의 대부분의 캡처에 사용되었습니다.
마추픽추에서 촬영된 360° 카메라 장비.
배후 상황
촬영하기 전에 가상 투어에 포함할 위치를 파악해야 했습니다. 로마는 우리가 배송하려는 첫 번째 위치였고 우리는 그것을 바로 얻고 싶었기 때문에 사전에 정찰 여행을하기로 결정했습니다. 아티스트, 디자이너, 프로듀서 등 6명으로 구성된 팀을 직접 방문하여 고려 중인 사이트를 방문했습니다. 여행은 약 9 일 - 2.5 여행, 나머지는 촬영했다. (마추 픽추의 경우 우리는 스카우트 여행을하지 않기로 결정, 사전에 연구하고 촬영을위한 버퍼의 며칠을 예약.)
로마에 있는 동안 팀은 각 지역의 사진을 찍고 흥미로운 사실뿐만 아니라 각 장소로 여행하는 것이 얼마나 어려운지, 군중이나 제한으로 인해 영화를 찍는 것이 얼마나 어려운지와 같은 실용적인 고려 사항을 지적했습니다. 이것은 휴가처럼 들릴 지 모르지만 많은 일입니다. 날은 아침 일찍 시작하여 저녁까지 논스톱으로 갈 것입니다. 매일 밤 시애틀에 있는 팀이 검토할 수 있도록 영상이 업로드되었습니다.
로마에서 우리의 캡처 승무원.
스카우트 여행이 완료 된 후, 실제 촬영에 대한 최종 계획이 만들어졌다. 이를 위해서는 우리가 촬영할 장소, 당일 및 시간에 대한 자세한 목록이 필요했습니다. 해외는 매일 비용이 많이 들기 때문에 이러한 여행은 효율적이어야 했습니다. 우리는 우리를 돕기 위해 로마에서 가이드와 처리기를 예약했으며 일출 전부터 일몰 후까지 매일 완전히 사용했습니다. 우리는 당신이 정말로 거기에있는 것처럼 느끼게하기 위해 가능한 최고의 영상을 가져와야합니다.
비디오 캡처
캡처하는 동안 몇 가지 간단한 작업을 수행하면 후처리가 훨씬 쉬워질 수 있습니다. 예를 들어 여러 카메라의 이미지를 함께 연결할 때마다 각 카메라의 보기가 약간 다르기 때문에 시각적 아티팩트가 발생합니다. 개체가 카메라에 가까울수록 보기 간의 차이가 커지고 스티치 아티팩트가 커집니다. 다음은 문제를 시각화하는 쉬운 방법입니다. 얼굴 앞에서 엄지손가락을 들고 한 눈에만 볼 수 있습니다. 이제 눈을 전환합니다. 엄지 손가락이 배경을 기준으로 이동하는 것처럼 보입니다. 엄지 손가락을 얼굴에서 더 멀리 잡고 실험을 반복하면 엄지 손가락이 덜 움직이는 것처럼 보입니다. 그 명백한 움직임은 우리가 직면 한 스티치 문제와 유사합니다 : 카메라와 마찬가지로 눈은 약간의 거리로 분리되어 있기 때문에 정확히 동일한 이미지를 보지 못합니다.
촬영 중 최악의 아티팩트가 사후 처리에서 수정하는 것보다 훨씬 쉽기 때문에 클로즈업 개체를 스티치할 필요가 없도록 사람과 사물을 카메라에서 멀리 떨어진 곳에 두려고 노력했습니다. 카메라 주변에 큰 클리어링을 유지하는 것은 아마도 촬영 중에 겪었던 가장 큰 과제 중 하나였을 것이며, 이를 작동하도록 창의력을 발휘해야 했습니다. 현지 가이드와 함께 작업하는 것은 군중을 관리하는 데 큰 도움이 되었지만, 특히 각 위치에서 짧은 양의 영상만 가져와야 했기 때문에 촬영 공간을 표시하기 위해 표지판과 때로는 작은 콘이나 콩 가방을 사용하는 것이 합리적으로 효과적이라는 것을 발견했습니다. 종종 좋은 캡처를 얻을 수있는 가장 좋은 방법은 대부분의 사람들이 나타나기 전에, 아침에 아주 일찍 도착하는 것이었습니다.
다른 유용한 캡처 기술은 전통적인 영화 관행에서 바로 나옵니다. 예를 들어 모든 카메라에서 색 보정 카드 사용하고 나중에 필요할 수 있는 질감 및 개체의 참조 사진을 캡처했습니다.
바느질하기 전에 판테온 영상의 거친 컷.
비디오 처리
360° 콘텐츠를 캡처하는 것은 첫 번째 단계일 뿐입니다. 캡처한 원시 카메라 영상을 HoloTour에서 볼 수 있는 최종 자산으로 변환하려면 많은 처리가 필요합니다. 집에 돌아온 후에는 14개의 다른 카메라 피드에서 비디오를 가져와서 최소한의 아티팩트가 있는 단일 연속 비디오로 전환해야 했습니다. 우리 예술 팀은 캡처된 영상을 결합하고 연마하기 위해 여러 도구를 사용했으며 처리를 최대한 최적화하는 파이프라인을 개발했습니다. 영상은 함께 스티치하고, 색을 수정한 다음, 산만한 요소와 유물을 제거하거나 생명과 움직임의 추가 포켓을 추가하기 위해 합성되어야 했으며, 모든 것이 실제로 그곳에 있다는 느낌을 향상시키기 위한 목표입니다.
바느질하기 전에 판테온 영상의 거친 컷.
비디오를 함께 연결하기 위해 PTGui 라는 도구를 사용하여 처리 파이프라인에 통합했습니다. 후처리의 일환으로 비디오에서 스틸 프레임을 추출하고 해당 프레임 중 하나에 잘 보이는 스티치 패턴을 발견했습니다. 그런 다음 비디오 아티스트가 After Effects에서 작성하는 동안 직접 스티치 패턴을 미세 조정하고 조정할 수 있도록 작성한 사용자 지정 플러그 인에 해당 패턴을 적용했습니다.
스티치된 판테온 영상을 보여 주는 PTGui의 스크린샷.
비디오 재생
영상 처리가 완료되면 원활한 비디오가 있지만 매우 큰 약 8K 해상도입니다. 비디오 디코딩은 비용이 많이 들고 8K 비디오를 처리할 수 있는 컴퓨터가 거의 없으므로 다음 과제는 HoloLens에서 이 비디오를 재생할 방법을 찾는 것이었습니다. 사용자가 전체 비디오를 보는 것처럼 느껴지도록 하면서 디코딩 비용을 방지하기 위한 여러 가지 전략을 개발했습니다.
가장 쉬운 최적화는 크게 변경되지 않는 비디오 부분을 디코딩하지 않도록 하는 것입니다. 각 장면의 동작이 거의 또는 전혀 없는 영역을 식별하는 도구를 작성했습니다. 이러한 영역의 경우 각 프레임마다 비디오를 디코딩하는 대신 정적 이미지를 표시합니다. 이를 가능하게 하기 위해 대규모 비디오를 훨씬 더 작은 청크로 나눕니다.
또한 디코딩한 모든 픽셀이 가장 효과적으로 사용되도록 했습니다. 우리는 비디오의 크기를 낮추기 위해 압축 기술을 실험했습니다. 투사될 기하 도형의 다각형에 따라 비디오 영역을 분할합니다. 다양한 다각형이 포함된 세부 정보에 따라 VS를 조정하고 비디오를 다시 포장했습니다. 이 작업의 결과는 단일 8k 비디오로 시작된 것이 장면에 제대로 다시 프로젝팅될 때까지 거의 이해할 수 없는 많은 청크로 변했다는 것입니다. 텍스처 매핑 및 UV 패킹을 이해하는 게임 개발자의 경우 이 기능이 친숙해 보일 것입니다.
최적화 전 Pantheon의 전체 보기입니다.
비디오 재생을 위해 처리된 판테온의 오른쪽 절반.
최적화 및 압축 후 단일 비디오 영역의 예입니다.
우리가 사용한 또 다른 트릭은 적극적으로 보지 않는 비디오를 디코딩하지 않는 것이었습니다. HoloTour에 있는 동안에는 특정 순간에 전체 장면의 일부만 볼 수 있습니다. FOV(보기 필드) 내부 또는 그 밖에 있는 비디오만 디코딩합니다. 당신이 당신의 머리를 회전으로, 우리는 당신의 FOV에 지금 비디오의 영역을 재생하고 더 이상 내에없는 것들을 재생 중지합니다. 대부분의 사람들은 이런 일이 일어나고 있다는 것을 눈치채지 못하지만, 빠르게 돌아서면 비디오가 시작하는 데 1초 정도 걸리는 것을 볼 수 있습니다. 그 동안에는 정적 이미지가 표시되고 준비가 되면 비디오로 다시 페이드백됩니다.
이 전략을 작동하기 위해 광범위한 비디오 재생 시스템을 개발했습니다. 비디오 전환을 매우 효율적으로 만들기 위해 낮은 수준의 재생 코드를 최적화했습니다. 또한 언제든지 비디오로 빠르게 전환할 수 있도록 특별한 방법으로 비디오를 인코딩해야 했습니다. 이 재생 파이프라인은 개발 시간이 상당히 많이 걸렸기 때문에 단계별로 구현했습니다. 우리는 효율성이 떨어지는 간단한 시스템으로 시작했지만 디자이너와 아티스트가 경험을 작업할 수 있게 했으며, 서서히 더 강력한 재생 시스템으로 개선하여 최종 품질 표시줄에서 배송할 수 있게 했습니다. 이 최종 시스템에는 장면 내에서 비디오를 설정하고 재생 엔진을 모니터링하기 위해 Unity 내에서 만든 사용자 지정 도구가 있었습니다.
3D에서 가까운 공간 개체 다시 만들기
비디오는 HoloTour에서 보는 것의 대부분을 차지하지만 나보나 광장의 그림, 판테온 외부의 분수 또는 공중 장면을 위해 서있는 열기구와 같은 많은 3D 개체가 있습니다. 이러한 3D 개체는 인간의 깊이 인식이 매우 가깝지만 멀리 떨어져 있지 않기 때문에 중요합니다. 멀리서 비디오를 볼 수 있지만, 사용자가 자신의 공간을 돌아다니며 실제로 그곳에 있는 것처럼 느낄 수 있도록 하려면 근처의 물체에 깊이가 필요합니다. 이 기술은 자연사 박물관에서 볼 수 있는 것과 비슷합니다. 전경에 물리적 조경, 식물 및 동물 표본이 있지만 배경에 영리하게 가면을 쓴 무광택 그림으로 후퇴하는 디오라마를 그려보세요.
일부 개체는 단순히 우리가 만들고 환경을 향상시키기 위해 장면에 추가 한 3D 자산입니다. 그림과 열기구는 우리가 촬영 할 때 존재하지 않았기 때문에이 범주에 속합니다. 게임 자산과 마찬가지로 팀의 3D 아티스트가 만들고 적절하게 질감을 지정했습니다. 사용자가 서 있는 곳 근처의 장면에 이러한 항목을 배치하고, 게임 엔진은 이를 두 HoloLens 디스플레이에 렌더링하여 3D 개체로 표시할 수 있습니다.
판테온 외부의 분수와 같은 다른 자산은 비디오를 촬영하는 위치에 존재하는 실제 개체이지만 이러한 개체를 비디오에서 3D로 가져오려면 여러 가지 작업을 수행해야 합니다.
먼저 각 개체에 대한 추가 정보가 필요합니다. 촬영 위치에 있는 동안 우리 팀은 이러한 개체의 참조 영상을 많이 캡처하여 질감을 정확하게 재현할 수 있는 충분한 세부 이미지를 갖출 수 있도록 했습니다. 팀은 또한 수십 개의 2D 이미지에서 3D 모델을 구성하는 사진 측량 스캔을 수행하여 개체의 대략적인 모델을 완벽한 규모로 제공했습니다.
영상을 처리할 때 나중에 3D 표현으로 대체될 개체가 비디오에서 제거됩니다. 3D 자산은 사진 측량 모델을 기반으로 하지만 아티스트가 정리하고 간소화했습니다. 일부 개체의 경우 분수의 물 텍스처와 같은 비디오 부분을 사용할 수 있지만, 대부분의 분수는 이제 사용자가 깊이를 인식하고 제한된 공간에서 탐색할 수 있는 3D 개체입니다. 이와 같은 거의 공간 개체가 있으면 리얼리즘의 감각이 크게 추가되고 가상 위치에서 사용자를 접지하는 데 도움이 됩니다.
분수가 제거된 판테온 영상. 3D 자산으로 대체됩니다.
맺음말
분명히 여기서 설명한 것보다 이 콘텐츠를 만드는 데 더 많은 것이 있었습니다. 열기구 타기와 콜로세움의 검투사 싸움을 포함하여 "불가능한 관점"이라고 부르는 몇 가지 장면이 있습니다. 향후 사례 연구에서 이 문제를 해결할 것입니다.
프로덕션 중에 발생한 더 큰 과제 중 일부에 솔루션을 공유하는 것이 다른 개발자에게 도움이 되며, 이러한 기술 중 일부를 사용하여 HoloLens에 대한 몰입형 환경을 만들도록 영감을 받았으면 합니다. (그리고 그렇게 하는 경우 HoloLens 앱 개발 포럼에서 Microsoft와 공유하세요!)
작성자 정보
David Haley 는 HoloTour에서 작업할 때 생각했던 것보다 카메라 장비 및 비디오 재생에 대해 더 많이 배운 선임 개발자입니다. | 대니 아스큐 (Danny Askew )는 로마를 통과하는 여행이 가능한 한 완벽했는지 확인한 비디오 아티스트입니다. | ||
Jason Syltebo는 시간을 거슬러 올라가더라도 방문하는 모든 목적지의 사운드 스케이프를 경험할 수 있도록 한 오디오 Designer. | 트래비스 스타이너(Travis Steiner )는 위치를 연구하고 정찰하고, 여행 계획을 세우고, 현장에서 촬영을 감독한 디자인 디렉터입니다. |