이 튜토리얼에서는 SMPTE 2110을 사용하여 nDisplay ICVFX 카메라의 내부 프러스텀 분할 환경설정을 구성하는 방법을 안내합니다.
SMPTE 2110이 지원되면서 이제 전체 nDisplay 렌더 노드가 내부 프러스텀만 전담하도록 할 수 있습니다. 언리얼 엔진에서는 여러 GPS뿐만 아니라 여러 노드에서 더 많은 하드웨어 리소스로 내부 프러스텀을 렌더링(멀티 프로세스 디플로이와 유사)하여 가능한 최고 퀄리티의 프러스텀을 생성할 수 있는 기능을 제공합니다. 신형 카메라의 해상도가 높아지고 용량이 커지면서 시스템은 최신 프로덕션의 요구에 따라 확장할 수 있습니다.
ICVFX 촬영을 위해 여러 노드를 사용하여 내부 프러스텀 분할을 구성한 경우입니다.
환경설정
nDisplay 및 SMPTE 2110을 사용한 내부 프러스텀 분할의 샘플 환경설정 다이어그램입니다.
-
nDisplay 환경설정을 생성합니다.
-
구성의 디플로이를 반영하는 노드 레이아웃을 추가합니다.
-
노드 1과 2는 각각 벽과 천장을 렌더링합니다.
-
노드 3과 4는 각각 내부 프러스텀 타일 (0,0) 및 (0,1)을 렌더링하고, 둘 다 헤드리스 렌더링(Headless Rendering) 세팅이 활성화되어 있습니다(해당 환경설정에서 설정). 즉, 이러한 노드는 외부 뷰포트를 렌더링하지 않습니다.
-
-
ICVFX 카메라 컴포넌트를 추가합니다.
-
ICVFX 카메라 컴포넌트를 선택하고 디테일(Details) 패널로 이동합니다.
-
미디어(Media) 을 활성화하고 내부 프러스텀 타입(Inner Frustum Type) 을 타일링(Tiled) 으로 설정합니다.
-
타일링 분할 레이아웃(Tiled Split Layout) 값을 사용하여 가로(x) 및 세로(y) 방향의 타일 수를 설정합니다.
- 이 예시에서 렌더링할 총 타일 수는 2개입니다. 즉 수평으로 2개, 수직으로 1개입니다.
-
-
타일 오버스캔(Tile Overscan) 세팅에서 오버스캔을 사용하여 타일 블렌딩을 개선하려면 다음 프로퍼티를 설정합니다.
-
에지에 대해 오버스캔 안 함(No Overscan for Edges) 을 활성화합니다.
-
오버스캔 값(Overscan Value) 을 5% 이상으로 설정합니다.
-
-
(선택 사항입니다. 아래의 타일 환경설정 마법사 섹션을 참조하세요.) 미디어 출력 그룹(Media Output Groups) 에서 내부 프러스텀 타일을 렌더링할 각 노드 세트의 그룹을 생성합니다. 이 예제에서 첫 번째 타일(0,0)은 Node_3에서 렌더링되고 두 번째 타일은 Node_4(1,0)에서 렌더링됩니다.
-
NVIDIA Rivermax 출력(NVIDIA Rivermax Output) 을 미디어 출력(Media Output)으로 선택합니다. 즉, 지정된 파라미터로 SMPTE 2110 스트림을 구성할 수 있습니다.
대부분의 프로퍼티는 디폴트로 초기화됩니다.
-
해상도(Resolution) 는 타일 레이아웃에 따라 자동으로 설정되므로 특정 값을 설정할 필요가 없습니다.
-
네트워크에 대해 올바른 인터페이스 주소(Interface Address) 및 스트림 주소(Stream Address) 를 설정합니다.
-
프레임 레이트(Frame Rate) 는 렌더링 레이트보다 높게 설정해야 합니다. 대역폭이 허용한다면 2배 이상으로 설정해야 합니다.
-
GPU Direct를 사용하려는 경우 언리얼 엔진에서는 프레임 잠금 모드(Frame Locking Mode) 가 예약 시 차단(Block on Reservation) 으로 설정되어 있고 정렬 모드(Alignment Mode) 가 프레임 생성(Frame Creation) 으로 설정되어 있을 때 이 기능이 지원되므로, 해당 값을 그에 맞게 설정하세요.
-
캡처 동기화(Capture Synchronization) 는 없음(None) 으로 설정된 상태로 둡니다.
-
-
미디어 입력 그룹(Media Input Groups) 에서 내부 프러스텀 타일을 수신할 노드를 지정합니다.
-
내부 프러스텀 타일을 수신할 각 외부 뷰포트 그룹에 대한 미디어 입력 그룹(Media Input Group) 을 생성합니다.
- 이 예제에는 2개의 타일이 있으며 두 타일 모두 Node_1(벽) 및 Node_2(천장)에서 보여야 합니다.
-
미디어 출력 그룹(Media Output Groups) 에서 렌더링되도록 환경설정된 숫자와 일치하도록 타일 수를 추가합니다. 각 인덱스는 위 노드에 전달할 내부 프러스텀 타일입니다.
-
각 타일에 대해 관련 타일 좌표를 지정하고, NVIDIA Rivermax 소스(NVIDIA Rivermax Source) 를 추가하고 미디어 출력 그룹의 스트림 세팅을 일치시킵니다.
일부 디플로이에서는 다른 인터페이스 주소(Interface Address) 를 지정하거나 와일드카드를 제거해야 할 수도 있습니다. 프레임 레이트가 입력 및 출력 간에 일치하도록 합니다.
-
PCI-e 루트 컴플렉스가 동일한 경우 입력에서 GPUDirect가 지원됩니다.
-
미디어 타일 환경설정 마법사
미디어 타일 환경설정(Media Tiles Configuration) 마법사를 통해 자동화된 워크플로를 사용하여 타일을 환경설정할 수 있습니다. 마법사의 목적은 타일 환경설정 프로세스를 최대한 간소화하는 것입니다.
위의 환경설정 워크플로에서 6~8단계는 여전히 유효하며 수동 분할 환경설정에 사용할 수 있습니다.
미디어 타일 환경설정 마법사의 핵심 기능은 다음과 같습니다.
-
타일 레이아웃에 따라 입력 그룹과 출력 그룹을 자동으로 생성합니다.
-
디폴트 세팅으로 사전 정의된 미디어 파라미터를 자동으로 환경설정합니다.
-
사전 정의된 미디어는 NVIDIA Rivermax와 공유 메모리 미디어(Shared Memory Media)뿐입니다.
-
디폴트 파라미터는 사전 정의되어 있으며 즉시 사용할 수 있습니다.
-
환경설정 마법사를 시작하려면 타일 환경설정(Configure Tiles) 을 클릭합니다.
타일 환경설정 버튼을 누르면 타일 환경설정 마법사가 시작됩니다.
타일 레이아웃 환경설정부터 환경설정 프로세스가 시작됩니다.
미디어 타일 환경설정 마법사입니다.
-
구성에 필요한 분할 레이아웃을 나타내는 타일을 선택하고 다음(Next) 을 클릭합니다. 아래 예시의 경우 내부 프러스텀을 가로 두 개의 타일로 분할하므로 2x1 레이아웃을 선택했습니다.
-
미디어 소스(Media Source) 및 미디어 출력(Media Output) 타입을 지정합니다. 아래 예시에서는 둘 다 NVIDIA Rivermax를 사용합니다.
-
타일을 생성하고 전송할 노드와 타일을 소모하고 수신할 노드를 지정합니다.
이는 예비 입력 및 출력 환경설정 단계입니다. 다음 단계는 더 유연합니다.
-
타일 매핑은 이전 단계에서 제공된 데이터에 따라 사전 환경설정됩니다. 필요한 경우, 수동으로 타일을 렌더링할 노드에 매핑할 수 있습니다.
아래 예시에는 두 개의 타일이 있습니다. 왼쪽 타일은 Node_3 에, 오른쪽 타일은 Node_4 에 매핑되어 있습니다. 이와 같은 간단한 예시의 경우 이 방식으로도 충분하지만, 더 복잡한 구성의 경우 원하는 타일을 클릭하고 수동으로 렌더링할 다른 노드를 선택할 수 있습니다.
-
완료(Finish) 를 클릭하여 환경설정 프로세스를 완료합니다.
환경설정 마법사가 완료되면 모든 타일링 미디어 세팅으로 카메라 세팅이 업데이트됩니다.
기본적으로 NVIDIA Rivermax 및 공유 메모리 미디어는 자동으로 환경설정됩니다. 필요하면 세팅을 수동으로 수정할 수 있지만, 대부분의 경우 디폴트 세팅으로 충분합니다.
미디어 입력 및 출력을 디폴트로 리셋(Reset Media Input and Output to Default) 버튼을 클릭하면 기존 미디어 입력 및 출력 세팅을 사전 환경설정된 디폴트 세팅으로 리셋합니다. 이 버튼을 사용하여 잘못된 수동 변경사항을 원래의 디폴트 세팅으로 되돌릴 수 있습니다.
멀티 프로세스 내부 프러스텀 분할
2개 이상의 여러 GPU가 있는 렌더 노드를 디플로이하는 경우 공유 메모리/멀티 프로세스 디플로이를 SMPTE 2110 및 내부 프러스텀 분할과 결합하도록 선택할 수 있습니다. 즉, 디플로이에 필요한 총 렌더 노드 수는 줄이면서 각 뷰포트 및 내부 프러스텀 타일에 더 많은 리소스를 할당할 수 있습니다.
다음 예제에서는 이전 예제와 동일한 구성이 4개 대신 3개의 호스트로 배치되며, 외부 뷰포트는 더 이상 동일한 프로세스/GPU를 공유하지 않습니다.
-
각 뷰포트는 동일한 호스트의 자체 노드/GPU에서 렌더링되고, 환경설정은 공유 메모리와 SMPTE 2110 미디어를 둘 다 사용합니다.
-
각 내부 프러스텀 타일은 동일한 호스트의 자체 노드/ GPU에서 렌더링되고, 환경설정은 SMPTE 미디어만 공유합니다.
nDisplay 및 SMPTE 2110을 사용한 멀티 프로세스 내부 프러스텀 분할의 호스트 및 노드입니다.
nDisplay 및 SMPTE 2110을 사용한 멀티 프로세스 내부 프러스텀 분할의 샘플 환경설정 다이어그램입니다.