언리얼 엔진 4.27부터 .cfg 및 .ndisplay 환경설정 파일을 모두 프로젝트의 콘텐츠 브라우저 에 임포트할 수 있으며, 이는 새 .uasset 포맷으로 변환됩니다.
.ndisplay 환경설정 파일을 익스포트하고 사용하여 클러스터를 실행할 수 있습니다. .ndisplay 파일에는 nDisplay 환경설정 에셋 에서만 환경설정될 수 있는 트래킹 및 기타 기능이 없습니다.
nDisplay 클러스터 환경설정에는 nDisplay 3D 환경설정 에디터를 사용할 것을 권장합니다.
nDisplay 시스템의 대부분은 하나의 환경설정 파일에 정의합니다. 이 파일에는 네트워크를 이루는 컴퓨터, 각 컴퓨터에서 언리얼 엔진이 렌더링할 창과 뷰포트의 특징, 각 뷰포트가 렌더링할 가상 월드 부분, 받으려는 입력 디바이스 타입 등이 포함됩니다.
이 문서에서는 nDisplay 환경설정 파일에 있는 모든 세팅에 대해 설명합니다.
nDisplay 환경설정 파일을 이해하고 직접 만들어보기 가장 좋은 방법은 nDisplay 플러그인에 제공된 예시 환경설정으로 시작하는 것입니다. nDisplay 템플릿에서 프로젝트를 만든 경우 Content/ExampleConfigs 폴더에서 찾을 수 있습니다. 아니라면 언리얼 엔진 설치 폴더 아래 Templates/TP_nDisplayBP/Content/ExampleConfigs 에서 찾을 수 있습니다.
nDisplay 환경설정 파일의 구조는 시각화 렌더링에 사용되는 여러 컴포넌트 타입에 직접 묶여 있습니다.
-
환경설정하는 각기 다른 컴포넌트 타입마다 파일에 고유의 줄이 있으며, 할당하는 문자열 ID로 식별합니다. 한 환경설정 섹션이 다른 섹션을 레퍼런스해야 할 때 이 문자열 ID 를 사용합니다.
-
이 파일에 환경설정하는 컴포넌트 다수에는 가상 3D 공간의 위치가 (종종 회전도) 정의되어 있습니다. 각 오브젝트의 위치와 회전은 그 오브젝트의 부모 에 상대적입니다. 기본적으로 모든 오브젝트의 부모는 VR 공간 원점으로, VR 공간의 시작으로 간주되는 3D 월드 공간 내 임의의 포인트입니다. 3D 공간에 하나 이상의 컴포넌트에 대한 부모 역할을 할 수 있는 scene_nodes라는 특정 이름의 트랜스폼을 환경설정할 수 있습니다. 이렇게 하면 화면, 카메라 및 기타 컴포넌트의 공간 레이아웃을 간소화하는 데 도움이 됩니다. scene_nodes를 사용하여 가상 공간의 동일 포인트에서 한꺼번에 시작되는 3D 트랜스폼 계층구조를 빌드하려면, 아래 환경설정 파일 씬 계층구조 예시 섹션을 참고하세요.
-
가상 3D 공간이나 현실 물리적 공간을 측정하는 모든 파라미터 단위 기댓값은 별도로 지정하지 않은 경우 미터 또는 도입니다. 여기에는 화면, 씬 노드, 카메라 등이 포함됩니다.
-
화면 공간을 측정하는 모든 파라미터 기댓값은 픽셀 단위입니다. 여기에는 창과 뷰포트가 포함됩니다.
클러스터 노드 환경설정
nDisplay 네트워크에서 사용할 언리얼 엔진 애플리케이션의 각 인스턴스에 대해 cluster_node 환경설정을 정의해야 합니다. 각 cluster_node 환경설정에는 메인 애플리케이션 창의 프로퍼티를 정의하는 창 환경설정 섹션에 대한 레퍼런스가 있어야 합니다.
cluster_node 환경설정은 애플리케이션 인스턴스를 실행하는 컴퓨터의 호스트 이름 또는 IP 주소를 정의하기도 합니다. 각 cluster_node 환경설정에 대해 각기 다른 물리적 컴퓨터를 구성해도 되고, 같은 호스트에 실행되는 cluster_node 환경설정이 여러 개여도 됩니다.
환경설정 예시:
이 예시는(네트워크당 하나의) 프라이머리 노드를 환경설정합니다.
[cluster_node] id=node_front addr=192.168.0.1 window=wnd_LT sound=true port_cs=41001 port_ss=41002 master=true
이 예시는 프라이머리가 아닌 클러스터 노드를 보여줍니다.
[cluster_node] id=node_left addr=192.168.0.2 window=wnd_large sound=false
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 클러스터 노드 환경설정의 고유한 이름입니다. | |
| addr | 필수 | 이 언리얼 엔진 인스턴스를 실행할 컴퓨터의 IP 주소입니다. IPv4 주소여야 합니다. IPv6는 지원하지 않습니다. | |
| window | 필수 | 언리얼 엔진 애플리케이션이 인스턴스에 대한 메인 창의 크기와 위치를 정의하는 창 환경설정 이름입니다. | |
| sound | 선택 사항 | false |
이 언리얼 엔진 인스턴스의 사운드 재생 여부입니다. 선택 사항이며 디폴트 값은 false 입니다. |
| port_cs | 선택 사항 | 14001 |
프라이머리 노드가 클러스터 동기화를 위해 클러스터 내 다른 노드와 교신할 때 사용하는 포트입니다. port_ss 는 스왑 동기화용, port_ce 는 클러스터 이벤트용입니다. 선택 사항이며 디폴트 값은 14001, 14002, 14003 입니다. |
| port_ss | 선택 사항 | 14002 |
프라이머리 노드가 스왑 동기화를 위해 클러스터 내 다른 노드와 교신할 때 사용하는 포트입니다. |
| port_ce | 선택 사항 | 14003 |
프라이머리 노드가 클러스터 이벤트용으로 클러스터 내 다른 노드와 교신할 때 사용하는 포트입니다. |
| master | 선택 사항 | false |
이 언리얼 엔진 인스턴스가 클러스터의 프라이머리 노드인지 여부입니다. 하나의 cluster_node 섹션만 이 파라미터를 true 로 설정할 수 있습니다. |
| gpu | 선택 사항 | 이 언리얼 인스턴스가 렌더링에 사용해야 하는 GPU의 인덱스입니다. 이런 방식으로 GPU 인스턴스를 설정하는 것은 |
창 환경설정
각 창 환경설정은 언리얼 엔진 애플리케이션 인스턴스의 메인 창에 대한 프로퍼티 세트를 정의합니다. nDisplay가 애플리케이션을 실행할 때 창의 시작 크기와 배치, 그리고 창이 전체 화면을 차지할지 여부와 같은 것을 환경설정하는 데 사용합니다.
또한 nDisplay가 씬의 렌더링으로 채울 메인 프로그램 창의 특정 영역을 식별하는 하나 이상의 뷰포트 환경설정을 제공합니다.
환경설정 예시:
이 예시에서는 단일 뷰포트가 포함된 애플리케이션 창을 환경설정합니다.
[window] id=wnd_one fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports=vp_LT
이 예시는 개별 뷰포트가 4개인 애플리케이션 창을 환경설정합니다.
[window] id=wnd_four fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports="vp_LT,vp_RB,vp_LB,vp_RT"
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 뷰포트 환경설정의 고유 이름입니다. | |
| fullscreen | 선택 사항 | false |
이 창을 전체화면 모드로 실행할지 여부를 결정합니다. 이 값을 false 로 설정하면, 아래의 WinX, WinY, ResX, RexY 세팅을 제공해야 합니다. |
| WinX | 선택 사항 | 0 |
데스크톱의 애플리케이션 창 왼쪽 상단 구석 X 위치를 화면 좌측 끝에서부터 스크린 스페이스 픽셀 단위로 지정합니다. |
| WinY | 선택 사항 | 0 |
데스크톱의 애플리케이션 창 왼쪽 상단 구석 Y 위치를 화면 상단 끝에서부터 스크린 스페이스 픽셀 단위로 지정합니다. |
| ResX | 필수 | 0 |
애플리케이션 창의 가로 크기를 스크린 스페이스 픽셀 단위로 지정합니다. 전체화면 이 false 로 설정된 경우, 이 값이 필요합니다. 전체화면 이 true 로 설정된 경우, 이 값은 무시됩니다. |
| ResY | 필수 | 0 |
애플리케이션 창의 세로 크기를 스크린 스페이스 픽셀 단위로 지정합니다. 전체화면 이 false 로 설정된 경우입니다. 전체화면 이 true 로 설정된 경우, 이 값은 무시됩니다. |
| viewports | 필수 | nDisplay가 씬의 렌더링된 뷰를 채우는 메인 애플리케이션 창의 영역을 정의하는 하나 이상의 뷰포트 환경설정 섹션을 참고하세요.
뷰포트를 하나 이상 지정하는 경우, 따옴표로 묶고 쉼표로 구분된 뷰포트 환경설정 섹션 이름 목록을 사용해야 합니다. 위의 환경설정 예시 섹션에서 사용하는 뷰포트 정의가 창의 크기를 초과하지 않는지 확인하세요. |
|
| postprocess | 선택 사항 | nDisplay가 최종 이미지를 창에 렌더링하기 전에 최종 생성 출력 이미지에 적용할 포스트 프로세싱 작업을 정의하는 하나 이상의 포스트 프로세스 환경설정 ID를 지정합니다. 선택 사항입니다. 최종 이미지를 렌더링하기 전에 변환할 필요가 있을 때만 이 파라미터를 사용하세요. 여러 포스트프로세스 환경설정을 제공하는 경우, nDisplay는 순서대로 변환을 적용합니다. |
뷰포트 환경설정
위에서 설명한 각 창 환경설정은 하나 이상의 뷰포트 환경설정을 나타내며, 각 환경설정은 nDisplay가 씬을 렌더링한 뷰로 채울 사각형의 게임 창 영역을 정의합니다.
보통 뷰포트는 애플리케이션 창의 왼쪽 상단에서부터 부모 창을 채우도록 너비와 높이가 설정됩니다. 하지만 부모 애플리케이션 창 안에서 뷰포트를 오프셋해야 하는 경우가 있습니다. 예를 들어 두 개의 프로젝터가 부분적으로 겹치는 경우 또는 하나의 애플리케이션 창의 여러 위치에 별도의 뷰포트를 다수 호스팅해야 하는 경우입니다.
nDisplay는 뷰포트 렌더링에 멀티 GPU(mGPU) 를 지원하므로, GPU 디바이스를 하나 지정하여 특정 뷰포트를 렌더링하고 다른 GPU로 프레임을 복사하여 표시할 수 있습니다. 버추얼 프로덕션과 인카메라 VFX 사용 사례를 예로 들면, 내부 프러스텀을 전적으로 두 번째 GPU에서 렌더링할 수 있으므로 퍼포먼스와 하드웨어 점유율이 향상됩니다. NVLink가 있는 NVIDIA GPU는 CPU를 우회하여 GPU에서 GPU로 직접 메모리를 전송할 수 있습니다. NVLink가 없는 경우 모든 메모리 전송이 피어 투 피어(P2P) 방식으로 진행되지만 PCIe를 통해 CPU를 거쳐야 하므로 속도가 느릴 수 있습니다.
nDisplay 런처 또는 스위치보드로 nDisplay 실행 시 커스텀 커맨드 라인 실행인자에 MaxGPUCount=2를 추가하면 mGPU를 활용할 수 있습니다.
환경설정 예시:
[viewport] id=vp_LT X=0 Y=0 width=300 height=220 projection=proj_simple_LT
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 뷰포트 환경설정의 고유 이름입니다. | |
| X | 선택 사항 | 0 |
뷰포트의 좌상단 구석 좌표입니다. 메인 애플리케이션 창 좌측 끝에서부터 스크린 스페이스 픽셀 단위입니다. 이 값은 화면 자체의 좌상단이 아니라 애플리케이션 창의 좌상단에 상대적인 값입니다. |
| Y | 선택 사항 | 0 |
뷰포트의 좌상단 구석 좌표입니다. 메인 애플리케이션 창 상단 끝에서부터 스크린 스페이스 픽셀 단위입니다. 이 값은 화면 자체의 좌상단이 아니라 애플리케이션 창의 좌상단에 상대적인 값입니다. |
| width | 필수 | 0 |
렌더링된 프레임의 너비로, 픽셀 단위입니다. 이 뷰포트를 사용하여 창 환경설정의 사이즈 파라미터로 설정한 게임 창 크기보다 커서는 안 됩니다. |
| height | 필수 | 0 |
렌더링된 프레임의 높이로, 픽셀 단위입니다. 이 뷰포트를 사용하여 창 환경설정의 사이즈 파라미터로 설정한 게임 창 크기보다 커서는 안 됩니다. |
| projection | 필수 | 이 뷰포트에 그릴 가상 세계의 렌더링 뷰를 정의하는 투영 환경설정의 이름입니다. | |
| camera | 선택 사항 | 이 뷰포트에 강제로 표시하고자 하는 카메라 환경설정 섹션의 ID입니다. 기본적으로 뷰포트는 현재 nDisplay가 사용하는 카메라 섹션의 위치에서 씬을 렌더링합니다. 하지만 이 파라미터를 사용하여 디폴트 nDisplay 카메라를 오버라이드하고, 이 뷰포트가 다른 카메라 섹션에서 환경설정한 시점에서 씬을 렌더링하도록 강제할 수 있습니다. | |
| buffer_ratio | 선택 사항 | 1.0 |
0 과 1 사이의 값으로, nDisplay가 이 뷰포트를 렌더링하는 데 사용하는 렌더링 타깃 텍스처의 치수를 스케일 조절합니다. 이 값을 낮추면 nDisplay가 생성하는 이미지의 해상도를 효과적으로 낮출 수 있습니다. 최종 이미지의 퀄리티가 떨어지지만 렌더링이 빨라집니다. |
| rtt | 선택 사항 | false |
이 뷰포트를 텍스처로 렌더링할지 여부입니다. |
| gpu_node | 선택 사항 | 0 | 뷰포트를 렌더링하고 프레임을 디스플레이 GPU로 복사하기 위해 할당된 GPU 디바이스입니다. 디폴트 GPU는 컴퓨터에 첫 번째로 설치된 GPU입니다. |
| allow_gpu_transfer | 선택 사항 | 1 | 이 옵션을 활성화하면 모든 뷰포트가 모든 GPU로 전달됩니다. 이 옵션을 비활성화하면 다른 GPU로 복사가 이루어지지 않습니다. |
| share | 선택 사항 | 이 옵션을 활성화하면 nDisplay는 뷰포트에 대해 텍스처 공유를 사용하며 다른 애플리케이션과 텍스처를 주고받습니다. 자세한 내용은 텍스처 공유를 참고하세요. |
일반적으로 컴퓨터에 첫 번째로 설치되어 활성화된 GPU가 0 으로 레퍼런스되고, 다른 GPU는 순차적으로 1 , 2 , ... , n 으로 할당됩니다. OS에서 제공되는 GPU 디바이스 번호는 컴퓨터 세팅에서 찾을 수 있습니다. 예를 들어 Windows의 경우 작업 관리자(Task Manager) 에서 GPU 디바이스 번호를 확인할 수 있습니다.
- 작업 관리자 를 엽니다.
- 퍼포먼스(Performance) 탭으로 전환합니다.
-
창 왼쪽을 보면 머신에 설치된 모든 GPU와 디바이스 번호가 표시되어 있습니다.
GPU가 하나인 컴퓨터는 GPU가 작업 관리자에서 GPU 0 으로 표시됩니다.
투영 환경설정
위에서 설명한 각 뷰포트 환경설정은 뷰포트에서 그릴 렌더링된 이미지를 정의하는 투영 환경설정을 나타냅니다.
대부분의 경우 simple 투영 타입을 사용하게 되는데, 이 타입은 이 nDisplay 파일의 다른 화면 환경설정 섹션에서 정의된 프러스텀을 사용하여 현재 카메라의 위치에서 가상 세계를 렌더링합니다.
다른 투영 타입인 mpcdi, easyblend, vioso, domeprojection 은 다른 방법을 사용하여 해당 뷰포트에 대해 렌더링된 콘텐츠를 정의하고, 이미지를 사각형 뷰포트로 렌더링하기 전에 추가적인 수정 작업을 적용하거나 추가적인 렌더링 테크닉을 반영할 수 있습니다. 예를 들어 이미지가 곡면에 표시될 때 더 자연스럽게 보이도록 투영을 찌그러뜨리거나, 스트레치하거나, 왜곡할 수 있습니다.
환경설정 예시:
다음 예시는 가장 단순한 사용 사례입니다. scr_LT라는 이름의 화면 환경설정에서 정의한 프러스텀을 렌더링 이미지의 왜곡이나 수정 없이 직접 뷰포트로 전송합니다.
[projection] id=proj_simple_LT type=simple screen=scr_LT
다음 예시는 Scalable Display 환경설정 파일에 정의된 표면에 렌더링하는 easyblend 투영 타입 사용법입니다.
[projection] id=proj_easyblend_1 type="easyblend" file="D:\eb_data\ScalableData.pol_1" origin=easyblend_origin_1 scale=0.1
다음 예시는 MPCDI 환경설정 파일에 정의된 표면에 렌더링하는 mpcdi 투영 타입 사용법입니다.
[projection] id=proj_mpcdi_LT type="mpcdi" file="D:\rot90_flat.mpcdi" buffer="Mosaic" region="Monitor_R" origin=mpcdi_origin
다음 예시는 지정된 .png 파일에 정의된 알파 블렌딩 맵을 사용하여 지정된 .pfm 지오메트리 파일에 정의된 곡면에 렌더링하는 mpcdi 투영 타입 사용법입니다.
[projection] id=proj_mpcdi_LT type="mpcdi" pfm="D:\geom_displayLeft1.pfm" alpha="D:\Left1blend.png" alpha_gamma=2 origin=mpcdi_origin
다음 예시는 네이티브 VIOSO 파일에 정의된 표면에 렌더링하는 vioso 투영 타입 사용법입니다.
[projection] id=proj_vioso_1 type="vioso" file="D:\left.vwf" origin=vioso_origin base="[1000 0 0 0] [0 1000 0 0] [0 0 1000 0] [0 0 1000 1]"
다음 예시는 .xml 캘리브레이션 파일의 DomeProjection에 정의된 표면에 렌더링하는 domeprojection 투영 타입 사용법입니다.
[projection] id=proj_domeprojection_1 type=domeprojection file="D:\config.xml" origin=domeprojection_origin channel=0
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 투영 환경설정의 고유 이름입니다. | |
| type | 필수 | nDisplay가 뷰포트에 그리는 렌더링 이미지를 생성하는 방식을 정의하는 투영 타입입니다. 다음 값을 수용합니다.
|
type=simple 인 투영은 다음과 같은 추가 파라미터도 수용합니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| screen | 필수 | 언리얼 엔진 애플리케이션이 이 뷰포트에 렌더링하도록 3D 스페이스 프러스텀을 정의하는 화면 환경설정의 이름입니다. |
type=easyblend 인 투영은 다음과 같은 추가 파라미터도 수용합니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| file | 필수 | 이 뷰포트가 투영되는 표면을 정의하는 Scalable Display 캘리브레이션 파일(.ol 또는 .pol 확장자)의 경로 및 파일 이름입니다. | |
| origin | 선택 사항 | 투영의 시작점을 정의하는 scene_node 환경설정 항목의 ID입니다. Scalable Display 캘리브레이션 파일에 정의된 레퍼런스 프레임을 언리얼 엔진 레벨의 버추얼 스페이스로 매핑합니다. | |
| scale | 선택 사항 | 1.0 |
투영에 사용할 스케일링 인수입니다. 이 값은 EasyBlend 보정에 사용한 유닛에 따라 결정됩니다. 미터를 사용한 경우, 이 값을 1.0 으로 하면 됩니다. 데시미터를 사용한 경우, 0.1 을 사용합니다. 센티미터를 사용한 경우, 0.01 을 사용합니다. 인치를 사용한 경우, 0.0254 를 사용합니다. |
type=mpcdi 또는 type=picp_mpcdi 투영 시 다음과 같은 추가 파라미터도 수용합니다.
.pfm 지오메트리 파일)에 정의된 레퍼런스 프레임을 언리얼 엔진 레벨의 버추얼 스페이스로 매핑합니다. |
| 옵션 1: MPCDI 파일 사용 ||||
| file | 필수 | | 이 뷰포트가 투영되는 표면의 지오메트리를 정의하는 ``.mpcdi`파일의 경로 및 파일 이름입니다. |
| buffer | 필수 | 이 뷰포트의 투영 영역을 정의하는 ``.mpcdi`파일 내 버퍼의 ID입니다. | |
| region | 필수 | 렌더링하고자 하는 버퍼 세트 내 영역의 ID입니다. | |
| 옵션 2: 명시적 데이터 사용 | |||
| pfm | 필수 | 투영 지오메트리가 있는 pfm 파일을 지정합니다. |
|
| scale | 선택 사항 | 1.0 |
지오메트리를 사용하기 위한 스케일링 인수를 제공합니다. |
| ue4space | 선택 사항 | false |
.pfm 파일 내 지오메트리가 이미 언리얼 엔진 좌표 시스템에서 표현되었는지 여부를 나타냅니다. |
| alpha | 선택 사항 | 투영의 강도를 정의하는 알파 블렌드 맵으로 사용하기 위한 .png 파일의 경로와 파일 이름입니다. 선택 사항입니다. |
|
| alpha_gamma | 선택 사항 | alpha 세팅을 사용하는 경우, alpha_gamma 세팅으로 알파 감마의 배수를 이용할 수 있습니다. 선택 사항입니다. |
|
| beta | 선택 사항 | alpha 세팅을 사용하는 경우, beta 세팅을 통해 베타 블렌드 맵으로 사용할 .png 파일의 경로와 파일 이름을 이용할 수 있습니다. 이를 통해 블랙 레벨 조정을 정의합니다. 선택 사항입니다. |
현재 nDisplay는 MPCDI 버전 1.0, 2D 및 A3D(또는 Advanced 3D) 프로파일 타입만 지원합니다.
type=vioso 인 투영은 다음과 같은 추가 파라미터도 수용합니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| file | 필수 | 이 뷰포트가 투영되는 표면을 정의하는 VIOSO 캘리브레이션 파일(.vwf 확장자)의 경로 및 파일 이름입니다. |
|
| origin | 선택 사항 | 투영의 시작점을 정의하는 scene_node 환경설정 항목의 ID입니다. VIOSO 캘리브레이션 파일에 정의된 레퍼런스 프레임을 언리얼 엔진 레벨의 버추얼 스페이스로 매핑합니다. | |
| base | 선택 사항 | 캘리브레이션 스페이스를 UE 좌표 시스템으로 변환하기 위한 커스텀 베이스 매트릭스입니다. |
type=domeprojection 인 투영은 다음과 같은 추가 파라미터도 수용합니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| file | 필수 | 이 뷰포트가 투영되는 표면을 정의하는 DomeProjection 캘리브레이션 파일(.xml 확장자)의 경로 및 파일 이름입니다. |
|
| channel | 필수 | 0 | 캘리브레이션 파일에 매핑된 출력입니다. 디스플레이당 하나의 채널입니다. |
| origin | 선택 사항 | 투영의 시작점을 정의하는 scene_node 환경설정 항목의 ID입니다. DomeProjection 캘리브레이션 파일에 정의된 레퍼런스 프레임을 언리얼 엔진 레벨의 버추얼 스페이스로 매핑합니다. |
type=manual 인 투영은 다음과 같은 추가 파라미터도 수용하여 nDisplay가 렌더링해야 하는 뷰 회전 및 프러스텀을 정의합니다. 매트릭스나 각을 사용하여 프러스텀을 환경설정할 수 있습니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| rot | 선택 사항 | 0,0,0 |
뷰 회전입니다. 피치, 요, 롤 값으로 표현됩니다. 예를 들어 rot="P=0,Y=0,R=0" 를 사용할 수 있습니다. |
| 옵션 1: 매트릭스 사용(모노스코픽) | |||
| matrix | 필수 | 모노스코픽 렌더링 사용 시, 이 4x4 매트릭스로 뷰 프러스텀을 정의합니다. | |
| 옵션 2: 매트릭스 사용(스테레오스코픽) | |||
| matrix_left 와 matrix_right | 필수 | 스테레오스코픽 렌더링 사용 시, 이 4x4 매트릭스 쌍을 사용하여 왼쪽 눈과 오른쪽 눈 모두의 뷰 프러스텀을 정의합니다. 예를 들어 matrix_left="[0.5 0 0 0] [0 0.999999 0 0] [1 0 0 1] [0 0 1 0]" matrix_right="[0.500001 0 0 0] [0 1 0 0] [-1 0 0 1] [0 0 1 0]" 입니다. |
|
| 각 사용 | |||
| 옵션 3: 프러스텀 사용(모노스코픽) | |||
| frustum | 필수 | 모노스코픽 렌더링 사용 시, 이 프로퍼티를 이용하여 프러스텀의 왼쪽, 오른쪽, 상단, 하단 각을 정의합니다. 예를 들어 frustum="l=0 r=15 t=10 b=-10" 입니다. 값은 뷰 벡터에 상대적인 각도로 설정합니다. |
|
| 옵션 3: 프러스텀 사용(스테레오스코픽) | |||
| matrix_left 와 matrix_right | 필수 | 스테레오스코픽 렌더링 사용 시, 이러한 프로퍼티를 이용하여 왼쪽 및 오른쪽 눈 모두의 왼쪽, 오른쪽, 상단, 하단 프러스텀 각을 정의합니다. 예를 들어 frustum_left="l=-15 r=0 t=10 b=-10" frustum_right="left=0 right=15 top=10 bottom=-10" 입니다. 값은 뷰 벡터에 상대적인 각도로 설정합니다. |
type=camera 인 투영은 추가 파라미터를 수용하지 않습니다. 블루프린트 또는 C++ API를 사용하여 런타임에서 투영 규칙 카메라를 구성할 수 있습니다.
type=mesh 및 type=picp_mesh 인 투영은 추가 파라미터를 수용하지 않습니다. 블루프린트 또는 C++ API를 사용하여 런타임에서 투영 규칙 스태틱 메시 컴포넌트를 구성할 수 있습니다.
화면 환경설정
simple 투영 타입을 사용하는 개별 출력 디스플레이는 사각형으로 정의된 프러스텀을 사용하여 3D VR 스페이스에서 정의된 크기 및 배치로 현재 카메라 위치에 씬을 렌더링합니다. 이러한 사각형 각각은 화면 환경설정에 의해 정의됩니다. 보통 이러한 각각의 투영 화면은 앞으로 이를 렌더링하는 데 사용할 물리적 화면과 VR 공간 내에서 동일한 치수를 갖습니다.
화면의 피벗 포인트는 항상 정확히 중간 지점에 위치합니다.
환경설정 예시:
부모 바로 앞에 있는 3 미터 x 3 미터 화면에 대한 정의입니다. 화면의 피벗 포인트가 size 파라미터에 정의된 사각형 중앙에 있기 때문에, Z축에 1.5 미터 오프셋을 더해 화면 높이의 절반만큼 위로 올립니다.
[screen] id=screen_front loc="X=1.5.Y=0,Z=1.5" rot="P=0,Y=0,R=0" size="X=3,Y=3" parent=screens
뷰어 왼쪽의 화면을 정의하기 위해, 위치를 왼쪽(Y축 음수 값)으로 이동하고 로컬 Y축(요)으로 회전합니다.
[screen] id=screen_left loc="X=0,y=-1.5,Z=1.5" rot="P=0,Y=-90,R=0" size="X=3,Y=3" parent=screens
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 화면 환경설정의 고유 이름입니다. | |
| loc | 선택 사항 | 0,0,0 |
VR 공간에서 이 화면의 중심 위치로, 그 부모에 상대적입니다. |
| rot | 선택 사항 | 0,0,0 |
화면이 향하는 방향의 각도 단위 피치(P), 요(Y), 롤(R) 값으로, 그 부모에 상대적입니다. |
| size | 필수 | 0,0 |
화면 사각형의 로컬 X 및 Y축 미터 단위 총 크기입니다. |
| parent | 선택 사항 | 이 오브젝트의 부모로 사용하려는 scene_node 환경설정 이름입니다. 이 파라미터는 선택 사항입니다. 부모를 지정하면 loc 및 rot 파라미터에 설정한 값은 그 부모 위치에 상대적으로 됩니다. 부모를 생략하면 loc 및 rot 파라미터에 설정한 값은 VR 루트에 상대적으로 됩니다. | |
| tracker_id | 선택 사항 | 시간이 지남에 따른 화면 위치를 제어하고자 하는 VR 디바이스를 정의하는 입력 환경설정의 이름입니다. 선택 사항입니다. 이 파라미터를 사용하지 않으면 화면 위치가 VR 스페이스에서 스태틱이 됩니다. | |
| tracker_ch | 선택 사항 | tracker_id 를 입력하면 이 파라미터는 nDisplay가 데이터를 읽어 들일 디바이스 채널을 지정합니다. |
포스트 프로세스 환경설정
포스트 프로세스 환경설정은 언리얼 엔진의 인스턴스에서 창에 맞춰 생성한 이미지가 렌더링 전에 포스트 프로세싱되는 방식을 정의합니다. nDisplay는 현재 두 가지 포스트 프로세스 작업 타입을 지원합니다. OutputRemap 과 TextureShare 입니다.
OutputRemap 을 사용하면 애플리케이션 창의 2D 영역으로 nDisplay 매핑을 통한 2D 이미지 생성 방식을 제어할 수 있습니다. 예를 들어 출력 이미지의 일부를 이동, 회전 및 스케일 조절하여 애플리케이션의 다른 영역에 표시할 수 있습니다. 이를 위해서는 평면 지오메트리와 UV 매핑 구성이 있는 파일을 사용해야 합니다. nDisplay는 평면에 설정된 UV 매핑을 사용하여 출력 이미지가 애플리케이션 창의 각 부분에 매핑되는 방식을 정의합니다.
TextureShare 를 통해 뷰포트 텍스처를 다른 애플리케이션과 공유하거나 다른 애플리케이션에서 텍스처를 수신하여 지정된 뷰포트에 표시할 수 있습니다. 그렇게 하려면 포스트 프로세스를 텍스처 공유 항목의 이름 및 텍스처를 표시할 뷰포트의 이름으로 정의해야 합니다.
환경설정 예시:
다음 예시는 OutputRemap 포스트 프로세스 타입을 두 개의 .obj 파일과 함께 사용하는 방법을 보여줍니다.
[window] id=somewindow ... postprocess="pp_1, pp_2"
[postprocess] id=pp_1 type="OutputRemap" file="remap_1.obj"
[postprocess] id=pp_2 type="OutputRemap" file="remap_2.obj"
다음 예시는 텍스처 공유를 사용하여 vp_1 뷰포트의 렌더링된 프레임을 외부 애플리케이션에 공유하고, 서드 파티 소스에서 텍스처를 수신하고, 이를 vp_ext 뷰포트에 표시하는 방법을 보여줍니다.
[window] id=somewindow viewports="vp_1" fullscreen="false" … postprocess="pp_sharenode_ext"
[viewport] id=vp_1 ... projection="proj_screen_1" share=true
[viewport] id=vp_ext ... projection=""
[postprocess] id=pp_sharednode_ext type="TextureShare" destination="vp_ext" source="thirdpartyapp_viewport_rendering"
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 포스트 프로세스 환경설정의 고유 이름입니다. | |
| type | 필수 | 수행할 포스트 프로세싱의 타입입니다. 현재 다음 타입을 지원합니다.
|
|
| OutputRemap 환경설정 | |||
| file | 필수 | 렌더링된 이미지를 애플리케이션 창에 그리기 전에 리매핑하는 데 사용할 UV 매핑이 포함된 .obj 파일의 경로 및 파일 이름입니다. |
|
| 텍스처 공유 환경설정 | |||
| destination | 필수 | source 애플리케이션으로부터 받은 텍스처 공유 항목을 적용할 뷰포트 이름입니다. |
|
| source | 필수 | 텍스처를 nDisplay로 전송하는 애플리케이션의 공유 이름입니다. |
카메라 환경설정
nDisplay 클러스터의 모든 인스턴스는 가상 세계의 동일한 위치에서 씬을 렌더링합니다. 각 잠재적 시점은 카메라 환경설정 줄로 정의됩니다.
런타임에서 그 시점 사이를 전환할 수 있습니다. 각 카메라 시점은 트래킹 디바이스로 제어할 수도 있습니다.
환경설정 예시:
[camera] id=camera_static loc="X=0.Y=0,Z=1.7" tracker_id=VRPNTracking tracker_ch=0
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 카메라 환경설정의 고유 이름입니다. | |
| loc | 선택 사항 | 0,0,0 |
이 카메라의 VR 공간 위치로, 그 부모에 상대적입니다. |
| rot | 선택 사항 | 0,0,0 |
이 카메라의 VR 스페이스 회전으로, 그 부모에 상대적입니다. |
| parent | 선택 사항 | 이 오브젝트의 부모로 사용하려는 scene_node 환경설정 이름입니다. 이 파라미터는 선택 사항입니다. 부모를 지정하면, loc 파라미터에 설정한 값은 그 부모 위치에 상대적입니다. 부모를 생략하면 loc 파라미터에 설정한 값은 VR 루트에 상대적입니다. | |
| eye_swap | 선택 사항 | false |
스테레오스코픽 모드로 렌더링 시, 이 프로퍼티가 왼쪽 눈과 오른쪽 눈에 대해 생성된 이미지를 서로 바꿀지 여부를 결정합니다. |
| eye_dist | 선택 사항 | 0.064 |
스테레오스코픽 모드로 렌더링 시, 이 프로퍼티가 왼쪽 눈과 오른쪽 눈에 대해 생성된 이미지의 오프셋으로 사용할 눈 사이 거리(미터)를 결정합니다. |
| force_offset | 선택 사항 | 0 |
모노스코픽 모드로 렌더링 시, 이 프로퍼티가 왼쪽 눈과 오른쪽 눈 위치로 카메라를 오프셋(위 eye_dist 프로퍼티로 정의)하여 스테레오스코픽 렌더링을 시뮬레이션하도록 해줍니다. -1 을 사용하여 카메라가 왼쪽 눈 위치에서 렌더링하도록 강제하거나, 0 을 사용하여 카메라의 디폴트 위치(효과 없음)에서 렌더링하거나, 1 을 사용하여 카메라가 오른쪽 눈 위치에서 렌더링하도록 강제합니다. |
| tracker_id | 선택 사항 | 시간에 따른 카메라의 위치를 구동하고자 하는 VR 디바이스를 정의하는 입력 환경설정 이름입니다. 선택 사항입니다. 이 파라미터를 생략하면 카메라의 위치가 VR 공간에서 고정됩니다. | |
| tracker_ch | 선택 사항 | -1 |
tracker_id 를 입력하면 이 파라미터는 nDisplay가 데이터를 읽어 들일 디바이스 채널을 지정합니다. |
씬 노드 환경설정
환경설정 파일에서 씬 노드의 계층구조를 정의할 수 있으며, 그 각각은 3D 공간의 트랜스폼을 나타냅니다. 카메라나 투영 화면처럼 환경설정 파일에 구성한 것 중 3D 공간의 위치와 회전이 필요한 것은 무엇이든 이 scene_node 환경설정 중 하나를 부모로 사용할 수 있습니다. 그러면 시각화 시스템의 다른 모든 컴포넌트 사이 전체의 공간적 관계를 정의하는 데 도움이 됩니다.
카메라처럼 씬 노드 역시 VR 트래킹 디바이스로 구동할 수 있습니다.
환경설정 예시:
다음 줄은 두 노드의 계층구조를 정의하며, 자손 노드에 부모 앞 2미터의 오프셋이 있습니다.
[scene_node] id=vr_space_root loc="X=0.Y=0,Z=0" rot="P=0,Y=0,R=0"
[scene_node] id=walls_front_group loc="X=2.Y=0,Z=0" rot="P=0,Y=0,R=0" parent= vr_space_root
다음 줄은 VR 트래킹 디바이스로 구동하도록 환경설정한 씬 노드를 표시합니다.
[scene_node] id=cave_wand loc="X=0, Y=0,Z=1" tracker_id=CaveTracking tracker_ch=1
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 씬 노드 환경설정의 고유 이름입니다. | |
| loc | 선택 사항 | 0,0,0 |
이 씬 노드의 VR 공간 위치로, 그 부모에 상대적입니다. |
| rot | 선택 사항 | 씬 노드가 향하는 방향의 각도 단위 피치(P), 요(Y), 롤(R) 값으로, 그 부모에 상대적입니다. | |
| parent | 선택 사항 | 이 씬 노드의 부모로 사용하려는 scene_node 환경설정 이름입니다. 이 파라미터는 선택 사항입니다. 부모를 지정하면 loc 및 rot 파라미터에 설정한 값은 그 부모 위치에 상대적으로 됩니다. 부모를 생략하면 loc 및 rot 파라미터에 설정한 값은 VR 루트에 상대적으로 됩니다. | |
| tracker_id | 선택 사항 | 시간에 따른 씬 노드의 위치를 구동하고자 하는 VR 디바이스를 정의하는 입력 환경설정 이름입니다. 선택 사항입니다. 이 파라미터를 생략하면, 씬 노드의 위치와 회전은 VR 공간에 고정됩니다. | |
| tracker_ch | 선택 사항 | -1 |
tracker_id 를 입력하면 이 파라미터는 nDisplay가 데이터를 읽어 들일 디바이스 채널을 지정합니다. |
입력 환경설정
nDisplay 시스템에 입력을 제공해야 하는 각 디바이스에 대한 입력(input) 섹션을 정의합니다. 예를 들어 각 카메라 및 각 scene_node 은 입력 섹션에서 구성되고 카메라 또는 scene_node 환경설정을 레퍼런스하는 VR 트래킹 디바이스를 통해 선택적으로 구동할 수 있습니다. 또는 트래커, 컨트롤러, 키보드를 구성하여 일반 입력 이벤트를 언리얼 엔진 입력 시스템에 전송하거나, 이벤트 및 입력 값을 프로젝트의 게임플레이 스크립트에서 응답할 수 있는 일반 nDisplay 블루프린트 노드에 바인딩할 수 있습니다.
input_setup 섹션을 사용하여 이러한 입력 디바이스의 특정 채널, 버튼 또는 키가 언리얼 엔진 내 특정 타입의 입력 이벤트 및 값에 바인딩되는 방식을 제어할 수도 있습니다.
nDisplay 입력으로 가능한 작업에 대해서는 라이브 링크 VRPN 페이지를 참고하세요.
환경설정 예시:
이 환경설정은 nDisplay가 VRPN 위치 트래킹 디바이스에서 입력을 받도록 구성합니다. 통상적으로 이러한 종류의 디바이스는 카메라 또는 시청자의 머리에 장착되거나, 시청자가 들고 있습니다. 카메라 또는 씬 노드의 위치를 트래커에서 자동으로 제어하려면 카메라 또는 scene_node 에서 이 입력 환경설정을 레퍼런스하면 됩니다. 또는 프로젝트의 블루프린트 코드에서 이 트래커 값을 얻을 수도 있습니다.
[input] id=CaveTracking type=tracker [email protected] loc="X=-1.5,Y=0,Z=3.4" rot="P-0,Y=0,R=0" front=X right=Y up=-Z
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 입력 디바이스 환경설정의 고유 이름입니다. | |
| type | 필수 | 이 VRPN 입력 디바이스의 타입은 다음과 같습니다.
|
|
| addr | 필수 | 이 특정 디바이스를 처리하는 VRPN 서버 주소입니다. 값은 다음 형식에 맞아야 합니다.
|
type=tracker 인 디바이스는 다음과 같은 추가 파라미터도 수용합니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| loc rot | 선택 사항 | 0,0,0 0,0,0 |
다른 환경설정 섹션과 비슷하게, loc 및 rot 파라미터는 이 입력 디바이스의 로컬 공간에서 위치와 회전 오프셋을 지정합니다. 하지만 입력 디바이스의 경우, 일반적으로 이러한 오프셋을 사용하여 트래킹하는 디바이스의 VR 공간 루트 위치가 씬 노드 계층구조에서의 예상 위치에 맞도록 조정합니다. |
| front right up | 필수 | 이 파라미터는 언리얼의 트래커 로컬 축(앞, 오른쪽, 위) 각각을 트래커의 좌표계 해당 축에 일치시킵니다. 언리얼은 Z가 위인 오른손잡이 좌표계를 사용합니다. 트래커가 다른 좌표계를 사용하는 경우, 이 파라미터를 사용하여 트래커의 좌표계를 언리얼에 매핑하면 됩니다.
예를 들어 다음 선은 트래커의 Y축을 언리얼의 앞(X) 축에, 트래커의 X축을 언리얼의 오른쪽(Y) 축에, 트래커의 Z축을 언리얼의 위(Z) 축에 매핑합니다.
|
type=analog 와 type=button 이 추가 파라미터를 수용하지 않는 디바이스입니다.
입력 구성 환경설정
각 input_setup 환경설정은 지정된 입력 디바이스에 대한 추가 환경설정 파라미터를 제공하며, 일반적으로 그 디바이스에서 범용 nDisplay 블루프린트 입력 노드로 채널 또는 키를 바인딩합니다.
환경설정 예시:
이 환경설정은 ID 컨트롤러로 입력 디바이스를 구성해서 버튼이 눌리면 채널 0 에 이벤트를 생성하도록, 블루프린트의 Input > N Display Events > nDisplay Button 0 노드에서 이벤트가 생성되도록 합니다.
[input_setup] id=controller ch=0 bind="nDisplay Button 0"
이 환경설정은 위와 비슷하지만, 차이점은 (일반적으로 컨트롤러의 축과 같은) 아날로그 값을 nDisplay 아날로그 값으로 바인딩한다는 점입니다. 블루프린트에서 Input > N Display Events > nDisplay Analog 0 노드를 사용하여 컨트롤러 축 사용 시점을 탐지하거나, Input > N Display Values > nDisplay Analog 0 로 현재 프레임에 대한 값을 얻을 수 있습니다.
[input_setup] id=test_axes ch=0 bind="nDisplay Analog 0"
파라미터:
| 파라미터: | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| id | 필수 | 이 input_setup 섹션에서 환경설정하는 입력 환경설정의 ID를 레퍼런스합니다. nDisplay 환경설정 파일의 대부분의 다른 섹션과 달리 이 id 값은 이를 포함하는 input_setup 섹션에 대한 ID를 제공하지 않습니다. 대신 파일의 다른 곳에서 정의된 input 섹션의 ID를 나타냅니다. |
|
| ch | 필수 | 바인드(bind) 세팅에 설정한 이벤트에 바인딩되는 지정 입력 디바이스의 채널을 결정합니다. | |
| key | 선택 사항 | ch 와 비슷하지만, ``type=keyboard` 인 입력 디바이스에 대해서만 사용됩니다. | |
| bind | 필수 | 언리얼 엔진에서 위에 지정한 채널 또는 키를 바인딩할 이벤트를 결정합니다. 이 값은 입력 카테고리에서 볼 수 있는 F1, nDisplay F1, nDisplay Button 0, Gamepad Left Thumbstick X-Axis, Gamepad Face Button Top 등과 같은 블루프린트 노드 이름이 될 수 있습니다. 이름에 공백이 있으면 큰따옴표로 묶어야 합니다. |
일반 환경설정
일반 환경설정 줄은 nDisplay 클러스터의 전반적인 작동을 제어하는 파라미터를 포함합니다.
환경설정 예시:
[general] swap_sync_policy=1
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| swap_sync_policy | 선택 사항 | 0 |
네트워크를 통한 출력 동기화 방식을 결정합니다.
|
| ue4_input_sync_policy | 선택 사항 | 1 |
UE4로의 네이티브 입력이 nDisplay 네트워크에서 리플리케이트되는 방식을 결정합니다.
|
NVIDIA 환경설정
일반 환경설정 항목에서 swap_sync_policy 값을 2 로 설정하면 NVIDIA 항목에 있는 파라미터를 사용하여 프레임 록과 관련된 특정 하드웨어 세팅을 미세조정할 수 있습니다.
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| sync_group | 선택 사항 | 1 |
프레임록에 사용하는 동기화 그룹입니다. |
| sync_barrier | 선택 사항 | 1 |
프레임록에 사용하는 동기화 배리어입니다. |
네트워크 환경설정
네트워크(network) 환경설정 섹션에서는 nDisplay 클러스터 노드 간의 네트워크 커뮤니케이션 관련 타임아웃 및 기타 세팅을 제어하는 데 사용할 수 있는 세팅을 제공합니다.
nDisplay 환경설정 파일의 네트워크 섹션은 없거나 하나입니다.
환경설정 예시:
[network] cln_conn_tries_amount=10 cln_conn_retry_delay=1000 game_start_timeout=30000 barrier_wait_timeout=5000
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| cln_conn_tries_amount | 선택 사항 | 10 |
프라이머리가 아닌 클러스터 노드가 시작할 때, 노드가 종료되기 전에 프라이머리 PC로 연결을 재시도하는 횟수를 결정합니다. |
| cln_conn_retry_delay | 선택 사항 | 1000 |
프라이머리가 아닌 클러스터 노드가 시작할 때, 노드가 프라이머리 PC로의 연결 재시도 성공 사이 간격을 결정하는 밀리초 단위 시간입니다. |
| game_start_timeout | 선택 사항 | 30000 |
프라이머리 노드에서 언리얼 엔진 애플리케이션이 게임 루프 첫 프레임을 시작하고 메인 창 렌더링을 시작할 때까지 모든 클러스터 노드가 준비되기를 기다리는 간격을 밀리초 단위로 설정합니다. 이를 통해 렌더링 시작 전에 클러스터 노드가 모두 프라이머리 PC에 연결될 수 있습니다. 그동안 메인 창은 검게 표시됩니다. 이 시간 간격이 끝나는 시점에서도 프라이머리 PC에 연결되지 않은 클러스터 노드가 하나라도 있는 경우에는 해당 클러스터의 모든 인스턴스가 종료됩니다. 클러스터 초기화가 비정상적으로 오래 걸리는 경우 이 값을 높여야 할 수도 있습니다. |
| barrier_wait_timeout | 선택 사항 | 5000 |
게임 및 렌더 스레드의 배리어 타임아웃을 밀리초 단위로 설정합니다. 클러스터 노드 사이 게임 및 렌더 스레드 양쪽의 동기화를 위한 배리어 타임아웃입니다. 프레임마다 여러 번 사용됩니다. 즉, 런타임에서 노드에 연결할 수 없는 상황을 탐지하는 데 사용됩니다. 이 경우 클러스터 상태가 유효하지 않다고 판단되며 모든 노드가 자체 종료됩니다. |
cln_conn_tries_amount 와 cln_conn_retry_delay 세팅을 통해 스타트업 시 클러스터 노드가 프라이머리 노드로 연결을 시도하는 최대 시간을 결정합니다. cln_conn_tries_amount 를 10으로 설정하고 cln_conn_retry_delay 를 1000밀리초로 설정했다고 예를 들어봅니다. 이 경우에, 스타트업 시 각 노드가 프라이머리 PC에 연결을 시도합니다. 연결이 실패하면 1000밀리초를 대기한 후에 재시도합니다. 연결이 또 실패하면 1000밀리초를 대기한 후 재시도합니다. 10번의 시도가 실패하면 클러스터 노드는 자동으로 종료됩니다. 클러스터 노드가 프라이머리 PC로 연결되면 그 즉시 카운트가 중지됩니다.
정보 환경설정
정보(info) 환경설정 줄은 이 환경설정 파일에 대한 부가 정보, 특히 이 구성 파일이 호환되는 것으로 알려진 nDisplay 및 언리얼 엔진 최신 버전 정보를 포함합니다.
환경설정 예시:
[info] version=22
파라미터:
| 파라미터 | 필수 여부 | 디폴트 | 설명 |
|---|---|---|---|
| version | 필수 | 이 환경설정 파일과 호환되는 가장 오래된 언리얼 엔진 버전입니다. 이 숫자는 이 값은 직접 설정하지 마세요. nDisplay 런처(nDisplay Launcher) 에서 자동으로 설정합니다. 버전 없이 환경설정 파일을 사용하거나 파일 버전이 현재 사용 중인 언리얼 엔진 버전에서 지원되지 않는 경우 최신 버전으로 작업하기 위해 nDisplay 런처 에서 자동으로 환경설정 파일 업데이트를 시도합니다. 성공하면 업데이트된 환경설정을 새 파일에 저장하고 이 값을 최신 버전으로 업데이트합니다. |
커스텀 환경설정 파라미터
custom 환경설정 섹션을 포함하여 사용자 자신의 커스텀 키/값 쌍을 nDisplay 클러스터 노드에 제공할 수 있습니다. [cluster] 줄에 필요한 수만큼의 파라미터와 값을 포함시킬 수 있습니다. 그런 다음 런타임에서 nDisplay 블루프린트 또는 C++ API에서 이러한 환경설정 값을 얻을 수 있습니다.
환경설정 예시:
[custom] stringParameter=myValue numberParameter=2
환경설정 파일 씬 구조 예시
언리얼 엔진 설치 폴더의 Templates/TP_nDisplayBP/Content/ExampleConfigs 에 있는 wall_flat_3x2.cfg 샘플 파일을 열어서 구체적인 예시를 살펴보겠습니다. 이 파일은 6개의 투영 화면을 정의하며, 각각은 별도의 물리적 컴퓨터로 렌더링합니다.
여러 개의 scene_node도 정의하는데, 이는 모여서 다음과 같은 계층구조를 만듭니다.
이 계층구조에서 해당 노드의 상대적 위치와 회전은 VR 공간에서 카메라와 1미터 거리에 6개의 투영 화면이 나란히 오도록 레이아웃을 정합니다.
참고로 위 환경설정은 인접한 투영 화면 사이에 씬을 렌더링하는 모니터의 테두리 부분을 고려한 작은 공간이 있음을 암시합니다.