모든 nDisplay 구성은 마스터 컴퓨터가 하나, 추가 컴퓨터는 몇 개든 있을 수 있습니다.
네트워크의 컴퓨터마다 프로젝트를 패키지로 만든 실행 파일 인스턴스를 하나 이상 실행합니다.
각 언리얼 엔진 인스턴스는 화면이나 프로젝터같은 디바이스 둘 이상으로의 렌더링을 처리합니다.
언리얼 엔진 인스턴스가 처리하는 디바이스 각각에 대해, 똑같은 3D 씬에 하나의 시점을 렌더링합니다. 이 시점의 3D 월드 위치가 현실의 화면이나 투영 표면의 물리적 위치에 일치하도록 시점을 구성하면, 보는 사람이 가상 세계에 있는 듯한 느낌을 줄 수 있습니다.
마스터 노드는 Virtual-Reality Peripheral Networks (가상현실 주변장치망, VRPN) 디바이스 연결을 통해 스페이셜 트래커와 컨트롤러의 입력을 받아 그 입력을 연결된 모든 컴퓨터에 리플리케이트하는 것도 담당합니다.
위 이미지는 가능한 nDisplay 네트워크를 보여줍니다. 모든 nDisplay 네트워크처럼, 그 PC 중 하나가 마스터 노드 역할을 합니다. 이 마스터 노드는 VRPN 서버에서 시스템으로 입력을 받으며, 이 서버는 공간 추적 디바이스에서 오는 신호를 다른 컨트롤러 디바이스에 중계합니다. 이 네트워크에는 언리얼 엔진 프로젝트 다른 인스턴스를 실행하는 다른 PC 도 포함되어 있습니다. 이 클러스터 노드 각각은 하나 이상의 디스플레이 프로젝터를 구동합니다.
|
하나의 애플리케이션 인스턴스가 하나의 디스플레이 디바이스로 렌더링합니다. |
|
여러 애플리케이션 인스턴스가 각각 하나의 디스플레이 디바이스로 렌더링합니다. |
|
하나의 애플리케이션 인스턴스가 여러 디스플레이 디바이스로 렌더링합니다. |
nDisplay 컴포넌트
nDisplay 는 일반적인 언리얼 시스템 아키텍처에 여러 컴포넌트를 추가합니다.
언리얼 엔진 내에서 작동하는 플러그인입니다. 클러스터를 이루는 모든 애플리케이션 인스턴스 사이 정보를 통신하고 동기화시켜, 모든 인스턴스가 동시에 같은 프레임을 렌더링하는지, 각 디스플레이 디바이스가 게임 월드의 올바른 프러스텀을 렌더링하는지 등을 확인합니다.
nDisplayLauncher 라는 네트워크 프로비저닝 및 관리 애플리케이션이 있습니다. 네트워크의 한 컴퓨터에서 이 애플리케이션을 실행하면 네트워크의 모든 컴퓨터에서 언리얼 엔진 애플리케이션 패키지를 자동 실행 및 종료할 수 있습니다.
nDisplayListener 라는 별도의 리스너 애플리케이션이 있으며, 각 컴퓨터에서 실행됩니다 이 애플리케이션은 nDisplayLauncher 에서 오는 요청을 기다리다가(리스닝) 로컬 컴퓨터에서 그 요청을 처리합니다.
공유 구성 파일에는 nDisplay 가 올바른 컴퓨터에서 올바른 수의 인스턴스를 실행, 각 게임의 3D 월드를 올바른 시점에서 렌더링하여 모든 디스플레이 화면 또는 프로젝터에 끊어진 부분이 없는 것처럼 보이게 만드는 데 필요한 모든 세팅이 들어있습니다. nDisplay 구성 파일 레퍼런스 문서를 참고하세요.
블루프린트 API
블루프린트 API를 사용하여 게임의 런타임 로직에서 nDisplay 시스템의 동작을 제어 할 수 있습니다.
이 API 에 노출된 함수를 얻으려면:
클러스터 관리, 입력 디바이스 쿼리, nDisplay 렌더링 등과 관련된 대부분의 nDisplay 블루프린트 함수는 블루프린트에 N Display > Get DisplayCluster Module API 노드를 새로 만듭니다.
VRPN 입력 디바이스와 언리얼 엔진 입력 이벤트 사이 바인딩과 반영을 셋업하는 함수의 경우, N Display > Get DisplayClusterInput Module API 노드를 블루프린트에 새로 생성합니다. 디바이스 채널을 UE4 입력에 바인딩 부분을 참고하세요.노드의 Out API 핀을 끌어 놓고, Display Cluster 또는 Display Cluster Input 카테고리 아래를 보면 됩니다.