nDisplay의 프로젝션 정책
에픽게임즈에서는 신기술 개발 전략의 일환으로 기존 툴에 대한 끊임없는 평가를 통해 언리얼 엔진에 기능을 추가할 수 있을지 파악합니다. 이처럼 수많은 연구 끝에 스케일링된 디스플레이와 관련한 목표를 달성하는 데 도움이 되는 다음과 같은 기술들을 구현할 수 있었습니다.
단순
단순 은 일반적인 2D 평면 디스플레이 렌더링에 사용되는 표준 정책을 가리킵니다. 이 정책에는 카메라 프러스텀 빌드에 사용되는 3D 공간의 사각형이 필요합니다. 사각형, 즉 스크린 은 반드시 '컴포넌트(Components)' 패널에서 정의되어야 하며, 그런 다음 뷰포트의 '디테일(Details)' 패널에 있는 단순 프로젝션 정책 섹션에서 참조되어야 합니다.
사용자의 프로젝트에서 '단순' 정책을 사용하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
컴포넌트(Component) 패널에서 컴포넌트 추가(Add Component) 를 선택한 후 nDisplay 화면(nDisplay Screen) 을 선택합니다.
클러스터(Cluster) 패널에서 새 뷰포트 추가(Add New Viewport) 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형(Type) 을 단순(simple) 으로 설정합니다.
화면(Screen) 을 2단계에서 생성했던 화면 컴포넌트로 설정합니다. 이 예시에서는 화면을 nDisplayScreen으로 명명했습니다.
스크린이 뷰포트를 올바르게 렌더링하는지 확인합니다. 뷰포트의 뷰 원점(View Origin) 을 뷰포트의 디테일 패널에서 설정해야 테스트 씬에서 확인할 수 있습니다.
이미지를 클릭하면 확대됩니다.
카메라
일반적인 언리얼 엔진 카메라 또는 nDisplay 시네 카메라로는 뷰를 확보하는 것이 불가능하기 때문에 카메라 정책이 도입되었습니다. 이 정책을 사용하면 모든 언리얼 엔진 4 카메라의 뷰를 nDisplay 뷰포트에 매핑할 수 있습니다.
사용자의 프로젝트에서 '카메라(Camera)' 정책을 사용하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
컴포넌트 패널에서 컴포넌트 추가 를 선택한 후 카메라 컴포넌트로 ICVFX 카메라(ICVFX Camera), 카메라 또는 시네 카메라(Cine Camera) 중 하나를 선택합니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 카메라 로 설정합니다.
카메라 를 2단계에서 생성했던 카메라로 설정합니다. 이 예시에서는 카메라를 ICVFXCamera로 명명했습니다.
nDisplay 렌더러 사용(Use nDisplay Renderer)에 대한 세팅을 선택합니다. 이 세팅은 기본으로 클러스터 렌더링에 대한 nDisplay 렌더 패스를 활성화합니다. 비활성화된 경우 이 특정 카메라에 대해 nDisplay 렌더러를 바이패스하여 네이티브 UE 픽셀을 표시합니다. 디버깅하거나 네이티브 카메라 렌더링과 nDisplay 클러스터 렌더링을 비교하려는 경우 비활성화하세요.
카메라가 뷰포트를 올바르게 렌더링하는지 확인합니다.
수동
아직 nDisplay에서 지원되지 않는 시스템에 대한 일반적인 솔루션으로는 새로운 수동 프로젝션 정책 을 들 수 있습니다. 핵심 개념은 사용자가 특정 뷰포트에 대한 뷰 프러스텀을 명시적 설정한다는 것입니다. 스테레오 렌더링의 경우에는 프러스텀이 두 개 필요합니다. 이 작업은 프로젝션 매트릭스 또는 프러스텀 각도를 통해 수행할 수 있습니다. nDisplay에서의 모노와 스테레오 렌더링 간의 차이점에 대한 자세한 내용은 nDisplay에서의 스테레오스코픽 렌더링을 참고하세요.
사용자의 프로젝트에서 '수동(Manual)' 정책을 사용하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 수동(Manual) 으로 설정합니다.
렌더링(Rendering) 을 모노(Mono), 스테레오(Stereo) 또는 모노&스테레오(Mono&Stereo) 로 설정합니다.
프러스텀(Frustum) 을 매트릭스(Matrix) 또는 각도(Angles) 로 설정합니다.
프러스텀 매트릭스(Frustum Matrix) 의 경우: 회전(Rotation) 과 매트릭스(Matrix) 필드를 설정하고, 모노 대신 스테레오 를 선택한 경우에는 MatrixLeft 와 MatrixRight 를 설정합니다.
프러스텀 각도(Frustum Angles) 의 경우: 회전 과 프러스텀 필드를 설정하고, 모노 대신 스테레오 를 선택한 경우에는 FrustumLeft 와 FrustumRight 를 설정합니다.
뷰포트가 올바르게 렌더링하는지 확인합니다.
메시
이 프로젝션 정책은 워프 렌더링 워크플로를 간소화합니다. 이제 포터블 플로트 맵(PFM) 워크플로 대신 메시를 할당하여 렌더링된 출력을 효과적으로 워프시킬 수 있습니다. nDisplayScreen 을 사용하여 종횡비 및 픽셀 밀도에 상관없이 2D 디스플레이를 생성하거나 StaticMesh 컴포넌트를 사용하여 임의의 형태와 모양을 가진 스크린으로 렌더링될 출력의 형태를 지정할 수도 있습니다. 워프 매핑에는 UV 채널 0이 사용됩니다.
사용자의 프로젝트에서 '메시(Mesh)' 정책을 사용하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
컴포넌트 패널에서 컴포넌트 추가 를 선택한 후 nDisplayScreen 또는 StaticMesh 를 선택합니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 메시 로 설정합니다.
메시 를 2단계에서 생성했던 컴포넌트로 설정합니다. 이 예시에서는 SM_Screen_0으로 명명하여 StaticMesh에 할당했습니다.
뷰포트가 메시에서 올바르게 렌더링되는지 확인합니다. 뷰포트의 뷰 원점(View Origin) 을 뷰포트의 디테일 패널에서 설정해야 테스트 씬에서 확인할 수 있습니다.
이미지를 클릭하면 확대됩니다.
MPCDI
MPCDI 표준 통합은 이 업계 프로토콜에 의존하는 복잡한 프로젝트에 사용됩니다.
멀티 프로젝션 공통 데이터 교환(MPCDI) 표준은 VESA 멀티 프로젝터 자동 캘리브레이션(MPAC) 태스크 그룹에 의해 개발되었습니다. 이 표준은 멀티 디스플레이로 구성된 디바이스와 통신하기 위한 프로젝션 캘리브레이션 시스템의 표준 데이터 포맷입니다.
이 표준은 멀티 프로젝터 시스템이 다양한 디바이스에서 개별 디스플레이의 컴포넌트를 끊김없는 단일 이미지로 결합하는 데 필요한 데이터를 생성할 수 있도록 지원합니다. 시스템에 새로 도입되는 모든 하드웨어는 이 표준을 통해 간편하게 통합할 수 있습니다.
MPCDI는 업계 전반에 걸쳐 다음과 같은 콘텐츠 제작업체 및 공급업체에서 사용되고 있습니다.
Scalable Display Technologies
VIOSO
Dataton Watchout
7thSense Design
nDisplay는 MPCDI 표준 지원 덕분에 복잡한 프로젝터 시스템을 설명하는 데이터를 표준화되고 공식화된 방식으로 읽고 저장할 수 있고, 이로 인해 업계에서 사용되는 다양한 툴과 손쉽게 통신 및 인터페이싱할 수 있습니다. MPDCI는 에디터 프리뷰 및 오버스캔에서 지원됩니다.
MPCDI 프로젝션 정책을 사용하는 방법은 두 가지입니다. 첫 번째는 사용자가 .mpcdi 파일, 버퍼 및 사용할 영역을 지정해야 하는 네이티브 접근법입니다. 두 번째는 사용자가 .mpcdi(기본적으로는 파일 아카이브)에 저장된 파일을 명시적으로 지정하는 것입니다.
.mpcdi 파일 사용
사용자의 프로젝트에서 MPCDI 정책의 네이티브 접근법을 사용하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 MPCDI 로 설정합니다.
MPCDI 유형(MPCDI Type) 을 MPCDI 로 설정합니다.
파일 옆에서 컴퓨터의
.mpcdi
파일을 찾습니다..mpcdi
파일의 버퍼 이름을 Buffer 로 설정합니다..mpcdi
파일의 버퍼에 있는 영역 이름을 Region 으로 설정합니다.
뷰포트가 올바르게 렌더링하는지 확인합니다.
명시적 지정
사용자의 프로젝트에서 MPCDI 정책의 사용 방식을 명시적으로 지정하려면 다음 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 MPCDI 로 설정합니다.
MPCDI 유형 을 명시적 PFM(Explicit PFM) 으로 설정합니다.
파일 옆에서 컴퓨터에서 워프 지오메트리를 나타내는
.pfm
파일을 찾습니다.알파 마스크(Alpha Mask) 옆에서 컴퓨터에서 알파 마스크를 나타내는
.png
파일을 찾습니다.알파 감마(Alpha Gamma) 필드를 연결된 알파 마스크의 감마 값으로 설정합니다. 감마가 없는 알파 마스크는 선형과 동일한 1.0 값을 사용하면 됩니다.
베타 마스크(Beta Mask) 옆에서 컴퓨터에서 베타 마스크를 나타내는
.png
파일을 찾습니다.스케일(Scale) 필드를
.pfm
파일에서 사용된 지오메트리 스케일로 설정합니다.언리얼 축 사용(Use Unreal Axis) 을 활성화하면 언리얼 축을 사용할 수 있습니다.
뷰포트가 올바르게 렌더링하는지 확인합니다.
EasyBlend(스케일 가능 디스플레이)
EasyBlend 캘리브레이션 데이터의 통합은 워프, 블렌드 및 키스톤 기능을 지원하는 Scalable SDK 를 통해 이루어집니다. Scalable SDK는 멀티 프로젝터를 사용하여 곡면 또는 돔 모양 표면 등 평면이 아닌 복잡한 디스플레이 표면에 표시해야 하는 요구 사항을 충족합니다.
Scalable Display Technologies 는 복잡한 프로젝션 시스템용 소프트웨어 및 SDK에 주력하는 기업입니다. 이 SDK는 워핑 및 블렌딩을 통해 단일 이미지를 대형 디스플레이에 표시하는 솔루션을 제공할 수 있도록 설계되었습니다. Scalable Display Technologies는 이미 대형 이미지의 워핑 및 블렌딩을 처리하는 EasyBlend 솔루션을 갖추고 있기 때문에 에픽게임즈에서는 이를 언리얼 엔진과 통합하기로 결정했습니다.
언리얼 엔진 nDisplay는 모든 지원 모드, MPCDI를 갖춘 네이티브 워프 및 블렌드, 커스텀 구현을 위해 업계 표준 미들웨어인 Scalable SDK 및 EasyBlend의 통합을 기반으로 워프 및 블렌드를 지원합니다.
또한 복잡한 프로젝션 시스템 구성에서 끊김없는 경험을 제공하기 위해 EasyBlend 통합을 구현했습니다. 서드 파티 툴 또는 소프트웨어를 사용한 캘리브레이션을 완료한 후 nDisplay 구성 파일에서 파라미터를 몇 개만 지정하면 됩니다.
사용자의 프로젝트에서 'EasyBlend' 정책을 사용하려면 다음 단계를 따르세요.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 EasyBlend 로 설정합니다.
파일 옆에서 컴퓨터의
.pol
파일을 찾습니다.원점(Origin) 과 스케일 필드를 설정합니다.
뷰포트 렌더링이 제공된 EasyBlend 캘리브레이션 파일에 따라 적절하게 디포메이션되는지 검증합니다. 렌더 결과가 벤더의 레퍼런스 이미지와 일치해야 합니다.
VIOSO
VIOSO 캘리브레이션 데이터의 네이티브 SDK 통합은 복잡한 표면의 프로젝터 워핑 및 소프트 에지 블렌딩을 위해 사용할 수 있습니다.
사용자의 프로젝트에서 'VIOSO' 정책을 사용하려면 VIOSO의 툴과 소프트웨어를 사용하여 캘리브레이션을 완료한 후 아래 단계를 따릅니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 VIOSO 로 설정합니다.
파일 옆에서 컴퓨터의
.vwf
파일을 찾습니다.원점 과 매트릭스 필드를 설정합니다.
뷰포트 렌더링이 제공된 VIOSO 캘리브레이션 파일에 따라 제대로 디포메이션되었는지 검증합니다. 렌더 결과가 벤더의 레퍼런스 이미지와 일치해야 합니다.
DomeProjection
DomeProjection 캘리브레이션 데이터의 네이티브 SDK 통합은 거대한 돔 표면의 프로젝트 워핑 및 소프트 에지 블렌딩에서 사용할 수 있습니다. 사용자의 프로젝트에서 사용하려면 DomeProjection의 툴과 소프트웨어를 사용하여 캘리브레이션을 완료한 후 nDisplay 구성 파일에서 파라미터를 몇 개만 지정하면 됩니다.
nDisplay 3D 환경설정 에디터에서 nDisplay 환경설정 에셋을 엽니다.
클러스터 패널에서 새 뷰포트 추가 를 선택합니다.
환경설정(Configuration) > 프로젝션 정책(Projection Policy) 의 새 뷰포트 추가 창에서 다음 필드를 수정합니다.
유형 을 DomeProjection 으로 설정합니다.
파일 옆의 버튼을 클릭하여 컴퓨터에서 DomeProjection 소프트웨어에서 익스포트된
.xml
파일을 찾습니다.원점 과 채널(Channel) 필드를 설정합니다.
뷰포트 렌더링이 제공된 DomeProjection 캘리브레이션 파일에 따라 제대로 디포메이션되었는지 검증합니다. 렌더 결과가 벤더의 레퍼런스 이미지와 일치해야 합니다.