1. 서론
현실에 존재하는 물리적인 환경을 디지털 영상으로 증강하여 생동감 있게 표현하는 프로젝션 맵핑(Projection mapping) 기술은 사람들에게 새로운 경험과 정보를 전달하기 위해 테마파크, 전시회, 설치 미술 등에서 전 세계적으로 활용되고 있다.[1,2] 프로젝션 맵핑은 프로젝터를 활용해 현실 객체의 표면에 컴퓨터 생성 영상을 중첩하여 물리적 세계와 가상 세계를 자연스럽게 융합한다. 물리적 환경을 영상으로 증강한다는 점에서 공간 증강 현실(Spatial augmented reality)이라고도 불린다. 기존의 증강 현실 기술과 비교하여 프로젝션 맵핑이 가지는 장점 중 하나는 증강된 결과물을 여러 사람이 함께 즐길 수 있다는 것이다. 또한, 여러 대의 프로젝터의 투사 영상을 매끄럽게 결합하여 큰 화면을 구성할 수 있고, 일반적인 디스플레이 패널로 제작하기 힘든 복잡한 형태의 화면도 구현할 수 있다.[3] 따라서, 실감형 공간을 구성하는 대표적인 방법으로 널리 쓰인다.[4]
3D 프로젝션 맵핑은 부피가 있는 물리적인 객체에 프로젝션 맵핑을 적용하는 것을 말한다. 주로 건물, 조각상, 신발, 자동차와 같이 정적인 객체에 적용하여 동적인 시각효과를 구현하는 데 사용된다. 예를 들어, 인물 형상의 조각상에 프로젝터로 영상을 투사하여 조각상이 눈물을 흘리게 하거나 재질이 변하는 것과 같은 착시를 의도적으로 생성할 수 있다.[1] 3D 프로젝션 맵핑의 효과를 높이기 위해선 현실 객체와 중첩된 프로젝터 투사 영상이 정확하게 일치해야 한다.
3D 프로젝션 맵핑을 구현하는 것은 일반적인 영상 제작에 비해 많은 과정과 전문 지식이 요구된다. 평면 스크린을 위해 개발된 프로젝터의 영상을 임의의 굴곡과 형태를 가지는 3차원 객체에 투사할 경우 표면에서 많은 왜곡이 발생한다. 정교한 맵핑을 위해서 이러한 왜곡 정도를 사전에 고려하여 영상을 제작해야 한다.[5] 영상 왜곡을 정확히 계산하기 위해선 물리적 객체의 형태에 대한 3차원 데이터가 필요하고, 프로젝터의 위치와 렌즈의 광학적 특성을 나타내는 수학적인 정보가 필요하므로 수작업으로 이를 계산하는 것은 매우 어렵다.
지난 수십 년 동안 컴퓨터 비전 연구자들은 기하학적, 광학적 왜곡을 자동으로 보정하기 위한 프로젝터-카메라 시스템을 개발하였다.[1] 이 시스템에서 카메라는 표면에 투사된 프로젝션 영상을 관찰하고 분석하여 원하는 증강 결과를 얻기 위해 프로젝션 영상을 적절히 조정하는 방법을 추정하게 된다. 하지만, 카메라 기반 자동화 방법들은 일반적으로 사전 카메라 캘리브레이션 과정을 요구하고, 카메라 위치가 제한되며, 야외와 같이 통제되지 않은 조명 환경이나 반사 재질을 가진 객체에 대해서 정확도가 떨어져 실제 맵핑 환경에서 활용이 제한된다.[6] 따라서, 실제 현장에서는 사용자 입력을 기반으로 프로젝션 영상을 조정하는 수동 프로젝션 맵핑 도구 많이 쓰인다. 대표적으로 MadMapper, TouchDesigner가 있으며 저렴한 비용으로 인해 학생부터 전문가까지 폭넓게 사용한다. 이렇듯 수동 3D 프로젝션 맵핑 방법이 많이 활용됨에도 불구하고 구체적인 과정에 대한 분석은 아직 연구되지 않았다.
본 연구는 수동 3D 프로젝션 맵핑 구현 과정을 정리하고 문제점 및 개선사항을 도출하는 것을 목표로 한다. 이를 위해 수동 3D 프로젝션 맵핑 기능을 지원하는 상용 도구를 선정하고 작업 과정을 분석하였다. 먼저 3D 프로젝션 맵핑 제작 파이프라인에 대해 공통적인 제작 단계를 도출하였고, 맵핑 콘텐츠 제작 방법을 분류 및 과정을 정리하였다. 그 후, 상용 도구에서 수동 맵핑하는 과정의 세부 단계의 목표 및 동작 방식을 정리하였다. 실험을 통해 제작 방법과 사용자 입력에 따른 상용 도구들의 성능을 비교 분석하기 위해 실제 프로젝션 맵핑을 수행하였다. 최종적으로 기존 도구들의 문제점을 도출하고 이를 해결하기 위한 향후 연구 방향에 대해 제언을 하였다.
2. 관련 연구
3D 프로젝션 맵핑 기법이 디즈니와 같은 테마파크에서 1960대부터 사용됐으며[2], Raskar et al.은 이를 학술적으로 공간 증강 현실이라 정의하고[7] 프로젝터를 활용해 물리적 객체를 증강시키는 다양한 기법에 대해 제안하였다. Shader lamps[8] 연구는 스캐닝을 통해 획득한 3D 메쉬 모델과 사용자 입력 대응점을 기반으로 프로젝터 이미지를 정렬시키는 초기 방법을 제안했다. 이를 확장하여, Bandyopadhyay[9]와 함께 추가적인 추적 장비를 활용하여 움직이는 객체에 실시간으로 프로젝션 맵핑하는 기법을 고안하고, 사용자의 3차원 입력을 활용하는 예시들을 보여주었다. 또한, Raskar et al.은 사전 캘리브레이션된 카메라를 이용해 평면, 곡면과 같은 다양한 기하학적 형태의 스크린에 적용 가능한 자동 프로젝터 등록 방법들을 제안하였다.[10,11,12]
프로젝터-카메라 시스템에서 성공적인 3D 프로젝션 맵핑을 위해선 두 장치의 정확한 캘리브레이션 필수적이다. 프로젝터는 카메라와 빛의 방향이 반대이지만 광학적 속성은 유사하기 때문에 수학적으로 역(Inverse) 카메라 모델로 표현할 수 있다. 구조광 패턴, 체커보드와 같은 평면 캘리브레이션 도구를 이용하면 전통적인 컴퓨터 비전 분야에서 카메라 캘리브레이션과 유사하게 프로젝터렌즈의 광학적 속성과 카메라와의 상대적인 기하학적 위치 관계를 파악할 수 있다.[13] 이렇게 획득한 캘리브레이션 데이터는 3D 모델을 렌더링하기 위해 사용이 가능하다.
사용자가 개입하는 복잡한 캘리브레이션 과정을 최소화하기 위한 연구들도 제안되었다. Yamazaki et al.[14]은 프로젝터의 주점을 안다는 가정하에 방사형 기본 행렬을 분해하여 카메라와 프로젝터의 내/외부 변수를 추정하는 알고리즘을 제안하였다. Resch et al.[13]은 정확한 3D 메쉬 모델을 활용하여 정확한 전역 크기를 추정하는 방법을 고안하였다. Willi et al.[15]과 Tehrani et al.[16]는 다수 카메라와 다수 프로젝터를 구조광을 기반으로 상호 검증하여 최적화하는 방법을 통해 캘리브레이션 과정 없이 카메라와 프로젝터 등록 및 스크린 기하학적 형태 복원을 자동으로 수행하는 알고리즘을 제안하였다.
카메라 기반에 프로젝터 자동 캘리브레이션 기술이 활발히 연구된 것에 비해, 수동 캘리브레이션을 통한 프로젝션 맵핑 기술은 Shader lamps가 초기 방법을 제안한 이후로 거의 연구되지 않았다. Portales et al.[6]은 사용자가 3D-2D 대응점을 반복적으로 지정하는 상호작용 시스템을 개발했다. Direct linear transformation 방법을 이용해 3D 메쉬 모델을 기준으로 프로젝터의 3차원 위치 및 렌즈 변수를 계산하여 프로젝션 맵핑을 진행하게 된다. 저렴한 비용과 간편함으로 인해 상용 프로젝션 맵핑 도구인 MadMapper와 TouchDesigner는 수동 방식을 모두 지원하며 전 세계 제작자에게 널리 사용되고 있다. 본 연구는 상용 수동 도구를 이용한 3D 프로젝션 맵핑 콘텐츠 제작 과정을 상세하게 살펴보고, 성능 및 문제점을 분석하여 향후 연구 방향을 제시하고자 한다.
3. 3D 프로젝션 맵핑 제작 파이프라인
3D 프로젝션 맵핑에서는 3차원의 현실 오브젝트의 표면에 2차원 영상을 투사한다. 본 논문에서 다룰 3D 메쉬 모델을 이용한 프로젝션 맵핑에서는 투사할 2차원 영상으로서 Figure 1과 같이 3D 메쉬 모델이 존재하는 가상 환경의 렌더링 된 2D 이미지를 사용한다. 이때, 투사되는 이미지 속의 3D 모델의 모습이 현실 오브젝트와 일치할 때 3D 모델의 텍스처가 마치 현실 오브젝트에 입혀진 것처럼 보여 관람자를 몰입시킬 수 있다.
우선 현실 오브젝트와 동일한 3D 모델을 획득 또는 생성한다. 이후, 3D 모델의 렌더링 이미지의 투사 결과를 현실 오브젝트와 일치시키기 위해서는 가상 환경에서 가상 카메라와 3D 오브젝트의 위치를 현실의 프로젝터, 오브젝트 간의 위치 관계와 동일하게 구성할 필요가 있다. 카메라는 렌즈를 통해 집광하여 이미지를 생성하고 프로젝터는 렌즈를 통해 발광하여 이미지를 투사하기 때문에 빛의 진행 방향은 반대이지만 렌즈에 대한 내부 파라미터는 수학적으로 동일하게 표현할 수 있다.[13] 따라서, 실제 프로젝터와 동일한 초점 거리, 렌즈 왜곡 등을 가지도록 가상 카메라의 내부 파라미터를 설정해야 한다. 위와 같은 일련의 과정을 캘리브레이션이라고 한다. 이후 가상 환경에서 3D 오브젝트를 렌더링함으로써 현실 오브젝트와 정확하게 일치하는 프로젝터의 2D 투사 이미지를 생성할 수 있다.
프로젝션 맵핑을 구현하는 또 다른 방법으로는 2차원 기반으로 영상을 편집하여 현실 오브젝트와 일치시키는 것이다. 현실 오브젝트 위에 투사되고자 하는 영상을 제작한 후 프로젝터의 투사 결과를 보며 수작업으로 변형, 워핑, 마스킹을 통해 원하는 위치에 배치하는 것을 반복하게 된다. 3D 메쉬 모델을 제작할 필요가 없어 공정이 단순하지만, 현실 오브젝트나 프로젝터의 위치가 바뀌면 투사할 영상을 다시 제작해야 한다는 단점이 있다.
하지만 3D 메쉬 모델을 이용한 프로젝션 맵핑에서는 반자동 캘리브레이션 기술을 통해 가상 카메라의 위치, 화각, 해상도를 프로젝터와 일치시키기 쉽고, 현실 오브젝트나 프로젝터의 위치가 변화해도 텍스처를 새로 제작할 필요 없이 가상 환경을 그와 맞게 변경하여서 렌더링하면 되므로 투사 영상을 새로 제작하는 번거로움이 없다는 장점이 있다.
3D 모델을 이용한 프로젝션 맵핑의 과정은 Figure 2에서 나타낸 것처럼 크게 디지털 트윈 생성, 텍스처 제작, 맵핑의 세 단계로 나뉜다. 먼저 디지털 트윈 단계에서는 동일한 기하학적 형태를 가진 현실 오브젝트-3D 모델의 오브젝트 쌍(디지털 트윈)을 구성한다. 다음으로 3D 모델에 입힐 텍스처를 제작하기 위해 UV 맵을 생성하고 그에 맞는 효과 영상을 제작한다. 마지막으로 Figure 1처럼 가상 환경에서 3D 모델을 렌더링한 2D 이미지를 현실 오브젝트의 표면에 일치하도록 투사하는 맵핑 단계를 수행한다.
디지털 트윈은 현실 오브젝트와 3D 메쉬 모델이 서로 닮은 한 쌍이다. 현실 환경과 동일한 가상 환경을 구성하기 위한 첫 번째 단계로, Figure 2 (좌)처럼 가상 환경에서 3D 메쉬 모델에 입힌 텍스처가 Figure 2 (우)에서와 같이 현실 오브젝트에도 동일하게 적용되도록 하는 역할을 한다.
텍스처는 3D 모델의 전개도인 UV 맵을 토대로 제작한다. UV 맵의 2차원 좌표는 오브젝트 메쉬 표면의 3차원 좌표에 대응된다. 따라서 오브젝트의 형태를 반영하는 텍스처 제작에는 UV 맵 생성이 필수적이다. 텍스처에 해당하는 효과 영상을 제작할 때에는 콘셉트, 시나리오 등을 구상하는 과정이 추가로 필요할 수 있다.
맵핑 단계는 프로젝터가 투사할 최종 이미지를 생성한다. 완성된 텍스처를 적용한 가상 환경의 3D 모델을 렌더링한 이미지를 현실 오브젝트에 투사하면서, 프로젝터가 현실 오브젝트를 바라보는 위치와 가상 카메라가 3D 모델을 바라보는 위치가 일치하도록 캘리브레이션 하는 과정과 렌더링 된 이미지를 보정하는 과정을 거친다. 각각의 과정에 대한 자세한 설명은 이후 장에서 서술한다.
4. 맵핑 콘텐츠 제작
프로젝션 맵핑에 필요한 현실 오브젝트와 3D 모델은 두 가지 방법으로 구성할 수 있다. 이미 존재하는 현실 오브젝트를 3D 스캔하여 3차원 모델을 획득하거나, 반대로 3차원 모델을 3D 프린트하여 현실 오브젝트를 생성할 수 있다. 이번 절에서는 각각의 과정을 소개한다.
3D 스캐닝은 전용 3D 스캐너 또는 스마트폰 애플리케이션을 이용하여 현실 오브젝트와 똑같은 모습의 3차원 모델을 생성한다. 3D 스캔을 위해서는 광학 또는 레이저 방식의 3D 스캐너를 사용하거나[17], 사진 측량(Photogrammetry) 방법을 사용한다. 스마트폰으로 3D 스캔을 할 경우, 주로 레이저 방식 또는 사진 측량을 이용한다. 레이저 방식의 경우 빛을 발사하고 그 빛이 되돌아오기까지의 시간을 탐지해 거리를 계산하므로 해당 센서가 탑재된 스마트폰이 필요하다. 사진 측량의 경우 고정된 오브젝트를 중심으로 여러 각도에서 촬영하거나, 카메라를 고정하고 오브젝트를 회전하며 촬영하는 방법을 사용할 수 있다. [18] 카메라 이외에 특별한 부품이나 기능이 요구되지 않으므로 레이저 방식보다 장비의 제약이 적다.
3D 스캔을 거쳐 생성된 3차원 모델은 파일 크기가 크고, 메쉬의 구성이 불규칙적이고 불필요한 메쉬들도 포함되어 있기 때문에, 텍스쳐를 만들기 위한 UV 맵 작업이 어렵다. [19] 따라서 메쉬를 가지런히 정리하며 모델의 형태를 단순화 시켜주는 리토폴로지(Re-topology)과정이 필요하다. 리토폴로지를 위한 도구로는 Instant Meshes, Zbrush 내부의 ZRemesher 등이 있다. [20] 이때, 스캔했던 초기 데이터와 비교했을 때 외형이 크게 변하지 않는 수준으로 메쉬를 정리해야 한다는 점에 주의해야 한다.
3D 프린팅은 3D 메쉬 모델과 똑같은 형태의 현실 오브젝트를 출력하는 것을 말한다. 3D 메쉬 모델은 Maya, Blender와 같은 3D 소프트웨어나 CAD를 통해 직접 제작하거나, 3D 모델링 거래 웹사이트를 이용해 무료 또는 유료로 구매할 수 있다. 3D 모델을 저장하기 위해 가장 널리 사용되는 포맷은 STL이다. 3D 프린터는 필라멘트를 녹여 한 층씩 쌓아 올리는 FDM(Fused Deposition Modeling) 방식이 가장 대중적인데, 표면이 거칠게 출력된다는 단점이 있으나 저렴하고 접근성이 좋다. FDM 방식의 경우 모델의 데이터를 인식하고 프린트하기 위해서는 3D 프린터에 명령을 내리는 G-code를 생성해주는 슬라이스 과정을 거쳐야 한다. G-code에 포함되는 정보는 레이어의 높이, 채우기 밀도, 필라멘트 압출량 등이 있어 출력물의 품질에 영향을 줄 수 있다. [21] 맵핑을 위해서는 출력물의 고른 표면과 형태의 정확한 표현이 요구되므로 품질에 영향을 주는 슬라이스의 경우 전문가의 도움을 받는 것이 바람직하다. 또한, 프린터 크기에 따라 출력 가능한 오브젝트의 크기가 달라지므로 계획한 오브젝트가 출력 가능한 크기보다 크다면 3D 메쉬 모델을 분해하여 출력 후 조립해야 할 필요가 있으나, 프린터의 상태나 주변 온도에 따라 각 부품의 크기나 절단면에 차이가 생겨 결합이 원활하지 않을 수도 있다.
이 절에서 다루는 맵핑 영상은 가상 환경에서의 3D 모델의 텍스처이다. 이 단계에서 제작한 맵핑 영상은 맵핑 오브젝트를 교체하지 않는 이상 맵핑 오브젝트의 위치나 프로젝터의 위치, 각도 변경이 발생하여도 변함없이 사용할 수 있다.
텍스처 제작에 앞서, Maya, Blender 등의 3D 소프트웨어에서 3D 모델의 UV 맵을 생성한 뒤, 이미지 파일로 내보낸다. UV 맵은 3D 소프트웨어에서 자동으로 생성할 수 있으나, 텍스처 제작의 용이성을 위해서 Figure 3 (a)처럼 수동으로 seam을 지정하는 것이 좋다. seam이란 UV 맵을 펼쳤을 때 메쉬가 쪼개지는 기준이 되는 선이다. seam들을 지정하고 unwrap 기능을 적용하면 seam을 따라 메쉬들이 분리되어 3차원 메쉬가 Figure 3 (b)와 같이 2차원 평면 이미지로 변환된다. 앞으로 사용할 3D 모델의 파일 포맷은 이 단계에서 생성한 UV 정보를 포함하는 OBJ나 FBX 형식이어야 한다.
텍스처로 쓰일 효과 영상은 질감과 형태 표현, 애니메이션 등 다양한 내용으로 제작할 수 있다. 제작에 주로 사용되는 소프트웨어로는 After Effect, Cinema 4D 등이 있다. 이들 프로그램에는 레이어 기능이 있어, 앞서 생성한 UV 맵의 이미지 파일을 최하위 레이어로 설정하여 상위 레이어에서 UV 맵을 기반으로 영상 작업이 가능하다. 이 과정에서 Figure 3 (c)과 같이 제작한 영상의 컬러 값들이 UV 맵의 좌표를 토대로 Figure 3 (d)에서 보이는 것처럼 3D 모델의 표면에 실시간 시각화가 가능하므로 효과의 크기나 위치가 의도에 어긋나지 않는지 확인하며 작업하는 것이 중요하다.
5. 수동 3D 프로젝션 맵핑 기법
이 절에서는 프로젝션 맵핑을 위해 가장 범용적으로 사용되는 툴인 Madmapper와 TouchDesigner를 대상으로 공통적인 맵핑 과정과 세부 동작의 차이점을 비교한다. 공통으로 필요한 과정으로 대응점 생성, 추가 보정, 마스킹 단계가 있는데, 이들 모두 가상 공간의 렌더링 이미지를 프로젝터를 통해 투사하며 진행된다. 이 단계부터는 프로젝터의 위치를 고정하여, 이후 단계에서 수정 작업이 최소화되도록 한다. 각 단계에서의 조작은 모두 실시간으로 렌더링 되므로 즉각적인 피드백이 가능하다.
Madmapper의 경우 프로젝션 맵핑 전문 툴로, (Figure 4)와 같이 인터페이스가 간단하다. Output 뷰는 프로젝터로 출력되는 뷰로서, 이곳에서 3D 메쉬를 불러오고 대응점을 생성하여 가상 환경을 구성한다. 대응점 생성과 추가 보정은 프로젝트 탭에 존재하는 Calibrate 모드를 통해 순서대로 이루어진다.
TouchDesigner는 광범위한 그래픽 작업이 가능한 노드 방식의 툴로, 프로젝션 맵핑에 필요한 내장 컴포넌트들을 조합하여 사용한다. 본 논문에서는 대응점 생성을 통해 가상 카메라의 캘리브레이션을 담당하는 CamSchnappr, 추가 보정 단계에서 프로젝터 화면에서 투사하는 2D 렌더링 이미지를 왜곡하는 Stoner, 마스킹 단계에서 다양한 마스크를 생성하는 kantanMapper라는 컴포넌트를 사용한다.
대응점 생성 단계에서는 사용자가 3D-2D 대응점 쌍을 반복적으로 지정해준다. 3D 대응점은 3차원 메쉬 모델 상의 정점(Vertex)를 의미하고, 2D 대응점은 선택한 3D 정점에 대응되는 현실 오브젝트의 상의 위치에 투사되는 프로젝터 이미지 좌표계에서의 2차원 픽셀 위치를 나타낸다. 각 3D-2D 대응점 쌍을 생성할 때에는 우선 3D 메쉬 모델에서 3D 대응점이 될 정점을 선택하고, 이후 마우스나 키보드를 통해 2D 대응점의 위치를 실제 프로젝션 되는 결과물을 보며 지정해준다. 이 대응점 쌍의 위치를 기반으로 카메라의 파라미터를 자동으로 최적화함으로써 현실 오브젝트와 프로젝터 사이의 기하학적 투영 관계가 맵핑 툴 안에서의 3D 메쉬 모델과 렌더링 카메라에 적용되어 일치하게 된다. [6,8] 이러한 최적화 문제를 PnP (Perspective-n-point) 문제라고 하며 3D-2D 대응점으로부터 재투영 오차를 최소화하는 회전, 이동, 원근 변환을 포함한 카메라 행렬을 추정한다. 자세한 수학적 원리와 다양한 풀이 방법은 Marchand 연구진의 논문에서 확인할 수 있다. [23] 두 가지 툴 모두 자동 계산을 위해서는 최소 6개의 대응점을 설정할 필요가 있다.
Madmapper의 경우 Calibrate 모드에서 대응점을 지정한다. 3D 메쉬 모델이 존재하는 Figure 4 (a)의 우측의 Output 뷰에서 3D 대응점을 선택한 뒤, 그로 인해 생성된 2D 대응점을 마우스로 끌어다 Figure 4 (b)에서와 같이 프로젝터 뷰 상에 위치시키는 방식으로 대응점 쌍을 지정한다. 이후 키보드 방향키를 이용하면 1픽셀 단위의 이동이 가능하다. 이때, 대응점 생성을 시작한 경우 3D 모델의 이동이나 회전이 불가하므로 대응점으로 선택하려는 정점이 모두 보이는 상태로 3D 모델을 미리 조정해 둘 필요가 있다.
TouchDesigner의 경우, CamSchnappr라는 컴포넌트를 사용한다. Figure 5 (a)와 같이 CamSchnappr의 Main Window에 나타나는 3D 메쉬 모델에서 정점을 선택하면 자동으로 번호가 매겨지며, Figure 5 (b)에서 보이는 것처럼 프로젝터로 투사되는 Output 화면에 2D 대응점들이 3D 대응점의 번호와 짝을 맞추어 생성된다. Madmapper와 같이 마우스와 키보드를 통해 2D 대응점을 이동시킬 수 있으며, 키보드 방향키를 통해서 1픽셀 단위의 이동이 가능하다. 이때, 2D 대응점의 위치는 각각 x, y축과 평행한 두 직선의 교차점으로 표현되므로 Madmapper에 비교해 2D 대응점의 위치를 파악하기가 상대적으로 쉽다. 또한, Madmapper와 달리 대응점 생성을 시작했더라도 Main Window 3D 모델의 확대, 회전이 가능하다는 편리함이 있다.
대응점 생성 단계에서 3D 메쉬 모델과 현실 오브젝트를 일치시켰음에도 불구하고, 텍스처가 현실 오브젝트의 윤곽을 벗어나거나, 원하는 위치에 원하는 효과가 입혀지지 않는 등의 의도하지 않은 문제가가 발생할 수 있다. 원인은 3D 모델과 현실 오브젝트의 차이, 대응점 생성의 불완전함, 프로젝터 캘리브레이션 오차 등 다양하다.[6] 추가 보정 단계에서 작업자는 프로젝터가 투사하는 렌더링 이미지를 수작업으로 변형 및 왜곡시킴으로써 현실 오브젝트에 의도대로 효과 영상이 투사되도록 할 수 있다.
Madmapper의 경우, Output 뷰 화면에 존재하는 3D 메쉬 모델의 정점을 하나씩 마우스로 조작하여 프로젝터 화면의 3D 모델의 모습을 변형할 수 있다. import 했던 3D 모델 파일에는 영향을 미치지 않는다. 하지만, 메쉬가 복잡할수록 원하는 정점을 선택하여 조작하기가 어려우며 정점을 하나씩 수정하는 것은 많은 시간이 소요된다는 문제가 있다.
TouchDesigner의 경우, 대응점 생성이 끝난 뒤의 가상 환경을 2D 렌더링한 이미지를 왜곡하는 방식을 사용한다. grid-warping 기능이 제공되는 컴포넌트인 Stoner는 이미지에 격자를 생성한 뒤 격자의 교차점을 선택하여 이동시키면 해당 교차점 주변의 픽셀들이 교차점과 함께 이동하기 때문에 이미지를 왜곡시킬 수 있다. 따라서 2D 렌더링 이미지의 오류를 Stoner를 통해 왜곡시켜 정확한 이미지로 보정하는 것이 가능하다. 하지만, Stoner 컴포넌트 내부에는 프로젝터 뷰를 제공하지 않기 때문에 보정 결과를 확인하기 위해서는 다른 컴포넌트와 연결해야 한다는 번거로움이 있다.
추가 보정을 수행했음에도 현실 오브젝트의 윤곽을 벗어나는 문제가 남아있거나, 의도적으로 효과 영상 위에 도형을 배치하는 연출이 있을 시에 마스킹 단계를 수행한다. 마스킹은 가린다는 의미로, 마스킹을 활용하면 Figure 6 (b)에서 오른쪽 턱에서 이미지가 벗어난 부분을 Figure 6 (a)과 같이 2D 렌더링 이미지 상에 배경과 같은 검은색의 도형을 배치함으로써 해당 부분이 Figure 6 (c)에서와 같이 프로젝터를 통해 투사되지 않도록 해 결과물의 완성도를 높일 수 있다. 그 밖에도 두 가지 툴 모두 다각형, 곡선 생성과 색이나 텍스처 지정이 가능하므로 도형에 텍스처를 넣어 가상 환경의 구성과 관계없이 2D 렌더링 이미지 상에 새로운 효과 영상을 추가하는 등의 다양한 연출이 가능하다.
6. 결과
이번 절에서는 앞서 설명한 다양한 맵핑 콘텐츠 제작 방식 및 대응점 생성 방식에 따른 수동 3D 프로젝션 맵핑 결과물을 보여준다. 또한, 결과물의 정확도를 Madmapper, TouchDesigner 두 가지 툴을 대상으로 비교 분석한다.
3D 스캐닝을 통해 디지털 트윈을 구성한 후 영상 제작과 맵핑을 실행한 결과에 관해서 서술한다. 3D 스캐닝에는 LiDAR 센서가 탑재된 iOS 환경에서 사진 측량 방식의 Kiri Engine App을 사용하였다. 현실 오브젝트는 높이 약 20cm의 석고상을 선정하였다. 사용된 프로젝터는 Optoma ML750ST로, 오브젝트와의 거리는 약 32cm이다.
동일 환경이란 비교군인 맵핑 툴을 제외한 가상 환경의 조건(선정한 대응점, 텍스처)과 그 밖의 맵핑 환경의 구성(프로젝터와 현실 오브젝트)이 같음을 뜻한다. <표 1>은 캘리브레이션을 위해 사용한 대응점과 두 가지 툴의 맵핑 결과를 나타낸다. 대응점은 자동 계산에 필요한 최소 개수인 6개를 오브젝트 상에서 특정 부위에 밀집하지 않도록 선정하였다.
Madmapper에서는 투사된 이미지가 몸통 부분의 윤곽을 크게 벗어난 모습을 보였다. 이는 추가 보정을 진행하거나 추가적인 대응점 생성을 통해 개선할 수 있다. 반면에 TouchDesigner에서는 받침대 부분이 어긋난 모습을 보이나 전체적인 윤곽이 일치하므로, 미세한 추가 보정 단계만이 요구된다. 따라서 최소 개수의 대응점 환경에서 전반적으로 TouchDesigner의 맵핑 정확도가 더 높다고 할 수 있다.
3D 대응점의 선정이 결과물의 품질에 영향을 미치는지 알아보기 위한 실험으로 대응점의 개수와 대응점의 분포에 차이를 두어 맵핑을 수행한 결과는 다음과 같다.
Table 2에서는 두 가지 툴을 사용해 대응점 최소 개수인 6개부터 대응점을 3개 추가할 때마다 나타나는 맵핑 결과의 변화를 나타낸다. 대응점을 6개 생성하는 데에 대략 2분이 소요되었다. 대응점을 3개 추가할 때마다 가장 적절한 추가 대응점을 선정하는 시간을 포함해 대략 3~4분이 소요되었다.
Madmapper의 경우, 대응점의 개수가 증가할수록 정확도가 상승했지만, 윤곽은 일치하지 않는 것을 알 수 있었다. TouchDesinger의 경우, 대응점의 최소 개수인 6개 만으로도 전체적인 윤곽이 일치하는 것을 확인할 수 있었으나, 마찬가지로 대응점의 개수가 증가할수록 더욱 정확해지는 모습을 보였다.
Table 3은 대응점의 개수는 같지만, 분포를 다르게 했을 때의 맵핑 결과를 나타낸다. 두 툴 모두 대응점을 특정 부위에 밀집해 있지 않도록 고르게 분포시켰을 때 가장 높은 정확도를 보였다. 얼굴이나 몸통과 같이 특정 부위에만 대응점을 생성했을 때는 해당 부위는 대체로 일치하였으나, 대응점을 생성하지 않은 부위에서는 큰 불일치를 보였다.
3D 프린팅을 통해 디지털 트윈을 구성한 후 영상 제작과 맵핑을 실행한 결과에 관해서 서술한다. 3D 모델은 3D 프린팅 커뮤니티인 printables.com에서 무료로 공개된 파일을 통해 준비하였으며, 프린팅된 현실 오브젝트의 높이는 약 20cm가 되도록 하였다. 3D 프린팅에 사용된 프린터는 Cubicon style, 사용된 프로젝터는 Optoma ML750ST로, 오브젝트와의 거리는 약 30cm이다.
Table 4는 동일 세팅으로 두 가지 맵핑 툴에서 대응점을 생성하여 맵핑한 결과를 나타낸다. Madmapper에서는 투사된 이미지가 턱 부분의 윤곽을 크게 벗어난 모습을 보이나, TouchDesigner에 전체적으로 일치한 모습을 보인다. 이와 같은 결과와 함께 Table 1의 내용을 고려하면 Madmapper보다 TouchDesigner의 캘리브레이션 성능이 우수한 것을 알 수 있다.
Table 5에서는 Table 2와 같이 대응점 추가에 따른 변화를 나타낸다. Madmapper는 대응점의 개수가 증가할수록 맵핑의 정확도 역시 증가하는 경향을 보였다. 그와 다르게 TouchDesigner는 최소 개수의 대응점으로도 높은 정확도를 보였으며, 대응점 개수의 증가는 결과에 큰 영향을 미치지 않았다. 이는 3D 스캐닝과 비교하여 3D 프린팅으로 디지털 트윈을 구성한 경우 현실 오브젝트와 3D 모델 간의 오차가 적기 때문인 것으로 유추된다. Table 2와 Table 5의 내용을 고려하면 대응점의 개수는 캘리브레이션의 정확도에 영향을 미친다고 볼 수 있다.
Table 6은 대응점의 개수는 같지만 분포를 다르게 했을 때의 맵핑 결과를 나타낸다. Madmapper의 경우 분포에 상관없이 윤곽을 벗어나거나 이목구비가 부정확한 모습을 보였다. TouchDesigner의 경우 세 조건 모두 큰 차이를 보이지는 않았으나, 고른 분포일 때에 가장 정확한 모습을 보였다. Table 3과 Table 6의 내용을 미루어 보면, 결과물의 품질 향상을 위해서는 대응점을 비슷한 위치에 몰리지 않도록 선정하는 것이 중요함을 알 수 있다.
7. 분석 및 제언
2D 대응점을 적절히 위치시켰음에도 불구하고 현실 오브젝트에 맵핑 영상이 의도된 대로 입혀지지 않을 수가 있다. 3D 대응점과 2D 대응점이 일치하지 않기 때문인데, 맵핑 툴의 가상 카메라 캘리브레이션의 성능 밖에도 다음과 같은 두 가지의 원인이 있다.
첫째, 3D 데이터와 실물의 차이이다. 디지털 트윈 생성 과정에서 발생한 오차들로 인해 3D 메쉬 모델과 현실 오브젝트가 완전히 일치하지 않을 경우, 2D 대응점을 현실 오브젝트의 표면에 최대한 정확하게 이동시키더라도 3D 메쉬 상에서 선택한 3D 대응점과는 다른 위치일 수 있다.
둘째, 프로젝터의 광학적 캘리브레이션은 고려하지 않았기 때문이다. 프로젝터의 캘리브레이션이 적절히 이루어지지 않아 투사하는 이미지가 왜곡된 경우, 맵핑 과정에서 문제가 없더라도 결과물 상에서는 대응점의 불일치가 일어난 것으로 보일 수 있다.
실험을 통해 대응점의 개수와 분포에 따라 자동 캘리브레이션의 정확도가 달라지는 것을 확인할 수 있었다. 이는 3D-2D 대응점의 재투영 오차를 최소화하는 최적화의 특성상 대응점이 존재하지 않는 영역의 경우 제약 조건이 없으므로 최적화 단계에서 고려되지 않기 때문이다. 앞서 언급한 3D 모델과 실물의 기하학적 차이와 프로젝터 광학적 특성의 무시는 이러한 문제를 더 악화시킨다. 대부분의 실험에서 TouchDesigner의 경우 Madmapper에 비해 더 안정적인 결과물을 보여주었는데 두 툴 모두 내부 알고리즘을 공개하지 않았기 때문에 원인을 파악할 수는 없었다.
고품질의 매핑 결과물을 위해서 충분한 개수의 대응점을 적절한 분포로 선정하는 것은 어려운 작업이다. 특히, 메쉬가 복잡하여 정점이 많거나 곡선으로 주로 이루어진 오브젝트의 경우, 경험이 부족한 사용자는 3D 대응점 선정에 큰 어려움을 느낄 수 있으며, 대응점 생성에 소요되는 시간이 늘어나게 된다.
공간이 충분히 어둡지 않거나, 프로젝터가 충분히 밝지 않으면 프로젝터가 투사하는 영상의 선명도가 낮아지기 때문에 2D 대응점의 선명도 역시 낮아진다. 따라서 2D 대응점이 적절한 위치에 지정되었는지 확인하기 어려워져 대응점 쌍이 대응시키는 데 걸리는 시간이 증가할 뿐만 아니라 부정확한 위치에 2D 대응점을 이동시킬 수 있게 된다. TouchDesigner의 경우 2D 대응점에 더해 해당 점을 교차점으로 하는 직선을 표시함을 통해 시인성을 높여 이 문제를 보완하고 있으나, Madmapper의 경우 부족함이 있었다.
그 밖에도, 현실 오브젝트의 형태에 굴곡이 적어 뚜렷한 음영이 생기지 않을 때는 생성한 3D 대응점에 대응되는 현실 오브젝트의 정점의 위치가 불분명하므로 2D 대응점을 어디로 이동시켜야 할지 알기 어려울 수 있다.
대응점의 개수와 분포에 따라 결과가 달라지는 점과 대응점 선정의 요령을 맵핑 툴 내에서 도움말로 표시하여 경험이 없는 사용자에게도 대응점 선정의 중요성과 가이드라인을 안내하는 단계가 필요하다. 그 밖에, 3D 모델 메쉬의 기하학적 형태를 분석하고 기존에 선택된 대응점을 고려하여 가장 적절한 대응점을 추천해주는 시스템 개발은 사용자의 편의와 맵핑에 드는 시간의 절감을 기대할 수 있다. 이때, 대응점들이 고른 분포가 되도록 추천해줘야 하며, 사용자가 대응점을 선택 및 위치 지정을 쉽게 할 수 있도록 식별하기 쉬운 대응점을 추천해줘야 한다.
TouchDesigner에서는 추가 보정 단계와 마스킹 단계를 통합한 새로운 컴포넌트의 개발을 통해 각 단계 사이의 간섭과 진행 순서의 제한을 없애, 결과물 확인에 드는 시간과 번거로움을 감소시킬 수 있다. 기존에는 추가 보정의 결과물에 마스킹하는 형식으로 마스킹 단계 완료 후 추가 보정 단계의 수정이 필요할 경우 해당 단계로 돌아가서 수정한 뒤 다시 마스킹 단계로 돌아와 마스킹 역시 수정해야 하지만, 두 단계를 통합한다면 결과물의 확인과 수정이 즉각적으로 이루어질 수 있다.
또한, 기존 툴들은 대응점을 이용한 자동 캘리브레이션 단계와 추가 보정 단계가 분리되어 있는데 이를 일부 통합하여 효율화가 가능하다. 예를 들어, 캘리브레이션 이후 발생하는 대응점의 오차를 최소화하는 추가적인 이미지 워핑 또는 3차원 메쉬 변형을 자동으로 수행하는 것이 가능하다. [22] 이러한 최적화 단계를 캘리브레이션에 포함함으로써 추가 보정에 필요한 수작업을 줄일 수 있을 것이다.
마스크는 효과 영상이 현실 오브젝트의 윤곽을 벗어난 경우에 사용도가 높기 때문에 윤곽을 따르는 형태로 생성하는 경우가 많은데, 베지에 곡선을 수동으로 조작하며 복잡한 형태를 만드는 것은 번거로우며 부정확할 수 있다. 따라서 3D 오브젝트 메쉬 또는 현실 오브젝트의 실루엣을 추출하여 적절한 마스크를 자동으로 생성하고 편집이 가능한 시스템을 개발한다면 마스킹 작업의 정확도와 신속성이 증가할 것이다. 또한, 단순한 펜툴의 형태뿐만 아니라 3차원 기하학적 정보와 텍스처 정보를 활용하여 마스킹 영역을 자동으로 선택하는 사용자 인터페이스를 제공한다면 사용성이 높아지고 마스킹 도구의 다양한 활용이 가능할 것으로 기대된다.
8. 결론
본 연구에서는 수동 3D 프로젝션 맵핑의 전체 과정을 단계별로 정리하고, 각 단계에서 발생할 수 있는 문제점들과 맵핑 소프트웨어의 공통점과 차이점들을 알아보았다. 또한, 각각의 소프트웨어를 사용해 실제로 3D 프로젝션 맵핑을 수행해보는 실험을 해 구체적인 사용성 개선 방법을 제언하였다. 특히 실험에서는 디지털 트윈의 두 가지 생성 방법을 모두 직접 수행하고, 맵핑 소프트웨어만 다를 경우와 대응점의 개수나 위치 등이 다를 경우 간의 비교를 통해 각각의 성능 차이, 맵핑 결과의 품질을 좌우하는 요소들을 도출했다.
본 연구에서 정리한 전체 과정의 흐름은 3D 프로젝션의 입문자, 또는 초심자에게 도움이 될 수 있다. 또한, 실험에서 알아낸 대응점 쌍의 위치의 중요성을 강조함으로써 비숙련자에게는 알기 어려운 카메라 캘리브레이션의 원리와 문제점, 한계 등을 안내하여, 숙련까지 걸리는 시간을 단축시킬 것이다. 문제점과 제언을 통해서는 현재 일반적으로 널리 쓰이는 맵핑 소프트웨어를 더욱 개선시킬 방법을 제시하였다. 사용자와 소프트웨어 개발자 모두에게 참고사항으로 의미가 있을 것으로 기대된다.
단, 본문에서 소개된 두 가지 소프트웨어 이외의 소프트웨어에 대한 내용을 다루지 못한 한계가 있다. 개선된 사용성으로 인한 3D 프로젝션 맵핑의 사용자 확대와 더욱 다양한 3D 프로젝션 맵핑 작품의 제작이라는 선순환에 공헌하기 위해서는 지금까지의 연구를 확장하여, 추가 맵핑 소프트웨어와의 비교와 문제점 분석을 통해 제언을 보충할 필요가 있다. 또한, 본 연구에서는 시각적 결과물을 정성적으로 분석하여 의미 있는 비교 및 결과를 도출하였으나 통제된 실험 환경에서 정밀한 3D 스캐너를 이용한다면 맵핑 결과물의 정량적 성능 분석이 가능할 것이다.