프레임 서버를 사용한 렌더링

프레임 서버는 서버에 지정된 렌더 프로세스 수에 대한 작업을 공유하여 렌더링 시간을 줄입니다. Preferences. 프레임 서버 로그는 Background Renders 스크립트 이름, 쓰기 노드, 프레임 범위, 진행률 및 렌더에서 오류가 발생했는지 여부 등의 정보가 포함됩니다. 프레임 서버에는 렌더링 작업에 대한 진행률 표시 줄이 표시되지 않지만 비활성화 할 수 있습니다 Render using frame server 에서 Render 이전 버전의 프로세스를 사용하는 대화 상자 Nuke.

프레임 서버는 기본적으로 비활성화되어 있지만 Preferences > Performance > Threads/Processes 또는 Write 노드의 렌더마다 Render 대화.

노트 :  로컬 프레임 서버 프로세스는 포트 5558-5662를 사용합니다.

노드의 노드에서 렌더링 쓰기 노드 Properties 또는 Render 메뉴에서 Render 대화. 보다 출력 (쓰기) 노드 렌더 시작에 대한 자세한 내용은프레임 서버가 활성화 된 경우 OK 에서 Render 대화 상자는 백그라운드에서 선택한 렌더를 시작하여 계속 작업 할 수 있습니다.

그만큼 Background Renders 탭은 함께 제공되는 작업 공간의 일부로 표시되지 않습니다 Nuke하지만 사용하도록 설정할 수 있습니다 Performance > Threads/Processes > focus background renders 에서 Preferences 프레임 서버가 사용 중일 때 자동으로 패널을 엽니 다.

팁:  마우스 오른쪽 버튼을 클릭하여 패널을 수동으로 추가 할 수도 있습니다. 창의 왼쪽 상단에있는 버튼을 클릭 한 다음 Windows > Background Renders.

그만큼 Background Renders 패널에는 스크립트 이름, 쓰기 노드, 프레임 범위, 진행률 및 렌더 생성 오류와 같은 정보가 포함됩니다.

프레임 서버 환경 설정

다음을 사용하여 프레임 서버의 동작을 제어 할 수 있습니다 Performance > Threads/Processes 의 탭 Preferences:

render using frame server (Nuke) -활성화되면 프레임 서버는 항상 렌더링에 사용됩니다.

focus background renders -활성화되면 프레임 서버를 사용한 렌더링이 자동으로 Background Renders 패널을 열거 나 이미 열려 있으면 초점을 패널로 이동합니다.

frame server processes to run -프레임 서버에서 사용할 수있는 렌더 프로세스 수를 설정합니다.

노트 :  다시 시작해야합니다 Nuke 사용 가능한 프로세스 수를 변경하는 경우

export renders -렌더 프로세스에 사용 가능한 리소스에 대한 제한을 설정할 수 있습니다.

limit renderer (more responsive ui) – 렌더링 중에 사용자 인터페이스의 응답 성을 높이려면이 옵션을 선택하십시오. 그것은 말한다 Nuke 2 개의 스레드를 사용하여 코드를 변환하고 25 %의 RAM을 사용하여 캐시합니다. 이 옵션을 사용하면 렌더링 속도가 느려질 수 있습니다.

no renderer limits (fastest transcoding) – 렌더링이 가능한 빨리 이루어 지도록하려면이 옵션을 선택하십시오. 이 옵션을 사용하면 렌더링하는 동안 반응이 적은 사용자 인터페이스가 생길 수 있습니다.

customize render limits – 수동으로 구성하려면이 옵션을 선택하십시오. number of threads 사용 및 cache memory 렌더링 중에 사용할 수 있습니다.

외부 시스템에서 프레임 서버 사용

이기는 하지만 Nuke 외부 시스템에서 프레임 서버를 실행하면 시스템 네트워크에서 작업을 공유하여 프로세스를 상당히 가속화 할 수 있습니다.

노트 :  프레임 서버는 Nuke 주 워크 스테이션에서 라이센스 (nuke_i) Nuke 슬레이브 시스템에서 라이센스 (nuke_r)를 렌더링합니다.

슬레이브 시스템에서 대화식 라이센스 (nuke_i)를 사용하려면 --useInteractiveLicense 에 대한 논쟁 runframeserver.py 아래에 설명 된 명령.

외부 시스템에서 프레임 서버 구성

Nuke의 프레임 서버는 외부 머신 (또는 여러 머신)에 설정하여 Nuke Studio 세션. 이렇게하려면 다음을 실행해야합니다. runframeserver.py 외부 사이트의 스크립트 (파이썬 사이트 패키지 안에 있으며 특정 명령 행 인수 포함).

경고:  모든 것이 원활하게 작동하려면 외부 슬레이브 시스템과 메인 시스템이 모두 Nuke 세션은 NFS 공유와 같은 공유 위치에서 파일을 읽고 쓸 수 있습니다.

플랫폼에 따라 기본값을 조작하여 수행 할 수 있습니다 umask 이 설정은 생성 된 파일의 권한을 변경합니다.

또한 방화벽이 통신 포트 5560을 차단하면 Mac 및 RHEL과 같은 특정 Linux 배포판이 기본 워크 스테이션으로 작동 할 수 없습니다. 방화벽을 사용하여 방화벽을 통해 특정 포트를 허용하도록 방화벽을 구성 할 수 있습니다. iptables 명령을 수행 할 때주의하십시오. 예를 들면 다음과 같습니다.

sudo iptables -I 입력 -p tcp --dport 5560 --syn -j ACCEPT

자세한 내용은 특정 플랫폼의 방화벽 설명서를 참조하십시오.

프레임 서버는 외부 시스템에서 여러 작업자 프로세스를 사용하며, 각 작업자 프로세스에는 스레드, 메모리 등과 같은 할당 된 리소스가 필요합니다. 전달해야 할 여러 가지 주장이 있습니다 runframeserver.py 서버가 올바르게 작동하려면

--numworkers -이것은 동시 수입니다 Nuke 이 서버 렌더 노드를 실행할 때 실행되는 프로세스.

--nukeworkerthreads -각 작업자가 할당 된 스레드 수이것은 -m 실행할 때 인수 Nuke 명령 행에서.

--nukeworkermemory -각 프레임 서버 워커에 할당 된 메모리 양 (MB).

--workerconnecturl -제공하려는 기본 워크 스테이션의 TCP 포트 주소. 예를 들면 다음과 같습니다.

tcp://bob:5560

어디 bob 제공하려는 머신의 확인 된 호스트 이름입니다. IP 주소를 사용할 수도 있습니다.

팁:  유효한 URL을 입력하려면 ping 응답이 있는지 확인하십시오.

--nukepath -경로 Nuke 슬레이브 워크 스테이션의 응용 프로그램.

팁:  의 위에 Windows파일 경로에 공백이 있으면 경로를 따옴표로 묶어야합니다.
예를 들어 --nukepath="C:\Program Files\Nuke12.1v1\Nuke12.1.exe"

Linux 슬레이브 시스템에서 설치 디렉토리에서 실행되는 예제 명령 프롬프트 항목은 다음과 같습니다.

./python ./pythonextensions/site-packages/foundry/frameserver/nuke/runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=./Nuke12.1

Windows슬레이브 시스템의 경우 설치 디렉토리에서 실행되는 명령 프롬프트 항목 예는 다음과 같습니다.

python.exe pythonextensions\site-packages\foundry\frameserver\nuke\runframeserver.py --numworkers=2 --nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560 --nukepath=Nuke12.1.exe

이 예에서는 슬레이브가 두 개를 사용하도록 지정합니다. Nuke 작업자는 각각 4 개의 스레드와 8GB RAM을 가지며 메인에 종속됩니다. Nuke 에서 실행되는 워크 스테이션 bob.

팁:  슬레이브 시스템이 메인 시스템과 다른 OS를 실행하는 경우 Nuke 기계, 당신은 사용할 수 있습니다 --remap 그들 사이의 파일 경로를 변환하는 명령 행 인수. 호스트 파일 경로를 먼저 읽은 다음 슬레이브 파일 경로를 읽습니다. Nuke 모든 파일 경로를 사용할 것으로 예상 / 디렉토리 간 슬래시예를 들면 다음과 같습니다.
- "P : /, / mnt / renders /"를 다시 매핑
로 시작되는 호스트 경로를 변환합니다 P:/ (Windows 스타일)로 시작하는 슬레이브 경로 /mnt/renders/ (리눅스 스타일).

기본 워크 스테이션의 스크립트 편집기에서 다음 행을 실행하여 프레임 서버와 작업자가 연결되어 있는지 확인할 수 있습니다.

from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer

print [worker.address for worker in frameServer.getStatus(1).workerStatus]

연결에 성공하면 출력 패널에 다음과 유사한 내용이보고되어야합니다.

['Worker 0 - henry.local - 192.168.1.11', 'Worker 0 - bob.local - 192.168.1.111', 'Worker 1 - henry.local - 192.168.1.11']

어디 henry.local 원격 슬레이브의 이름이며 bob.local 메인의 이름입니다 Nuke 세션.

노트 :  작업자가 프레임 서버에 접속할 수없는 경우 스크립트 편집기의 출력 패널에 예외가 인쇄됩니다.

프레임 서버 로그

브로커 및 작업자 로깅은 프레임 서버 문제를 진단하는 데 도움이 될 수 있습니다. 로그는 기본적으로 NUKE_TEMP_DIR / logs에 작성되며 다음 형식을 취합니다.

broker.log

worker-0.log

worker-1.log

worker-2.log

노트 :  위에서 설명한대로 Python을 사용하여 프레임 서버를 실행하면 항상 특정 OS 임시 디렉토리에 로그 파일을 씁니다. 예를 들어WindowsC : \ temp가 사용됩니다.

팁:  FRAMESERVER_LOG_DIR 환경 변수를 사용하여 프레임 서버 로그를 다른 위치로 강제 설정할 수 있습니다. 보다 환경 변수자세한 내용은.