드래곤하운드 gdc 2019 데모분석과포스트모템

58
언리얼 엔진 4.22 RTX 드래곤하운드 GDC 2019 데모 분석과 포스트모템 그리고 NVIDIA DLSS

Upload: others

Post on 16-Apr-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 드래곤하운드 GDC 2019 데모분석과포스트모템

언리얼엔진 4.22 RTX드래곤하운드 GDC 2019 데모 분석과 포스트모템

그리고 NVIDIA DLSS

Page 2: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Rendering�Equation

Ray Origin𝐿 𝜔# = 𝐿% 𝜔# + '(𝐿 𝜔) 𝑓 𝜔#, 𝜔) |𝜔) - 𝑛|𝑑𝜔)

https://en.wikipedia.org/wiki/Rendering_equation

Page 3: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

RAYTRACING

● 특정위치/방향에서뭐가보이나?

● 빛의이동을시뮬레이션

Ray Origin

Ray D

irecti

on

Hit ‘t’ = ~1.8

https://en.wikipedia.org/wiki/Ray_tracing_(graphics)

Page 4: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

RASTERIZATION

● 현재 Realtime�rendering�의 표준

● 3D�Primitive�->�Pixel

● 매우 빠른 HW�가속

● 수십년간 발전

● 고품질 그래픽을 위해 많은 꼼수

https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation

Page 5: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Modern�rendering�engine

Battlefield 1 by EA DICE

Page 6: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

RAYTRACING�or PATHTRACING

● Pathtracing :�Rendering�equation�을 Monte-carlo 방식으로 푸는 것

● Monte-carlo 란?�->�랜덤으로 여러번 샘플링하여 문제를 푸는 것

● 반구상위의 한 위치로 들어오는 모든 빛을 계산

● 직관적으로 Global�Illumination�/�Soft�Shadow�등을 자연적으로 시뮬레이션

● 높은 퀄리티를 위해 Pixel�당 수천개의 Ray�필요● 실시간 Path�tracing?�->�NO

● 실제로관심있는것

● Raytracing 을이용하여기존렌더링효과의품질을향상혹은성능개선Ray Origin

Page 7: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

HYBRID�RENDERING

Screenspace Reflection Shadowmap Screnspace AO Lightmap / Probe GI

Raytracing 으로더좋아질수있다!

Raytraced Reflection / Shadow / AO / GI

Page 8: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

BVH

Page 9: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

SHADER�TABLE

Page 10: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

● Streaming multi processor● Raygen/Closest/Miss/Anihit shader�실행

● RTCore● Ray�Traversal

● RayGeneration shader● ClosestHit shader● Miss shader● Anyhit shader

RAY�DISPATCH

Page 11: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

DENOISER● RTCore 자체는 굉장히 빠름

● 수백만개의 프레임당 Ray�가능

● Glossy�Reflection�/�Soft�shadow● 높은 퀄리티를 위해서는 Pixel�당 수천개의 Ray�가 필요함

● 현실적으로 Pixel�당 1�개 이하의 ray�● Denoiser�가 필요함

● Gameworks Denoiser�/�Epic�자체 Denoiser● 실시간 Raytracing�의 가장 중요한 요소중 하나

Page 12: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

REFLECTION

● SSR 에 비해

● 보이지 않는 물체에 대한 처리가 정확

● Mirror�reflection

● Glossy reflection

● Multi bounce Ray Traced Reflections, 1spp Denoised

Page 13: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

1spp Ray Traced Reflections

Page 14: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

1spp Ray Traced Reflections + Denoising

Page 15: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Ground Truth

Page 16: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

SHADOW

● Area�light�shadow

● 고품질의 Soft�shadow

● Pixel�당 1�Ray

● Sun�light�shadow

● Open world 에서는 Shadow map 에 비해 성능우위 가능성

● Pixel 당 Geometry 복잡도가 높은 경우는 Raytracing 이 Rasterization 에 비해 유리● Material evaluation 이 필요 없기 때문에 RT core 활용률이 높다!

Ray Traced Shadows, 1spp Denoised

Page 17: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

1spp Ray Traced Shadows

Page 18: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

1spp Ray Traced Shadows + Denoising

Page 19: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Ray Traced Shadow Ground Truth

Page 20: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

AMBIENT�OCCLUSION

● SSAO�에 비해

● 보이지 않는 물체에 대한 처리

● 보다 먼거리 차폐 검사

● Pixel�당 2ray

Ray Traced Ambient Occlusion, 2spp Denoised

Page 21: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019Ambient Occlusion with 2spp

Page 22: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019Ambient Occlusion 2spp Denoised

Page 23: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019Ambient Occlusion Ground Truth

Page 24: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Global�Illumination

Lightmap● Lightmap

● Irradiance�volume�(�Probe�)

Page 25: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

GI(METRO�EXODUS)

● Screenspace 에서

● Temporal Monte-carlo Ray Accumulation● Hit shader 에서 실제 Material evaluation 하지 않음● 오브젝트의평균 Albedo 값을대신사용● Noise 줄어듬● Texture read/Shader 실행줄어듬● 실제사용가능한성능

4A and NVIDIA - Exploring Raytraced Future in Metro Exodus

Page 26: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Page 27: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Page 28: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

GI(NVIDIA?)● 전통적인Probe(Irradiance�volume)�방식

● Probe 방식의 단점인 Light leak

● Probe 당 VSM shadow map 으로 해결

● VSM 생성을 Raytracing 으로 하게 되어 Realtime 이 가능해짐!

● Pixel당 Geometry 복잡도가높으면 Raytracing 이 Raster 보다유리

● Probe Occlusion 을위한 VSM 은매우저해상도

● RTX 그래픽카드에서 1ms 로 GI 처리

R11G11B10F Irradiance RG16F Depth: (radius, radius2)

4A and NVIDIA - Exploring Raytraced Future in Metro Exodus

Page 29: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

GI

● Raytraced Reflection / Shadow는퀄리티향상

● Raytraced GI 가일반화된다면

● 게임제작프로세스단순화

● 동적인시간/날씨변화를쉽게구현

● 게임제작패러다임의변화

● UE4 에도 Raytracing GI 기능

Page 30: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

DRAGONHOUND�GDC/GTC�DEMO

● Nexon devcat 이 개발중인 액션 RPG

● GDC�Demo/GTC�Keynote

● UE4�4.22�Preview�기반

● Raytracing Reflection/Shadow 사용

● 향후 AmbientOcclusion/GI/Caustics�등 사용 계획

Page 31: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Demo

Page 32: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Performance�Issues

● BVH 부하

● Ray Divergence

● BVH Missing bug

● ALPHA TRIANGLE

● Light culling

● Half resolution reflection

Page 33: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(BVH)

● 너무 많은 Static�mesh

● Drawcall 많아짐

● TLAS Traversal 부하

● Devcat 의 애셋 최적화● Ray treversal 부하인 경우에만

● 많은 경우 Tex/SM Occupancy 등이 원인

Page 34: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Ray�Divergence)

● 높은 Rougness

● 인접한 Ray 의 방향이 분산됨

● 하나의 SM 에서 Evaluation 해야 할Material 이 많아짐

● Too many hit shaders -> SM Warp Occupancy 낮아짐

● Instruction cache thrashing

● Random Texture Read -> L2 Cache hit ratio 낮아짐

Physics and Math of Shading(Natty Hoffman)

Page 35: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Reflection�Multi�bounce)● Multiple bounce

● 퀄리티를 위해 3 bounce 까지 요구● Ray divergence 유발● PostProcessVolume 에서 씬

복잡도에 따라 1 ~3 유동적으로사용

● 최종 데모에서는 퀄리티를 위해 2 bounce 로 고정

● 메모리 최적화로 충분한 퍼포먼스 확보

● 일반적으로는 1 bounce 추천Physics and Math of Shading(Natty Hoffman)

Page 36: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Reflection�Shadow�Ray�)

● 반사되는 물체에도 그림자가 드리워져야 한다.

● Shadow ray 를 사용 -> 역시 Ray divergence 유발

● BFV 에서는 Reflection Raytracing 에서 Shadowmap 사용

● UE4 에서도 구현할만한 최적화

Page 37: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Sort�Optimzation)● 실제 Reflection Pass 실행전에 별도 패스

● Hit Material buffer 에 hit 된 material id 기록

● 16x16, 64x64 등의 tile 단위에서 material sorting

● 실제 reflection ray 는 Sorting 된 순서대로 TraceRay!

● Coherency 가 올라감!

● 4.22 버전에 포함됨

● r.RayTracing.Reflections.SortMaterials 1● 높은 Rougness / 1 bounce / No Shadow ray 인 경우 성능 향상 큼!

1 223 2 5

25 2 1

12 4 5

41 2 3 1 222 2 2

42 3 3

54 5 5

21 1 1

Hit Material ID Ray launch order

Page 38: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Shadow�DisableMaterial)● Material evaluation 이 없는 Shadow ray 는 원래 빠름

● Shadow 에 Alpha 를 고려하게 되면?

● Reflection 처럼 느려짐

● Disable Shadow Materials

● Shadow ray 에서 hit Shader 실행 X● r.RayTracing.Shadows.EnableMaterials 0

Page 39: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Alpha�triangle)● Masked Material / Particle 등

● 레이트레이싱에서도 느리다

● Anyhit shader 가 실행됨● RTCore Interrupt● 더 많은 Material evaluation

● Ray divergence !● Force OPAQUE

● BFV 에서 사용한 방식● 부정확하지만 크게 눈에 띄지 않음● 오브젝트 별로 셋팅 가능

Page 40: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Light�culling)

● 반사되는 물체에서도 라이팅 계산은 필요함.

● UE4 는 Reflection 에서 라이팅 계산을 for loop 에서 하고 있었음● Scene 에 있는 모든 라이트

● Radius 와 Atteunation 을 고려하여 cull

● 라이트가 많은 장면에서 5~10 fps 빨라짐

● 일반 Deferred/Forward 렌더러는 tiled/clustered 등의 효율적인 culling

● 향후 최적화 여지 있음● RT Reflection 부하가 큰 Scene 에서는 Light 개수 관리에 유의 필요

Page 41: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(MEMORY)

● Multi bounce 사용 등으로 L2 메모리 접근량이 많음

● 런타임 메모리 압축 관련 Cache trashing

● 드라이버 최적화!

● 모든 상황에서 20% 이상 성능 향상● 2 sample reflection/2 bounce 등이 가능해짐(+DLSS)

● GPU 분석/최적화의 중요성!

Page 42: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

OPTIMIZATION(Half�Resolution)

● UE4 는 Reflection 을 Half resolution 에서 처리 가능

● 당시 UE4 4.22 Preview 버전은 50% 에서 Temporal noise

● TAA 를 위해 Gbuffer 렌더링시 jitter

● Ray direction 에 노이즈

● 50% 이하 해상도에서 심함

● Dragonhound GDC DEMO 는 100% 를 사용

● 드라이버최적화/DLSS 사용으로성능확보● 향후노이즈문제가해결되면매우큰성능향상가능

Page 43: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

BVH�Bug• BVH 에 랜덤하게 일정 비율의 Static Mesh 가

빠지는 버그• Dev-rendering 브랜치에서 발생• UE4 4.22 pre-view 까지 고쳐지지 않음• 원인

• BVH 생성시과 SceneProxy 생성이 멀티스레드에서동시에 실행될 가능성

• Proxy 가 가지고 있는 BVH 오브젝트포인터 NULL• 두 코드 실행을 한스레드에서 동기화하여 해결

• Epic 에 Notice!

Page 44: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Final�Raytracing�Configuration

● r.raytracing.reflections.screenpercentage 100

● r.Raytracing.Reflections.SamplesperPixel 2

● r.Raytracing.Reflections.MaxBounces 2

● r.RayTacing.Reflections.SortMaterials 1

● r.RayTracing.Shadows.EnableMaterials 0

● DLSS�80%

● FHD�60fps�가능하였지만,�퀄리티를 높여 FHD�30fps�로 DEMO!

Page 45: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

GEFORCE�RTX

Turing SM

RT Cores

Tensor Cores

New Architecture

Real-time Ray Tracing

Accelerated AI

Page 46: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Raytracing�GPU

Page 47: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

SW�Raytracing

● Pascal/Volta 등에서 SW�Raytracing

● 많은 Ray�를 쓰는 효과● HWRT�에서

● 적은 수의 Ray를 쓰는 효과

● SWRT�에서도 가능

DX12

Windows 10 RS5

RTXon1920x1080

SWRTGTX 1060 6GB 2.2GTX 1080 5.3GTX 1080 TI 7.6

No support to SWRT

GTX 1650 100.6

SWRT GTX 1660 7.6GTX 1660 TI 8.2

HWRT

RTX 2060 23.7RTX 2070 25.9RTX 2080 36.6RTX 2080 TI 42.1TITAN RTX 46.5Analysis

RTX 2080 / GTX 1080 TI (%) 381.6RTX 2070 / GTX 1080 (%) 385.9

Page 48: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Realtime Raytracing�은이미현실

● 타사/콘솔에서도지원할것

● 막연하게느릴것이다라고생각 -> NO

● 기존렌더링테크닉퀄리티개선/성능향상측면에서보자

● 이제시작일뿐이며퀄리티/성능에서발전가능성이많이남아있음

● UE4 를쓰면복잡한구현없이바로 Raytracing 사용가능!

Page 49: 드래곤하운드 GDC 2019 데모분석과포스트모템

DLSS

Page 50: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Deep Learning Super SamplingWhat�is�it?● 게임 그래픽 향상을 위한 실시간 딥러닝 기술

● 고화질 그래픽스 게임의 경험향상● 그래픽 화질 개선을 위한 딥러닝 활용● 게임 출시 후 지속적인 학습으로 인한 화질 개선● 새로운 학습 모델 연구

● DL의 실시간 게임그래픽스 적용의 첫 사례● 픽셀양의 지속적 증가에 대한 GPU�부담 경감

Page 51: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Advantages of DLSS• 10~50%의 FPS�향상

• 장면/해상도에 따라 다름• 성능-화질의 tradeoff

• NGX sdk를 통해 코드 수정 없이 지속적 개선/update가능• 고정 비용의 DNN 추론

• 학습을 통해서 weight값을 향상• 고정비용의 post-processing

Page 52: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Deep Learning Super Sampling

Low Resolution Final Resolution

Engine Rendering

Post Processing

Page 53: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Training Overview

1spp color

1spp motion

Target64spp

Page 54: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

DLSS Lifecycle

TrainBuild Dataset QA Release

Bug

Evaluate

Enhance Training

Enhance Data

Fix

Game Code Fix

Data Fix

Capture Data from Game

Page 55: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019 Research by Jon Hasselgren and Jacob Munkberg, NVIDIA

Input (1spp)

Page 56: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

1Kspp Reference vs. DL-based

Research by Jon Hasselgren and Jacob Munkberg, NVIDIA

Page 57: 드래곤하운드 GDC 2019 데모분석과포스트모템

UNREAL SUMMIT 2019

Summary● DLSS

● Graphics�pipeline�에적용한실시간 deep�learning의최초시도● DL network의지속적인학습을통한성능/화질개선● 고품질Network 학습을위한Dataset capture● 학습/추론구현을위한개발사-NVIDIA와협업

Page 58: 드래곤하운드 GDC 2019 데모분석과포스트모템

Thank youQnA