무비 렌더 큐로 고퀄리티 프레임 렌더링하기

특히 레이 트레이싱을 사용할 때 고퀄리티 시네마틱 영상을 얻기 위해 언리얼 엔진 무비 렌더 큐 기능을 환경설정하는 하우투 가이드입니다.

Choose your operating system:

Windows

macOS

Linux

이 가이드는 Windows 10 64비트 사용자를 위한 안내서입니다.

목표가 오프라인에서 고퀄리티 렌더링을 달성하는 것이라면 리얼타임 렌더링 비용은 걱정하지 않아도 됩니다. 이 가이드를 통해 퀄리티, 정밀도를 크게 높이고 레이 트레이싱 글로벌 일루미네이션(Ray-Tracing Global Illumination)레이 트레이싱 리플렉션(Ray-Tracing Reflections) 과 같은 기능을 찾는 세팅과 명령을 사용할 수 있습니다. 또한 향상된 모션 블러(Motion Blur) 기능을 이용하고 원치 않는 안티 에일리어싱 아티팩트를 제거할 수도 있습니다.

이 가이드에서는 리얼타임 걱정 없이 고퀄리티 렌더링 생성에 사용할 수 있는 일부 세팅을 안내합니다. 무비 렌더 큐(Movie Render Queue)를 사용하여 커스텀 세팅과 콘솔 변수로 샘플 시퀀스를 환경설정하는 방법을 배우게 됩니다.

아래 비디오에서 완전한 고퀄리티 렌더가 어떤 모습인지 확인할 수 있습니다.

이 가이드는 위의 비디오를 제작하는 데 사용한 프로세스와 비슷한 프로세스를 따릅니다. 주된 차이점은 블루프린트 디렉터(Blueprint Director) 대신 무비 렌더 큐를 사용한다는 점입니다.

목표

이 가이드를 마치면, 다음을 더 잘 이해할 수 있습니다.

  • 무비 렌더 큐와 함께 사용할 시퀀서 준비

  • 고퀄리티 이미지 시퀀스 출력

  • 레이 트레이싱을 사용하는 이미지 렌더링 시 이미지 향상을 위해 출력 세팅 미세조정

  • 콘솔 변수를 사용하여 커스텀 세팅 적용

최상의 결과를 얻으려면 아래 단계를 순서대로 진행하세요.

1단계. 프로젝트 구성

시작하기 전에, 시스템 세팅을 변경하고, 이 가이드에서 사용할 샘플 프로젝트를 다운로드하고, Movie Render Pipeline 플러그인을 활성화해야 합니다.

시스템 환경설정(선택 사항이지만 권장 사항)

GPU 명령어를 실행하는 데 시간이 너무 오래 걸리면, Windows에서는 그래픽 카드에 충돌이 발생했다고 가정하고 드라이버를 리셋하게 되는데, 그러면 엔진이 종료됩니다.

Windows 레지스트리에서 TDR(Timeout Detection and Recovery) 시간을 변경하여 Windows에서 GPU 타임아웃을 탐지하는 데 걸리는 시간을 늘릴 수 있습니다.

이러한 편집을 수행하려면 컴퓨터 관리자 권한이 필요합니다.

샘플 프로젝트 로드 전 TDR 편집 방법:

  1. Windows 시작 메뉴 검색창regedit 을 입력하여 레지스트리 편집기(Registry Editor) 를 실행합니다.

  2. Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers 카테고리로 이동합니다.

  3. 목록에서 TdrDelay 를 선택한 후 우클릭한 다음, 수정(M)(Modify) 을 선택합니다.

    RegistryEditor.PNG

  4. 이 값은 초 단위로 측정됩니다. 10진수(D)(Decimal) 를 선택하고, 값 데이터(V)(Value data)60 으로 설정한 다음, 확인(OK) 을 클릭합니다.

TDR에 대한 자세한 내용은 Microsoft TDR 레지스트리 키 문서를 참조하세요.

샘플 프로젝트 다운로드

이 가이드에서는 건축 시각화 인테리어(ArchViz Interior) 를 샘플 프로젝트로 사용하여 마지막에 렌더링되는 최종 이미지 시퀀스를 생성합니다. 이 샘플 프로젝트는 섀도, 앰비언트 오클루전 및 글로벌 일루미네이션과 같은 레이 트레이싱 기능을 사용한 포토리얼한 씬을 제공합니다.

  1. 에픽게임즈 런처 를 엽니다. 왼쪽의 옵션에서 언리얼 엔진(Unreal Engine) 을 클릭한 다음, 상단의 학습(Learn) 탭을 선택합니다.

    언리얼 엔진 웹사이트의 학습 탭

  2. 엔진 피처 샘플(Engine Feature Samples) 섹션까지 스크롤을 내린 다음, 건축 시각화 인테리어(ArchViz Interior) 를 선택합니다. 콘텐츠 세부사항(CONTENT DETAIL) 창이 열리면 무료(Free) 를 클릭하여 프로젝트를 다운로드한 다음, 프로젝트 생성(Create Project) 을 클릭합니다. 이 가이드에서는 프로젝트 이름을 ArchVizInterior 로 그대로 사용합니다.

  3. 다운로드 위치를 찾아 선택하거나 디폴트 위치를 사용합니다.

이 프로젝트를 사용하려면 DirectX 12 레이 트레이싱을 지원하는 레이 트레이싱 호환 카드가 필요합니다. 레이 트레이싱 시스템 요구 사항에 대한 자세한 정보는 리얼타임 레이 트레이싱 문서를 참조하세요.

건축 시각화 인테리어 프로젝트와 프로젝트 개발 방법에 대해 자세히 알아보려면 건축 시각화 인테리어 렌더링을 참조하세요.

Movie Render Pipeline 플러그인 활성화하기

무비 렌더 큐 를 사용하려면, 먼저 Movie Render Pipeline 플러그인을 활성화해야 합니다.

  1. 건축 시각화 프로젝트를 다운로드하고 엔진에서 연 다음, 편집(Edit) > 플러그인(Plugins) 으로 이동합니다.

  2. 아직 선택하지 않았다면 내장 플러그인(Built-In) 을 선택한 다음, movie 로 검색합니다. Movie Render Pipeline 이 표시될 것입니다.

    무비 렌더 파이프라인 활성화

  3. 아직 활성화하지 않았다면, 활성화됨(Enabled) 박스를 체크하여 플러그인을 활성화한 다음, 창을 닫습니다.

2단계: 시퀀서 에디터로 프로젝트 시퀀스 로드하기

이 단계에서는 건축 시각화 인테리어 프로젝트에서 구성된 시네마틱 시퀀스 (줄여서 시네마틱 )로 작업합니다.

시퀀서와 무비 렌더 큐 기능에 익숙하지 않다면 이 페이지 상단에 나열된 전제조건 문서를 살펴보면 도움이 될 것입니다.

  1. 건축 시각화 인테리어 프로젝트를 연 상태로, 콘텐츠 브라우저(Content Browser) 에서 레벨 시퀀스를 찾습니다. 이 프로젝트의 경우, 모든 레벨 시퀀스는 Content > Cinematic 폴더에 있습니다.

  2. archviz_cine_MASTER 시퀀스를 더블클릭하여 시퀀서 에디터 에서 엽니다. 아래 이미지와 비슷할 모습일 것입니다.

    이 마스터 시퀀스에는 이 샘플 프로젝트에 사용된 개별 샷이 모두 포함되어 있습니다.

레벨 에디터에서도 마스터 시퀀스에 액세스할 수 있습니다. '시네마틱(Cinematics)' 드롭다운을 클릭하여 열린 프로젝트에서 기존 마스터 시퀀스를 선택하고 액세스합니다. CinematicsDropdown.png

시퀀서 에디터

시퀀서 에디터(Sequencer Editor) 에서는 제작한 샷을 시각적으로 확인하는 효과적인 방법을 제공하므로 무비 렌더 큐를 사용할 때 렌더링할 프레임 범위를 결정하는 데 유용합니다.

이 예시에서는 프레임 범위가 지정되지만, 나중에는 자체적으로 렌더링 프레임 범위를 지정해야 합니다. 시퀀서 에디터가 처음이라면, 아래에 설명한 기능을 숙지하시기 바랍니다. 처음이 아니라면, 3단계: 무비 렌더 큐에 시퀀스 추가로 바로 넘어가세요.

샷 트랙(Shots Track) 에는 시네마틱에서 사용된 모든 카메라에 대한 정보가 포함되어 있습니다. 이 시네마틱에서는 렌더링 시 사용할 카메라가 각 샷에 포함되어 있습니다. 왼쪽의 드롭다운을 클릭하면 중첩된 트랙을 확인할 수 있습니다.

패널에서 원하는 카메라의 카메라 버튼 을 클릭하면 그 카메라 시점으로 레벨 뷰포트가 스냅됩니다.

SequencerCameraButton.png

재생 컨트롤 패널 이나 슬라이더 를 사용하여 타임라인을 스크럽하고 샷과 프레임 범위를 확인합니다. 슬라이더에는 현재 프레임 번호가 표시됩니다.

SequencerScrub.png

시퀀서가 열린 상태로, 레벨 에디터에서 원근(Perspective) > 시네마틱 뷰포트(Cinematic Viewport) 를 선택합니다.

PerspectiveSelectCinematic.png

그러면 뷰포트에서 시네마틱에 대한 추가 정보가 있는 재생 컨트롤 패널이 열립니다.

PerspectiveCinematic.png

3단계: 무비 렌더 큐에 시퀀스 추가하기

다음으로, 무비 렌더 큐에 시퀀스를 추가할 것입니다. 이 시퀀스로 고퀄리티 이미지 세트를 렌더링하게 됩니다.

시퀀서에서의 무비 렌더링 워크플로에 익숙한 분이라면, 무비 렌더 큐의 액세스 경로와 유저 인터페이스는 매우 다르다는 점에 유의하세요.

  1. 에디터 메뉴 바에서 창(Window) > 시네마틱(Cinematics) > 무비 렌더 큐(Movie Render Queue) 를 선택합니다.

    Cinematics_MovieRenderQueue.png

    처음 열었을 때는 창이 아래 이미지처럼 비어 있을 것입니다.

    MovieRenderQueue_empty.png

  2. + 렌더(Render) 버튼을 클릭한 다음, 드롭다운 목록에서 archviz_cine_MASTER Level Sequence 파일을 클릭하여 큐에 추가합니다.

    MRQ_SelectSequence.png

    콘텐츠 브라우저에서 시퀀스를 큐 창에 드래그해서 시퀀스를 큐에 추가할 수도 있습니다.

    MovieRenderQueue_content.png

시퀀스를 제거하려면, 다음 방법 중 하나를 사용합니다.

  • 시퀀스를 선택한 다음, 버튼을 클릭합니다.

    MovieRenderQueue_del.png

  • 제거할 시퀀스를 하이라이트하고 키보드에서 Del 키를 누릅니다.

  • 제거할 시퀀스를 우클릭한 다음 삭제(Delete) 를 클릭합니다.

여러 개의 시퀀스를 하이라이트하려면 Shift 키를 누른 상태로 클릭하여 선택합니다. 그러면 동시에 여러 개의 시퀀스를 삭제할 수 있습니다.

4단계: 환경설정 옵션 선택 방법

큐에 로드된 시퀀스를 렌더링하기 전에 사용하려는 세팅을 환경설정해야 합니다. 출력 포맷, 파일 이름, 안티 에일리어싱 세팅 등 다양한 세팅을 조정할 수 있습니다.

첫 단계는 환경설정할 세팅을 선택하는 것입니다.

  1. 창이 열리고 목록에 마스터 시퀀스가 있는 상태에서 저장되지 않은 환경설정(Unsaved Config) 을 클릭합니다.

    MRQ_access_settings.png

  2. 그러면 세팅/프리셋(Setting/Presets) 창이 열립니다.

    SettingPresetWindow.png

  3. 이 창에서 환경설정을 변경할 수 있지만, 먼저 환경설정하려는 세팅을 선택해야 합니다. 세팅을 추가하려면, + 세팅(Setting) 버튼을 클릭하여 옵션 목록을 엽니다.

    MRQ_OutputList.png

    옵션은 세팅(Settings) , 렌더링(Rendering) , 출력(Output) 이렇게 세 그룹으로 나뉘어 있습니다. 자세한 내용은 아래에서 설명합니다.

  4. 이러한 옵션 중 하나를 이 목록에서 세팅/프리셋 창으로 옮기려면, 드롭다운에서 옮길 항목을 선택합니다. 세팅/프리셋 창에 항목을 추가하면, 이 목록에서는 제거됩니다.

  5. 3~4단계를 반복하여 더 많은 옵션을 목록에 추가합니다.

세팅/프리셋 창에 추가하는 각 옵션에는 토글 스위치 가 있습니다. 이러한 토글을 사용하여 렌더링 프로세스에서 이 옵션을 활성화 하거나 비활성화 할 수 있습니다. 이런 방식으로 프리셋에서 해당 옵션을 완전히 제거하지 않고도 특정 렌더에서만 세팅을 끌 수 있습니다.

MRQ_toggles.png

세팅/프리셋 창에서 항목을 제거하려면 항목을 하이라이트한 다음, Del 키를 누릅니다. 그러면 세팅/프리셋 창에서 제거되고 다시 옵션 목록에 추가됩니다.

출력 세팅 설명

MRQ_SettingOptions_Output.png

여러 가지 이미지 타입을 출력에 사용할 수 있습니다. 타입마다 장단점이 있으므로 자신의 프로젝트 워크플로에 가장 잘 맞는 타입을 찾아야 합니다.

한 가지 고려할 점은 파일 타입이 알파 채널 을 제공하는지 여부입니다. 이는 투명 배경이 있는 이미지가 필요한 경우 중요합니다.

다른 고려할 점으로는 해당 포맷이 무손실인지 손실인지 여부입니다. 무손실 압축 은 파일의 압축을 해제할 때 모든 원본 이미지 데이터를 복구할 수 있는 반면, 손실 압축 은 모든 원본 데이터가 복구되지 않습니다.

출력 타입

알파 채널

손실 또는 무손실

참고

.bmp 시퀀스 [8bit]

아니요

무손실

디스크 쓰기 속도가 빠르지만, 비압축 특성으로 인해 파일 크기가 큽니다.

.jpg 시퀀스 [8bit]

아니요

손실

파일 크기가 작아 프리뷰에 좋은 포맷입니다.

.png 시퀀스 [8bit]

무손실

파일 크기는 크지만, 이미지가 퀄리티가 높습니다.

.exr 시퀀스 [16bit]

무손실

인더스트리얼 라이트 앤 매직(Industrial Light and Magic)에서 개발한 비디오 컴포지팅에 사용되는 하이 다이내믹 레인지 포맷입니다.

.wav 오디오

해당 없음

해당 없음

오디오 출력용입니다.

이미지 타입에 대한 자세한 내용은 무비 렌더 큐 익스포트 포맷 가이드 문서를 참조하세요.

.png와 .exr 이미지 포맷 모두 이미지와 함께 알파 채널을 출력하는 기능을 제공하지만, 먼저 알파 채널 지원을 활성화해야 합니다. 에디터 메뉴 바에서 편집(Edit) > 프로젝트 세팅(Project Settings) > 엔진(Engine) - 렌더링(Rendering) > 포스트 프로세싱(Postprocessing) > 포스트 프로세싱에서 알파 채널 지원 활성화(실험단계)(Enable alpha channel support in post processing (experimental)) > Linear color space only 를 선택합니다.

이 변경사항이 적용되면 엔진 재시작 메시지가 표시됩니다. 투명 배경을 생성하려면, 씬에서 스카이와 애트머스페릭 포그 같은 불투명한 오브젝트를 숨겨야 합니다.

두 가지 이상의 출력 포맷을 선택할 수 있지만, 이 예시에서는 하나만 사용합니다.

렌더링 세팅 설명

MRQ_SettingOptions_Rendering.png

두 가지 렌더링 세팅 을 사용할 수 있습니다. 렌더링 세팅은 최종 이미지가 출력되는 방식을 지정합니다.

렌더 타입

설명

디퍼드 렌더링(Deferred Rendering)

디폴트 옵션입니다. 디퍼드 렌더링 을 끄면 최종 프레임 렌더가 비활성화되지만, 큐에서 환경설정 세팅의 다른 단계는 계속 처리됩니다. 이 가이드의 단계를 따르는 동안 이 옵션은 활성화해야 합니다.

UI 렌더러(비 컴포짓)(UI Renderer (Non-Composited))

인터페이스 관련 그래픽 컴포짓 시 유용한 Adobe Premiere 또는 Final Cut Pro와 같은 별도의 컴포지팅 애플리케이션에서 프레임 렌더와 합성할 수 있는 별도의 .png 또는 .exr 파일로 UMG 위젯을 렌더링하여 유연성을 제공합니다.

추가 세팅 설명

MRQ_SettingOptions_Settings.png

세팅 옵션 을 사용하여 최종 출력 이미지 렌더링 시 사용할 환경설정 가능한 추가 항목을 지정할 수 있습니다.

세팅 타입

설명

안티 에일리어싱(Anti-aliasing)

최종 이미지 렌더링 시 사용되는 샘플 타입 및 샘플의 수를 제어합니다.

번 인(Burn In)

씬 또는 샷의 이름, 날짜, 시간, 프레임 정보 같은 정보가 포함된 오버레이입니다. 이러한 오버레이는 렌더링될 때 무비로 버닝되기 때문에 번 인이라고 합니다. 필요한 경우 커스텀 위젯으로 대체할 수 있습니다.

카메라(Camera)

모션 블러와 노출 등의 이펙트에 영향을 주는 셔터 세팅을 제어하는 데 사용할 수 있습니다.

콘솔 변수(Console Variables)

무비 렌더 큐에서 렌더링할 때 특별히 실행할 콘솔 변수를 호출합니다.

게임 오버라이드(Game Overrides)

게임 모드 및 시네마틱 퀄리티 세팅 같은 일반적인 게임 관련 세팅 몇 가지를 오버라이드합니다. 게임의 일반 모드에 캡처하고 싶지 않은 UI 엘리먼트나 로딩 화면이 표시되는 경우에 유용합니다.

고해상도(High Resolution)

타일 렌더를 사용하여 GPU의 메모리 제한이나 최대 텍스처 크기로 인해 일반적으로 가능한 것 이상의 더 큰 이미지를 생성할 수 있습니다.

이 예시에서는 이러한 옵션 중 몇 개만 사용하지만, 나중에 직접 모든 옵션을 살펴보세요.

이러한 세팅에 대한 자세한 내용은 무비 렌더 큐 이미지 세팅 가이드 문서를 참조하세요.

5단계: 옵션 선택하기

세팅/프리셋 창에 다음 옵션을 추가합니다.

  • .png 시퀀스 [8bit]

  • 디퍼드 렌더링

  • 안티 에일리어싱

  • 콘솔 변수

또 다른 옵션인 출력세팅 아래에 있을 것입니다. 이 옵션은 삭제할 수 없는 유일한 옵션입니다.

SettingPreset_withOptionsSelected.png

이 시점에서 세팅/프리셋 창은 이런 모습일 것입니다.

6단계: 안티 에일리어싱 세팅 환경설정하기

안티 에일리어싱 은 라인을 스무딩하고 시각적 디스토션을 제거하는 방법입니다. 스페이셜 샘플링(Spatial Sampling)템포럴 샘플링(Temporal Sampling) 은 각각 다른 접근 방식을 사용하여 안티 에일리어싱과 노이즈 관련 문제를 해결합니다.

  • 스페이셜 샘플 은 다른 오프셋 위치의 샘플을 누적하는 동안 두 개의 서로 다른 스페이셜 샘플 간에 시간 경과는 없고 카메라 위치 오프셋이 약간 다른, 시간상으로 같은 순간을 렌더링하는 방식으로 작동합니다.

  • 템포럴 샘플 은 카메라 셔터가 열리는 시간을 지정된 서브프레임으로 슬라이싱하고 엔진 모션 블러를 사용하여 작은 슬라이스 간 보간하는 방식으로 작동합니다. 템포럴 샘플은 특히 모션 블러 퀄리티를 높이는 데 적합합니다.

스페이셜 및 템포럴 샘플링 간의 차이점에 대한 자세한 내용과 언제 어떤 메서드를 사용해야 하는지에 대한 가이드라인을 알아보려면 안티 에일리어싱 무비 렌더 큐 세팅 문서를 참조하세요.

이 가이드에서 사용한 값은 두 메서드를 조합한 것입니다.

이 가이드는 RTX-2080 Ti 그래픽 카드를 사용하여 개발되었습니다. 각자의 설정에 따라 최종 프레임 렌더를 생성하기 위해 여기 나온 값을 일부 낮추어야 할 수도 있으며, Quadro RTX 같은 더 고성능 카드를 사용하는 경우, 샘플 수를 더 높일 수도 있습니다.

  1. 무비 렌더 큐 창에서 저장되지 않은 환경설정 링크를 클릭하여 세팅을 엽니다. ***** 는 이 세팅이 아직 저장되지 않았다는 표시입니다. 모든 세팅을 입력한 후 프리셋을 저장합니다.

  2. 세팅/프리셋 창에서 안티 에일리어싱 을 클릭하여 세팅 대화창을 엽니다.

  3. 다음 값을 추가합니다.

    • 스페이셜 샘플 수(Spatial Sample Count): 1

    • 템포럴 샘플 수(Temporal Sample Count): 64

    • 안티 에일리어싱 모드 오버라이드(Override Anti Aliasing Mode): 활성화됨

    • 안티 에일리어싱 메서드(Anti Aliasing Method): 없음

    • 렌더 웜업 수(Render Warm Up Count): 120

    • 엔진 웜업 수(Engine Warm Up Count): 120

    MRQ_Configure_AntiAliasing.png

렌더 웜업 수엔진 웜업 수 값은 프레임이 캡처되기 전 템포럴 히스토리 및 시뮬레이션을 안정적으로 구축하기에 충분한 시간의 버퍼를 제공합니다. 예를 들어, 이런 세팅을 통해 첫 번째 프레임을 렌더링하기 전에 자동 노출이나 기타 화면 이펙트가 좋은 지점에서 시작되도록 할 수 있습니다.

이러한 세팅은 고퀄리티 이미지를 렌더링합니다. 여기서의 목표는 리얼타임 렌더에서 얻는 것보다 더 높은 퀄리티의 이미지를 보여주는 것입니다. 그러므로 리얼타임 퍼포먼스나 렌더링에 걸리는 시간을 걱정할 필요는 없습니다.

하지만, 이렇게 퀄리티와 퍼포먼스가 상충된다는 것은 샘플 수가 많을수록 프레임당 렌더링 시간도 길어진다는 뜻입니다.

할 수 있다 고 해서 꼭 해야 하는 것은 아닙니다!

시작하기 전에 최고 값으로 모든 것을 설정하기보다 처음에는 몇 개의 프레임만 사용하여 테스트해 보는 것이 좋습니다. 자신의 GPU와 설정에 따라 프로젝트에 가장 잘 맞는 세팅을 찾는 것을 목표로 삼아야 합니다.

7단계: 콘솔 변수 환경설정하기

무비 렌더 큐에서 렌더링할 때 실행하려는 대부분의 콘솔 변수(CVAR) 를 호출할 수 있습니다. 이는 리얼타임으로는 비용이 너무 많이 드는 고퀄리티 결과를 렌더링하는 데 매우 유용합니다.

큐에 나열된 콘솔 변수는 이미지가 큐에서 렌더링될 때만 실행됩니다. 이러한 세팅은 이미 구성된 레벨의 무엇도 영구적으로 변경하지 않으며, 기존 세팅과 함께 작동하고 최종 이미지 출력을 위해 큐에 표시된 세팅만 오버라이드합니다.

이 접근 방식은 샘플 수와 바운스 증가가 퍼포먼스에 직접적으로 영향을 미치지만, 라이팅 결과의 퀄리티와 정밀도를 크게 향상시키는 레이 트레이싱에서 특히 유용합니다.

  1. 콘솔 변수 를 클릭하여 세팅 대화창을 엽니다.

    MRQ_Configure_ConsoleEmpty.png

  2. 추가(+) 버튼을 클릭하고 아래 목록을 참고하여 변수와 값을 입력합니다.

    • r.MotionBlurQuality: 4

    • r.MotionBlurSeparable: 1

    • r.DepthOfFieldQuality: 4

    • r.BloomQuality: 5

    • r.Tonemapper.Quality: 5

    • r.RayTracing.GlobalIllumination: 1

    • r.RayTracing.GlobalIllumination.MaxBounces: 2

    • r.RayTracing.Reflections.MaxRoughness: 1

    • r.RayTracing.Reflections.MaxBounces: 2

    • r.RayTracing.Reflections.Shadows: 2

    이러한 콘솔 변수를 입력하는 가장 빠르고 정확한 방법은 이 문서에서 복사하여 붙여 넣은 다음, Tab 을 눌러 값 필드로 커서를 이동하는 것입니다.

  3. 2단계를 반복하여 모든 항목을 추가합니다.

    MRQ_Configure_ConsoleFull.png

안티 에일리어싱 값과 마찬가지로 여기서 사용되는 콘솔 변수는 퍼포먼스보다 퀄리티에 중점을 두고 있습니다.

레이 트레이싱 글로벌 일루미네이션(r.RayTracing.GlobalIllumination )의 경우, 값을 1 로 설정하면 무차별 대입 방식이 호출됩니다. 이 방식은 정확하고 여러 개의 간접광 바운스를 구현할 수 있지만, 계산 비용이 비쌉니다. 이 값을 2 로 변경하면, 훨씬 빠르지만 하나의 간접광 바운스만 구현하며 일부 고스팅 아티팩트 (움직이는 이미지를 따라다니는 픽셀)를 생성하는 템포럴 히스토리 메서드를 사용하게 됩니다.

이 예시의 다른 CVAR은 퀄리티 레벨을 제어하는 확장 가능한 값을 사용합니다.

콘솔 변수의 세부 내용을 알고 싶다면, 백틱( ` ) 키를 사용하여 콘솔을 열고 해당 콘솔 명령을 검색하면 됩니다. 다음 포맷을 사용하여 툴팁을 표시합니다.

[consolevariablename] ?

예를 들어, r.RayTracing.GlobalIllumination ? 를 입력하면, 툴팁의 출력은 다음과 같이 보입니다.

 HELP for 'r.RayTracing.GlobalIllumination':
-1: Value driven by post process volume (default) 
0: ray tracing global illumination off 
1: ray tracing global illumination brute force method enabled
2: ray tracing global illumination final gather method enabled

이 쿼리의 결과는 출력 로그(Output Log) 에 표시됩니다. 출력 로그에 액세스하려면, 창(Window) > 개발자 툴(Developer Tools) > 출력 로그(Output Log) 로 이동합니다.

이 가이드에서 선택한 모든 변수와 값은 프로젝트에서 렌더링하기 위한 고퀄리티 시작점을 제공합니다.

자신의 프로젝트로 작업하면서 다양한 변수와 값을 시험해 보는 것이 좋습니다. 레이 트레이싱용 콘솔 변수의 경우, 이 가이드 끝에 있는 직접 실습해 보세요!를 참조하세요.

8단계. 출력 환경설정하기

세팅/프리셋 창의 마지막 환경설정 단계는 출력 입니다.

전체 시퀀스나 특정 범위의 프레임 또는 개별 프레임을 렌더링할 수 있습니다. 고퀄리티 출력에는 시간이 많이 소모되므로 이 예시에서는 시퀀스의 짧은 세그먼트만 출력할 것입니다.

  1. 세팅/프리셋(Setting/Presets) 창의 출력(Output) 을 클릭하여 세팅 대화창을 엽니다.

    MRQ_OutputSettings.png

  2. 파일 출력(File Output) 아래에서 다음을 입력합니다.

    • 출력 디렉터리(Output Directory): 이미지를 렌더링하려는 디렉터리입니다. 기본적으로 프로젝트 폴더에 저장됩니다. 다른 디렉터리를 찾아보려면, 오른쪽의 ...를 클릭합니다.

    • 파일 이름 포맷(File Name Format): 변경하지 않는 경우, 디폴트 이름은 렌더링되는 시퀀스 이름과 프레임 번호입니다.

    • 출력 해상도(Output Resolution): 타깃 이미지 크기입니다. 디폴트는 1920(너비) x 1080(높이)입니다. 디폴트로 둡니다.

    • 커스텀 프레임 레이트 사용(Use Custom Frame Rate): 출력 프레임 레이트를 변경합니다. 비활성화 상태로 둡니다.

    • 기존 출력 오버라이드(Override Existing Output): 이 박스를 클릭하여 활성화합니다.

  3. 프레임(Frames) 아래에서 다음을 입력합니다.

    • 처리 프레임 수(Handle Frame Count): 이 예시에서는 사용하지 않습니다. 디폴트 값인 0으로 남겨둡니다. 이 옵션에 대한 자세한 내용은 시퀀서 개요 문서를 참조하세요.

    • 출력 프레임 단계(Output Frame Step): 이 예시에서는 사용하지 않습니다. 디폴트 값인 1으로 남겨둡니다.

    • 커스텀 재생 범위 사용(Use Custom Playback Range): 클릭하여 활성화합니다.

    • 커스텀 시작 프레임(Custom Start Frame): 렌더링 범위의 첫 번째 프레임을 설정합니다. 450 을 입력합니다.

    • 커스텀 끝 프레임(Custom End Frame): 범위의 마지막 프레임을 설정합니다. 550 을 입력합니다. 입력한 100프레임 범위는 오랜 시간 렌더링이 완료되기를 기다리지 않고도 리플렉션과 모션 블러, 글로벌 일루미네이션의 퀄리티를 보여주기에 충분합니다.

  4. 수락(Accept) 을 클릭하여 입력한 모든 세팅을 저장합니다.

9단계: 환경설정 세팅 저장하기

세팅을 저장해 두면 이 프로젝트와 다른 프로젝트에서 해당 세팅을 쉽게 다시 사용할 수 있습니다. 프리셋을 저장했다면, 나중에 프로젝트 워크플로에 맞춰 세팅을 조정하거나 프리셋을 다른 프로젝트에 복사하고자 할 때 되돌아와 이러한 세팅을 편집하면 됩니다.

또한, 나중에 프로젝트 워크플로에 맞춰 세팅을 조정할 때 세팅을 편집한 후 저장하거나 다른 이름으로 저장할 수도 있습니다.

  1. 무비 렌더 큐(Movie Render Queue) 창에서 저장되지 않은 환경설정(Unsaved Config) 을 클릭하여 세팅/프리셋(Setting/Preset) 창을 엽니다.

  2. 프리셋(Presets) > 프리셋으로 저장(Save As Preset) 을 클릭합니다.

    SavePreset.png

  3. 구성 프리셋 저장(Save Config Preset) 창에서 프리셋 에셋의 이름을 지정합니다.

    프로젝트 콘텐츠 브라우저에 새 디렉터리 경로 Cinematics > MoviePipeline > Presets 이 자동으로 생성됩니다. 디폴트 위치를 사용하거나 왼쪽의 콘텐츠 탐색 패널에서 다른 디렉터리를 선택합니다.

    SavePresetDefaultDirectory.png

  4. 저장(Save) 을 클릭합니다.

SavedPresetsLoad.png

이 프리셋은 이제 에셋이므로 시퀀스 파일과 별도로 콘텐츠 브라우저에서 열고 다른 프로젝트로 복사할 수 있습니다.

저장된 프리셋이 보이지 않는다면, 드롭다운을 클릭하여 이 프로젝트의 저장된 모든 프리셋 목록을 엽니다.

MRQ_SettingsSaved.png

10단계: 최종 출력 및 결과

이 예시의 마지막 단계에서는 설정하고 저장한 값을 사용하여 샘플 시퀀스에서 선택한 이미지 범위를 렌더링합니다.

두 가지 렌더링 옵션을 사용할 수 있습니다.

  • 렌더(로컬)(Render (Local)): 현재 에디터 인스턴스의 큐를 렌더링하며, 에디터에서 플레이(Play In Editor, PIE)와 비슷합니다. 가장 일반적인 워크플로이며 빠른 반복작업 시간 때문에 권장됩니다.

  • 렌더(원격)(Render (Remote)): 디폴트 행동은 기존 렌더 무비 시스템의 '별도 프로세스 사용(Use Separate Process)'과 비슷하게 별도의 프로세스를 실행하여 큐를 렌더링하는 것입니다. 별도의 프로세스를 실행할 때 파일 변경사항을 저장해야 합니다. 이 버튼의 동작은 렌더 팜 사용 같은 사내 솔루션을 대체할 수 있습니다.

이 예시에서는 쉽게 프리뷰할 수 있도록 로컬에서 렌더링 합니다.

  1. 무비 렌더 큐 창에서, 저장한 프리셋과 함께 시퀀스가 로드되었는지 확인한 다음, 렌더(로컬)(Render (Local)) 버튼을 클릭합니다.

    RenderLocal.png

  2. 프리뷰 창이 실행된 다음 프리셋의 파라미터와 값을 기반으로 각 프레임을 캡처하고 출력합니다.

    RenderPreview.png

    상태 정보는 왼쪽 하단에 표시되며 시퀀스 정보는 오른쪽에 표시됩니다.

    이 렌더 출력은 속도가 아닌 퀄리티를 중심으로 구성되었습니다. 따라서 컴퓨터 속도가 느린 것처럼 보여도 조금만 기다려 주세요. 처리 시간이 오래 걸릴 수 있습니다.

  3. 렌더링이 완료되면 프리뷰 창이 닫힙니다. 캡처한 프레임은 저장된 출력 디렉터리에 있습니다. 해당 폴더로 빠르게 이동하려면, 출력(Output) 열 아래 무비 렌더 큐 창의 링크를 클릭합니다.

다음은 100프레임 샷 렌더의 최종 결과를 보여주는 비디오 클립입니다.

황금 컵에서 깜박이는 것처럼 보이는 리플렉션처럼 아직 해결해야 할 일부 아티팩트가 보일 수도 있습니다. 이런 문제는 머티리얼에서 다른 기법을 사용하여 최적화하거나 해결할 수 있습니다. 이러한 기법에 대한 자세한 내용은 건축 시각화 인테리어 렌더링을 참조하세요.

그렇지만, 향상된 안티 에일리어싱과 섀도잉, 모션 블러, 멀티 바운스 글로벌 일루미네이션, 리플렉션을 확인할 수 있습니다. 아래의 비교 이미지를 통해 왼쪽의 디폴트 세팅 540프레임과 오른쪽의 이 예시에서 출력으로 지정한 세팅 540프레임 간의 차이를 확인하세요.

디폴트 세팅의 540프레임

향상된 퀄리티 값의 540프레임

이 가이드에서는 여러 가지 포맷으로 고퀄리티 이미지 시퀀스를 렌더링하도록 무비 렌더 큐를 구성하고 환경설정하는 방법을 배웠습니다. 이렇게 렌더링된 이미지 시퀀스를 Adobe Premiere, After Effects, Final Cut Pro, Nuke 또는 Resolve 같은 타사 편집 및 컴포지팅 소프트웨어로 가져가 비디오 클립을 생성하거나 추가 샷 편집과 컬러 그레이딩을 수행할 수 있습니다.

렌더 문제 해결하기

렌더링에 실패하거나 엔진이 정지되거나 충돌할 경우, 몇 가지 사항을 확인해 볼 수 있습니다.

  • 사용 중인 그래픽 카드의 최신 GPU 드라이버를 사용하고 있나요?

    최신이 아니라면 최신 버전을 다운로드합니다.

  • 사용 중인 GPU에서 레이 트레이싱을 지원하나요?

    레이 트레이싱 시스템 요구 사항에 대한 자세한 정보는 리얼타임 레이 트레이싱 문서를 참조하세요.

그래도 문제가 해결되지 않으면, 다음 단계를 시도하세요.

GPU 타임아웃 비활성화하기

아래의 정보가 GPU 타임아웃을 피하거나 줄이는 데 도움이 될 수 있지만, 렌더링 시 타임아웃 문제가 발생하거나 엔진이 충돌하는 경우에만 적용해야 합니다.

콘솔 명령 r.D3D12.GPUTimeout 은 엔진 종료의 원인이 될 수 있는 GPU 타임아웃을 활성화할지 비활성화할지 설정합니다.

  • 0 GPU 타임아웃을 비활성화합니다. PC가 정지할 수 있으므로 극도로 주의해서 사용해야 합니다.

  • 1 GPU 타임아웃을 활성화합니다. 디폴트 설정으로서, GPU에서 작업 완료에 시간이 너무 오래 걸리면 에디터가 종료됩니다.

전체 시스템이 아니라 프로젝트에만 적용할 것이므로 건축 시각화 인테리어 샘플 프로젝트를 다운로드한 뒤 언리얼 엔진이 종료된 상태에서 이 단계를 진행하세요.

  1. 언리얼 엔진이 종료된 상태에서 프로젝트 Config 폴더 로 이동합니다. 예: D:\ue_local_project_Epic_official_demo\ArchVizInterior\Config

  2. 텍스트 에디터에서 ConsoleVariable.ini 파일을 연 다음, 파일 맨 아래로 스크롤하여 끝에 다음 두 줄을 추가합니다.

    ; disable GPU Timeout

    r.D3D12.GPUTimeout=0

    첫 번째 줄은 콘솔 변수의 목적을 상기시켜 주는 코멘트입니다. 두 번째 줄은 의도한 값이 있는 실제 콘솔 변수입니다.

  3. 파일을 저장 합니다. 오버라이드할지 묻는 메시지가 표시되면 확인(OK) 을 클릭합니다. 텍스트 에디터를 닫습니다.

  4. 엔진을 실행하고 건축 시각화 프로젝트를 로드합니다. 이제 GPU 타임아웃 콘솔 변수가 적용됩니다.

직접 실습해 보세요!

무비 렌더 큐의 기본 워크플로를 배웠지만, 여기서 사용한 세팅은 시작에 불과합니다. 아래에 직접 실습해 볼 만한 몇 가지 세팅이 나와 있습니다.

로컬 렌더링 대 원격 렌더링

10단계: 최종 출력 및 결과에서는 렌더를 로컬로 출력했습니다. 이 메서드는 고퀄리티 결과를 제공하면서도 프리뷰에 좋습니다. 그렇지만, 원격 렌더링을 사용하면 프로세스 중에 언리얼 에디터 렌더 코드를 실행하지 않습니다.

렌더 팜에 액세스할 수 있는 경우, 렌더(원격) 명령을 자체적으로 처리하여 작업을 렌더 팜으로 전송할 수 있습니다. 현재 언리얼 엔진은 기존 타사 렌더 팜 소프트웨어를 지원하지 않습니다. 언리얼 엔진 4.25에서는 현재 C++를 사용하여 새로운 구현을 작성해야 합니다. 조만간 Python으로 구현을 작성할 수 있는 지원을 추가할 예정입니다.

템포럴 샘플링 및 노이즈 제거 툴

이미지 프로세싱에서 안티 에일리어싱을 처리하기 위한 템포럴 샘플링 접근 방식은 두 가지입니다.

에디터에서 실시간으로 작업할 때는 특정 리얼타임 안티 에일리어싱 기법인 템포럴 안티 에일리어싱(Temporal Anti-Aliasing, TAA) 을 사용합니다. 이 방식은 카메라가 정말 빠르게 이동하거나 오브젝트가 아주 디테일한 머티리얼을 가로질러 지나갈 때 고스팅이나 노이즈 아티팩트가 발생하는 등의 단점이 있어, 고퀄리티 이미지 출력에는 적합하지 않습니다.

대신, 템포럴 샘플링(Temporal Sampling) 을 사용할 수 있습니다. 이 방법은 TAA 기법과 비슷하지만, 실제 렌더 데이터를 사용하여 이미지를 안티 에일리어싱합니다. 리얼타임 TAA의 문제점을 해결하지만, 더 좋은 결과를 생성하기 위해 더 많은 샘플을 사용하므로 프로세스 속도가 훨씬 느립니다. 예를 들어, 8배의 샘플을 사용하면, 리얼타임 TAA 프로세스보다 8배의 시간이 걸립니다.

다른 측면은 레이 트레이싱이 여러 기능에 다양한 노이즈 제거 툴을 사용한다는 것입니다. 더 적은 샘플을 사용하지만, 블러와 스무딩으로 샘플을 부드럽게 만들어 더 많은 샘플을 사용한 것과 같은 결과를 생성합니다. 무비 렌더 큐를 사용할 때는 리얼타임 퍼포먼스에 신경 쓰지 않기 때문에 노이즈 제거 툴을 비활성화하고 더 많은 샘플을 사용하여 물리적으로 더 정확한 결과를 생성할 수 있습니다.

이 점을 염두에 두고 콘솔 변수 목록에 다음과 같은 노이즈 제거 툴을 추가하여 레이 트레이싱 기능과 함께 무비 렌더 큐를 사용할 때 해당 툴을 비활성화할 수 있습니다.

  • r.AmbientOcclusion.Denoiser: 0

  • r.DiffuseIndirect.Denoiser: 0

  • r.RayTracing.SkyLight.Denoiser: 0

  • r.Reflections.Denoiser: 0

  • r.Shadow.Denoiser: 0

  • r.RayTracing.GlobalIllumination.Denoiser: 0

환경설정 세팅(Configuration Settings) 대화창에서 안티 에일리어싱 메서드(Anti Aliasing Method)없음(None) 으로 설정하여 TAA를 비활성화한 경우, 콘솔 변수에서 노이즈 제거 툴을 비활성화할 때 샘플의 템포럴 축적을 끄는 것도 좋은 생각입니다. 직접 무비 렌더 큐를 테스트할 때 다음과 같은 항목을 살펴보시기 바랍니다.

  • r.AmbientOcclusion.Denoiser.TemporalAccumulation: 0

  • r.GlobalIllumination.Denoiser.TemporalAccumulation: 0

  • r.Reflections.Denoiser.TemporalAccumulation: 0

  • r.Shadow.Denoiser.TemporalAccumulation: 0

추가 레이 트레이싱 콘솔 명령

많은 레이 트레이싱 기능의 값은 실시간 사용에 최적화되어 있습니다. 즉, 최대 바운스가 제한되거나 퍼포먼스를 위해 퀄리티를 희생하는 기타 세팅이 적용된 적은 수의 샘플을 사용합니다.

다음은 무비 렌더 큐에서 퀄리티를 위해 퍼포먼스를 희생하는 데 사용할 수 있는 추가 콘솔 변수입니다. 이러한 콘솔 변수는 큐에서 렌더가 실행될 때만 해당 명령이 실행되므로 특히 유용하며, 이 세팅은 에디터의 포스트 프로세스 볼륨에 설정했을 수 있는 어떠한 리얼타임 세팅도 영구적으로 오버라이드하지 않습니다.

픽셀당 샘플(Samples Per Pixel): 각 레이 트레이싱 기능은 최종 결과를 생성하기 위해 적은 샘플을 사용하기도 하고 많은 샘플을 사용하기도 합니다. 노이즈 제거 툴은 더 적은 픽셀을 사용하며 종종 부하가 큰 작업을 처리하는 데 사용됩니다. 무비 렌더 큐를 사용하면 노이즈 제거 툴을 비활성화하고 픽셀당 샘플 수를 늘려 퀄리티를 향상할 수 있습니다.

일부 예는 다음과 같습니다.

  • r.RayTracing.Reflections.SamplesPerPixel

  • r.RayTracing.Shadow.SamplesPerPixel

  • r.RayTracing.GlobalIllumination.SamplesPerPixel

최대 바운스 수(Maximum Number of Bounces): 리플렉션, 글로벌 일루미네이션 및 클리어 코트 같은 레이 트레이싱 기능의 장점은 씬에서 여러 번의 라이트 바운스나 리플렉션으로 더 자연스럽고 고퀄리티의 결과를 생성한다는 것입니다. 이러한 세팅은 리얼타임 렌더링에서는 극도로 비용이 많이 듭니다.

  • r.RayTracing.GlobalIllumination.MaxBounces

  • r.RayTracing.Reflections.MaxBounces

  • r.RayTracing.Reflections.MaxUnderCoatBounces

스카이 라이트(Sky Light): 리얼타임 레이 트레이싱에서 리플렉션 및 글로벌 일루미네이션 같은 기능에 대해 각 프레임을 계산할 때 스카이 라이트의 무한한 거리로 인해 추가 비용이 들 수 있습니다.

무비 렌더 큐로 작업할 때 다음 콘솔 변수를 사용하여 레이 트레이싱에서 추가 스카이 라이트 옵션을 활성화할 수 있습니다.

  • r.RayTracing.GlobalIllumination.EvalSkyLight

  • r.RayTracing.SkyLight.EnableTwoSidedGeometry

  • r.RayTracing.Reflections.RayTraceSkyLightContribution

  • r.RayTracing.SkyLight.EnableMaterials

이는 사용할 수 있는 콘솔 변수의 일부일 뿐입니다. 콘솔 창을 열고 r.RayTracing 을 입력하면 사용할 수 있는 다른 변수 목록을 확인할 수 있습니다.

언리얼 엔진의 이전 버전을 위해 작성된 페이지입니다. 현재 언리얼 엔진 5 버전을 위해 업데이트되지 않았습니다.