39
더 빠른 컨텐츠 제작과 초당 프레임 성능 향상: Umbra 3 Sampo Lappalainen 수석 엔지니어

Kgc2014 엄브라(umbra)

Embed Size (px)

DESCRIPTION

A presentation I gave at KGC 2014 in November 2014. I introduce Umbra 3 and go through three customer use cases that show the sort of development we've done with some of our partners. I cover Witcher 3 (CD Projekt RED), Quantum Break (Remedy Entertainment) and Destiny (Bungie).

Citation preview

Page 1: Kgc2014 엄브라(umbra)

더빠른컨텐츠제작과초당프레임성능향상: Umbra 3

Sampo Lappalainen수석엔지니어

Page 2: Kgc2014 엄브라(umbra)

Agenda

• 엄브라와가시성 (Visibility) 소개

• Case study: Witcher 3

• Case study: Quantum Break

• Case study: Destiny

Page 3: Kgc2014 엄브라(umbra)

UMBRA 3를사용한타이틀

Page 4: Kgc2014 엄브라(umbra)
Page 5: Kgc2014 엄브라(umbra)
Page 6: Kgc2014 엄브라(umbra)
Page 7: Kgc2014 엄브라(umbra)
Page 8: Kgc2014 엄브라(umbra)

OCCLUSION CULLING도대체무엇이길래…?

Page 9: Kgc2014 엄브라(umbra)
Page 10: Kgc2014 엄브라(umbra)

occlusion culling에대한다른접근

• PVS

• GPU 렌더링

• Portals 그리고 Cells

• 단순화된 occluder rasterization (레스터)

• UMBRA

Page 11: Kgc2014 엄브라(umbra)

UMBRA 3 OVERVIEW

POLYGON SOU

P

OCCLUSION DA

TA

VISIBLE OBJEC

TS

Page 12: Kgc2014 엄브라(umbra)

POLYGON SOUP

Page 13: Kgc2014 엄브라(umbra)

VOXELS

Page 14: Kgc2014 엄브라(umbra)

CELLS AND PORTALS

Page 15: Kgc2014 엄브라(umbra)

VISIBILITY QUERY

RASTERIZE PORTAL

GRAPH

Page 16: Kgc2014 엄브라(umbra)

DEPTH BUFFER

Page 17: Kgc2014 엄브라(umbra)

뭐하러돈주고사서쓰나?

+ 엔지니어와아티스트의시간절약

+ 사용하기쉽다

+ 이동

+ 검증된기술

+ 기술지원

• 엔지니어들은작업과정에서화를덜내게된다. ^^;

Page 18: Kgc2014 엄브라(umbra)

WITCHER 3

CASE STUDY

Page 19: Kgc2014 엄브라(umbra)

THE WITCHER 3 요구사항들

• 방대한오픈월드→ PVS, 수동작업은상상도할수없음.

• UMBRA는자동

• STREAMING

• LODs

Page 20: Kgc2014 엄브라(umbra)

POLYGON SOU

P

OCCLUSION DA

TA

Page 21: Kgc2014 엄브라(umbra)
Page 22: Kgc2014 엄브라(umbra)

STREAMING IN UMBRA 3

Page 23: Kgc2014 엄브라(umbra)

STREAMING IN UMBRA 3

Page 24: Kgc2014 엄브라(umbra)

STREAMING IN UMBRA 3

Page 25: Kgc2014 엄브라(umbra)

STREAMING IN UMBRA 3

VISIBLE OBJEC

TS

COMBINED DAT

A

Page 26: Kgc2014 엄브라(umbra)

STREAMING CHALLENGES

• 독립적인 BLOCKS

• BORDERS에서맞추기

• 빨리빨리!

Page 27: Kgc2014 엄브라(umbra)

LODs IN UMBRA 3

• 기존방식: 싱글오브젝트의인스턴스들이씬을구성

• 문제점:

– 여러개의 LOD LEVEL이필요

– 레벨들간의 SELF-OCCLUSION

– LOD HIERARCHIES?

Page 28: Kgc2014 엄브라(umbra)

LODs 해결DISTANCE RANGE

LOD 0

LOD 1

LOD 2

LOD 3

Z = 0 Z = LIKE, A LOT

(OCCLUDER)

Page 29: Kgc2014 엄브라(umbra)

LOD CHALLENGES

• LOD DISTANCE SCALING

• DISTANCE REFERENCE POINT

• 다른 LOD SELECTION에적용되는조건들

• 더똑똑한 LOD OCCLUDERS

Page 30: Kgc2014 엄브라(umbra)

QUANTUM BREAK

CASE STUDY

Page 31: Kgc2014 엄브라(umbra)

Case study: Quantum break

• Xbox용 3인칭액션게임 (Max Payne &Alan Wake 제작자)

• 업계에서저명한그래픽팀에서개발한자체 3D엔진사용

• 각각의 View에나오는평군오브젝트는기본 4만개부 (occlusion 없음)

• 대규모폭파와 semi dynamic한지오매트리사용

• 기존의 GPU occlusion query를사용하고있었음.

Page 32: Kgc2014 엄브라(umbra)

Semi-dynamic scene changes• 대부분 static한 요소에서의

대규모스케일변화– 기물파괴

– 다른시간대에서보여주는각각의씬버전

• 해결방안– 가시성데이터는각씬의데이터

블럭내에서빌드와저장이이루어짐

– 여러버전의 데이터블럭은각각의다이나믹스테이트에저장

– 활성화된가시성데이터블럭은런타임에연동

Page 33: Kgc2014 엄브라(umbra)

Shadow caster culling

• OCCLUDED SHADOW를 캐스트하는쉐도우캐스터는렌더링하지않음.

• OCLLUSION BUFFER 를다시 RE-PROJECT 하여 RECEIVER MASK를 생성할수있는 LIGHT SPACE 만들기.

• RECEIVER MASK에 대응하는 SHADOW CASTER 테스트

Page 34: Kgc2014 엄브라(umbra)

DESTINY

CASE STUDY

Page 35: Kgc2014 엄브라(umbra)

Case Study: Destiny

• Bungie가제작한자체엔진 (cross-platform)

• 2014년에현재/기존콘솔에출시

• 2009년부터 Umbra와협업

• 기존작업방식은수작업으로포털과 BSP 씬작업

• Umbra visibility data 사용처는…– Game play cluster definition

– Spatial connectivity

– Audio occlusion

– Global illumination acceleration

Page 36: Kgc2014 엄브라(umbra)

Incremental content updates

• 임의의폴리곤풀을 preprocess하기위한요건– 3km x 3km map

– Full rebuild: 5 minutes

– 최소의업데이트증가 : 10 seconds

• Umbra의계산방식은작은점들의테스크들이농장을이루는것과비슷하다; 그래프형식으로표현

• 각태스크의결과물은공유된저장소에 cache된다.

• 로컬에있는 occlusion data에따라서독립적인업데이트도가능

Page 37: Kgc2014 엄브라(umbra)

Culling with predicted camera• 카메라업데이트병행해서가시성처리→ 가시성쿼리가시작될때에는정확한카메라위치는파악되지않는다.

• Umbra 3는 “camera prediction radius” 를제공하여보수적인관점의 “ from-region”쿼리를제공한다.

• 모든 occluder는최종결과물의양에따라축소된다.

Page 38: Kgc2014 엄브라(umbra)

Dynamic changes in visibility

• 닫힌문, 셔터달린문등은훌륭한 Occluder

들이다. 단, 그것들이닫혀있을때만그러하다.

• 가시성그래프결점은런타임에링크를활성화하는것을돕는다.

• Umbra 3 는일반적인 “gate” 오브젝트가런타임에서 On/Off로전환되는것을지원한다.

Page 39: Kgc2014 엄브라(umbra)

Thank you.For more on Umbra 3, go to umbra3.com

[email protected]

Follow us on Twitter @umbrasoftware