Upload
sampo-lappalainen
View
719
Download
1
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
더빠른컨텐츠제작과초당프레임성능향상: Umbra 3
Sampo Lappalainen수석엔지니어
Agenda
• 엄브라와가시성 (Visibility) 소개
• Case study: Witcher 3
• Case study: Quantum Break
• Case study: Destiny
UMBRA 3를사용한타이틀
OCCLUSION CULLING도대체무엇이길래…?
occlusion culling에대한다른접근
• PVS
• GPU 렌더링
• Portals 그리고 Cells
• 단순화된 occluder rasterization (레스터)
• UMBRA
UMBRA 3 OVERVIEW
POLYGON SOU
P
OCCLUSION DA
TA
VISIBLE OBJEC
TS
POLYGON SOUP
VOXELS
CELLS AND PORTALS
VISIBILITY QUERY
RASTERIZE PORTAL
GRAPH
DEPTH BUFFER
뭐하러돈주고사서쓰나?
+ 엔지니어와아티스트의시간절약
+ 사용하기쉽다
+ 이동
+ 검증된기술
+ 기술지원
• 엔지니어들은작업과정에서화를덜내게된다. ^^;
WITCHER 3
CASE STUDY
THE WITCHER 3 요구사항들
• 방대한오픈월드→ PVS, 수동작업은상상도할수없음.
• UMBRA는자동
• STREAMING
• LODs
POLYGON SOU
P
OCCLUSION DA
TA
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
STREAMING IN UMBRA 3
VISIBLE OBJEC
TS
COMBINED DAT
A
STREAMING CHALLENGES
• 독립적인 BLOCKS
• BORDERS에서맞추기
• 빨리빨리!
LODs IN UMBRA 3
• 기존방식: 싱글오브젝트의인스턴스들이씬을구성
• 문제점:
– 여러개의 LOD LEVEL이필요
– 레벨들간의 SELF-OCCLUSION
– LOD HIERARCHIES?
LODs 해결DISTANCE RANGE
LOD 0
LOD 1
LOD 2
LOD 3
Z = 0 Z = LIKE, A LOT
(OCCLUDER)
LOD CHALLENGES
• LOD DISTANCE SCALING
• DISTANCE REFERENCE POINT
• 다른 LOD SELECTION에적용되는조건들
• 더똑똑한 LOD OCCLUDERS
QUANTUM BREAK
CASE STUDY
Case study: Quantum break
• Xbox용 3인칭액션게임 (Max Payne &Alan Wake 제작자)
• 업계에서저명한그래픽팀에서개발한자체 3D엔진사용
• 각각의 View에나오는평군오브젝트는기본 4만개부 (occlusion 없음)
• 대규모폭파와 semi dynamic한지오매트리사용
• 기존의 GPU occlusion query를사용하고있었음.
Semi-dynamic scene changes• 대부분 static한 요소에서의
대규모스케일변화– 기물파괴
– 다른시간대에서보여주는각각의씬버전
• 해결방안– 가시성데이터는각씬의데이터
블럭내에서빌드와저장이이루어짐
– 여러버전의 데이터블럭은각각의다이나믹스테이트에저장
– 활성화된가시성데이터블럭은런타임에연동
Shadow caster culling
• OCCLUDED SHADOW를 캐스트하는쉐도우캐스터는렌더링하지않음.
• OCLLUSION BUFFER 를다시 RE-PROJECT 하여 RECEIVER MASK를 생성할수있는 LIGHT SPACE 만들기.
• RECEIVER MASK에 대응하는 SHADOW CASTER 테스트
DESTINY
CASE STUDY
Case Study: Destiny
• Bungie가제작한자체엔진 (cross-platform)
• 2014년에현재/기존콘솔에출시
• 2009년부터 Umbra와협업
• 기존작업방식은수작업으로포털과 BSP 씬작업
• Umbra visibility data 사용처는…– Game play cluster definition
– Spatial connectivity
– Audio occlusion
– Global illumination acceleration
Incremental content updates
• 임의의폴리곤풀을 preprocess하기위한요건– 3km x 3km map
– Full rebuild: 5 minutes
– 최소의업데이트증가 : 10 seconds
• Umbra의계산방식은작은점들의테스크들이농장을이루는것과비슷하다; 그래프형식으로표현
• 각태스크의결과물은공유된저장소에 cache된다.
• 로컬에있는 occlusion data에따라서독립적인업데이트도가능
Culling with predicted camera• 카메라업데이트병행해서가시성처리→ 가시성쿼리가시작될때에는정확한카메라위치는파악되지않는다.
• Umbra 3는 “camera prediction radius” 를제공하여보수적인관점의 “ from-region”쿼리를제공한다.
• 모든 occluder는최종결과물의양에따라축소된다.
Dynamic changes in visibility
• 닫힌문, 셔터달린문등은훌륭한 Occluder
들이다. 단, 그것들이닫혀있을때만그러하다.
• 가시성그래프결점은런타임에링크를활성화하는것을돕는다.
• Umbra 3 는일반적인 “gate” 오브젝트가런타임에서 On/Off로전환되는것을지원한다.
Thank you.For more on Umbra 3, go to umbra3.com
Follow us on Twitter @umbrasoftware