nDisplay 개요

nDisplay 렌더링 네트워크의 여러 컴퓨터가 함께 작동하는 방법을 설명합니다.

Windows
MacOS
Linux

모든 nDisplay 구성은 마스터 컴퓨터가 하나, 추가 컴퓨터는 몇 개든 있을 수 있습니다.

  • 네트워크의 컴퓨터마다 프로젝트를 패키지로 만든 실행 파일 인스턴스를 하나 이상 실행합니다.

  • 각 언리얼 엔진 인스턴스는 화면이나 프로젝터같은 디바이스 둘 이상으로의 렌더링을 처리합니다.

  • 언리얼 엔진 인스턴스가 처리하는 디바이스 각각에 대해, 똑같은 3D 씬에 하나의 시점을 렌더링합니다. 이 시점의 3D 월드 위치가 현실의 화면이나 투영 표면의 물리적 위치에 일치하도록 시점을 구성하면, 보는 사람이 가상 세계에 있는 듯한 느낌을 줄 수 있습니다.

  • 마스터 노드는 Virtual-Reality Peripheral Networks (가상현실 주변장치망, VRPN) 디바이스 연결을 통해 스페이셜 트래커와 컨트롤러의 입력을 받아 그 입력을 연결된 모든 컴퓨터에 리플리케이트하는 것도 담당합니다.

nDisplay network overview

위 이미지는 가능한 nDisplay 네트워크를 보여줍니다. 모든 nDisplay 네트워크처럼, 그 PC 중 하나가 마스터 노드 역할을 합니다. 이 마스터 노드는 VRPN 서버에서 시스템으로 입력을 받으며, 이 서버는 공간 추적 디바이스에서 오는 신호를 다른 컨트롤러 디바이스에 중계합니다. 이 네트워크에는 언리얼 엔진 프로젝트 다른 인스턴스를 실행하는 다른 PC 도 포함되어 있습니다. 이 클러스터 노드 각각은 하나 이상의 디스플레이 프로젝터를 구동합니다.

하나의 애플리케이션 인스턴스가 하나의 디스플레이 디바이스로 렌더링합니다.
nDisplay 호스트를 셋업하는 가장 간단한 방법입니다. 필요한 각 프로젝터 또는 디스플레이 디바이스에 대해 하나의 컴퓨터를 셋업하여 해당 디바이스에 대한 렌더링을 처리합니다. 해당 컴퓨터에서 언리얼 엔진의 인스턴스를 하나 실행합니다. 일반적으로 이 시나리오에서는 3D 공간의 단일 직사각형을 단일 뷰포트로 렌더링하도록 해당 애플리케이션 인스턴스를 셋업합니다.

여러 애플리케이션 인스턴스가 각각 하나의 디스플레이 디바이스로 렌더링합니다.
그래픽 카드가 여러 개 설치되어 다중 디스플레이 디바이스 구동을 처리할 수 있는 컴퓨터가 네트워크에 있는 경우, 그 컴퓨터에서 언리얼 엔진 인스턴스를 다수 실행할 수 있습니다. 언리얼 엔진 각 인스턴스가 3D 공간의 다른 사각형을 렌더링하고, 각각을 다른 그래픽 카드로 보내도록 지시할 수 있습니다.
이 방법은 프로젝트의 CPU 및 메모리 요구 사항이 가벼워서 동일한 컴퓨터에 여러 인스턴스를 실행할 수 있는 경우 좋습니다.

하나의 애플리케이션 인스턴스가 여러 디스플레이 디바이스로 렌더링합니다.
이 옵션을 사용하면, 컴퓨터에 실행되는 언리얼 엔진 애플리케이션 인스턴스는 하나지만, 씬의 3D 공간 별도의 사각형 다수를 커다란 창 안의 여러 영역에 렌더링할 수 있습니다. 그런 다음 NVIDIA Mosaic 또는 NVIDIA Surround 와 같은 기술로 하나의 커다란 창을 분할한 뒤, 다양한 디스플레이 디바이스에 별도의 영역 각각을 렌더링합니다.
이 시나리오에서 nDisplay 를 Mosaic 또는 Surround 와 같이 사용하면 여러 모니터가 같은 평면 위에 놓여있지 않아도 물리적 배치가 정확한 뷰포트를 렌더링할 수 있습니다. 그러나 언리얼 엔진 동일 인스턴스가 모든 뷰포트를 렌더링하고 있으므로, 한 컴퓨터에 여러 그래픽 카드가 설치되어 있어도 혜택을 볼 수 없습니다.

nDisplay 컴포넌트

nDisplay 는 일반적인 언리얼 시스템 아키텍처에 여러 컴포넌트를 추가합니다.

  • 언리얼 엔진 내에서 작동하는 플러그인입니다. 클러스터를 이루는 모든 애플리케이션 인스턴스 사이 정보를 통신하고 동기화시켜, 모든 인스턴스가 동시에 같은 프레임을 렌더링하는지, 각 디스플레이 디바이스가 게임 월드의 올바른 프러스텀을 렌더링하는지 등을 확인합니다.

  • nDisplayLauncher 라는 네트워크 프로비저닝 및 관리 애플리케이션이 있습니다. 네트워크의 한 컴퓨터에서 이 애플리케이션을 실행하면 네트워크의 모든 컴퓨터에서 언리얼 엔진 애플리케이션 패키지를 자동 실행 및 종료할 수 있습니다.

  • nDisplayListener 라는 별도의 리스너 애플리케이션이 있으며, 각 컴퓨터에서 실행됩니다 이 애플리케이션은 nDisplayLauncher 에서 오는 요청을 기다리다가(리스닝) 로컬 컴퓨터에서 그 요청을 처리합니다.

  • 공유 구성 파일에는 nDisplay 가 올바른 컴퓨터에서 올바른 수의 인스턴스를 실행, 각 게임의 3D 월드를 올바른 시점에서 렌더링하여 모든 디스플레이 화면 또는 프로젝터에 끊어진 부분이 없는 것처럼 보이게 만드는 데 필요한 모든 세팅이 들어있습니다. nDisplay 구성 파일 레퍼런스 문서를 참고하세요.

블루프린트 API

블루프린트 API를 사용하여 게임의 런타임 로직에서 nDisplay 시스템의 동작을 제어 할 수 있습니다.

이 API 에 노출된 함수를 얻으려면:

  1. 클러스터 관리, 입력 디바이스 쿼리, nDisplay 렌더링 등과 관련된 대부분의 nDisplay 블루프린트 함수는 블루프린트에 N Display > Get DisplayCluster Module API 노드를 새로 만듭니다.
    VRPN 입력 디바이스와 언리얼 엔진 입력 이벤트 사이 바인딩과 반영을 셋업하는 함수의 경우, N Display > Get DisplayClusterInput Module API 노드를 블루프린트에 새로 생성합니다. 디바이스 채널을 UE4 입력에 바인딩 부분을 참고하세요.

  2. 노드의 Out API 핀을 끌어 놓고, Display Cluster 또는 Display Cluster Input 카테고리 아래를 보면 됩니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼