SlideShare uma empresa Scribd logo
1 de 96
넥슨 코리아 데브캣 스튜디오 드래곤하운드(프로젝트DH) 개발팀
리드 그래픽스 프로그래머
김혁 (hybrid@nexon.co.kr)
<드래곤 하운드>의
PBR과 레이트레이싱 렌더링 기법
목차
1. 파트 1 – 언리얼 엔진 4의 PBR과 레이트레이싱
2. 파트 2 – 드래곤 하운드의 PBR과 레이트레이싱
다룰 내용
• PBR과 레이트레이싱 반사
• 레이트레이싱 데모 제작 경험 공유
• 드래곤 하우드의 새 기능
다루지 않을 내용
• DirectX 12, DXR API
• 레이트레이싱 알고리즘
• RTShadow
• RTAO (raytraced ambient occlusion
• RTGI (raytraced global illumination)
Dragonhound: GeForce RTX Real-Time Ray Traced Reflections and Shadows - GDC 2019
https://www.youtube.com/watch?v=ncv5Oe5q5zs
들어가기 전
언리얼 엔진 4를 기준으로 합니다.
언리얼 엔진 4와 드래곤 하운드의 레이트레이싱 구현은
아직 실험 기능입니다.
들어가기 전
GDC 데모나 이 발표에 쓰인 리소스나 세팅은
현재 제작 단계이거나 임시 리소스로
출시 때 변경 될 수 있습니다
파트 1 – 언리얼 엔진4의
PBR과 레이트레이싱
1. 레이트레이싱이란?
2. 디퓨즈와 스페큘러
3. 스페큘러와 레이트레이싱
레이트레이싱이란?
레이트레이싱이란?
1. 레이와 가장 가까이 충돌하는 삼각형을 탐색
2. 그 삼각형의 무게중심좌표(barycentric coordinate)를 이용해서
쉐이딩에 필요한 정보를 얻음 (예, 보간된 버텍스 정보)
레이트레이싱 반사의 역할
• 레이트레이싱으로 모든 것을 렌더링? 아니다
• 래스터라이제이션(rasterization)으로 G버퍼를 생성하고
• 반사 부분만 레이트레이싱으로 수행한다 (디퍼드 렌더링과 hybrid)
• 레이트레이싱 이전에 이 부분을 담당했던 기술 – IBL, SSR
레이트레이싱 이전의 반사
• IBL (Image-Based Lighting)*
• 환경맵 형태로 구워둠 (Pre-Filtered Environment Map)
* Real Shading in Unreal Engine 4, Brian Karis (Epic Games), 2013
레이트레이싱
이전의 반사
• SSR (Screen-Space Reflections)
• 이미 렌더링한 화면에서 가져옴
• 화면 안이라는 제약을 제외하면
매우 훌륭한 퀄리티
그럼 레이트레이싱을 쓰면
뭐가 달라질까요?
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
BRDF (물체의 반사 특성)
사방에서 들어오는 빛
반사되어 나가는 빛
(예, 눈으로 들어오는 빛)
빛의 각도에 따라
달라지는 빛의 양
모든 빛에 대해 계산 후 적분(더함)
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
사방에서 들어오는 빛
직접광
간접광
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
직접광
간접광
디렉셔널 라이트
포인트 라이트
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
직접광
간접광
디렉셔널 라이트
포인트 라이트
디퓨즈
스페큘러
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
직접광
간접광
디렉셔널 라이트
포인트 라이트
디퓨즈
SH
라이트맵
스페큘러
렌더링 공식
2
( , ) ( , ) ( , )cosr r r i r i i i i
H
L x f x L x d     = →
직접광
간접광
디렉셔널 라이트
포인트 라이트
IBL
SSR
디퓨즈
SH
라이트맵
스페큘러
레이트레이싱 반사
BRDF (Bidirectional Reflectance Distribution Function)
금속의
스페큘러
비금속의
디퓨즈+스페큘러*
* Physics and Math of Shading , Naty Hoffman (2K), 2015
비금속과 금속
• 비금속 (메탈릭 0)
• 디퓨즈 – 베이스 컬러
• 스페큘러 - 흰색 0%~4%~8%
• 금속 (메탈릭 1)
• 디퓨즈 없음
• 스페큘러 - 베이스 컬러 (0%~100%)
• 비금속 (메탈릭 0)
• 디퓨즈 – 베이스 컬러
• 스페큘러 - 흰색 0%~4%~8%
반사율 100%
반사율 2%
프레넬 반사율
반사율 4%
반사율 ~100%
레이트레이싱 켬
레이트레이싱 끔
발표/시연을 위한 임시 리소스입니다
디퓨즈 스페큘러
발표/시연을 위한 임시 리소스입니다
미세면(Microfacet)과 러프니스
정반사
(specular reflection)
글로시
(glossy)
디퓨즈에 가까운
스페큘러
러프니스 >> 0러프니스 > 0러프니스 = 0
레이트레이싱 글로시 - 디노이저
• 글로시는 수십, 수백개 이상의 레이가 필요
• 실시간에서는 1개 혹은 몇 개의 레이를 사용 후
디노이저로 보완
• SSR (Screen-Space Reflections)도 비슷*
* Stochastic Screen-Space Reflections, Tomasz Stachowiak (Electronic Arts/Frostbite), 2015
디노이즈 전
디노이즈 후
디노이저 끔 디노이저 켬
요약
• 레이트레이싱 반사는 스페큘러만 다룬다
• 메탈릭(금속/비금속)은 반사율에 큰 영향을 준다
• 러프니스가 반사의 모양을 결정
• 중요한 요소는 글로시와 디노이저
파트 2 – 드래곤 하운드의
PBR과 레이트레이싱
1. 리소스 제작 팁
2. 반사 성능 최적화
3. 드래곤 하운드의 새 구현
드래곤 하운드의 레이트레이싱 히스토리
GDC 2018
DirectX Raytracing, RTX 등장
컴퓨트 쉐이더로
레이트레이싱 시험 구현
드래곤 하운드의 레이트레이싱 히스토리
DXR 샘플을 참고하여
직접 UE4에 포팅
에픽의 구현으로 이전
2.1 리소스 제작 팁
1. 반사 표현
2. 노말
3. 넌유니폼 스케일링 (non-uniform scaling)
4. 금속의 베이스 컬러
(1) 반사 표현
• 정반사(러프니스 0)인 물체는 별로 없다
• 거울, 크롬
• 자동차는 클리어 코트 (clear coat)
• 자연스러운 것은 글로시
스타워즈
스타워즈 Nubian royal starship
(1) 반사 표현
• 억지스러움은 테크 데모로 충분
• 자연스러우면 티가 안나고,
• 티가 나면 억지스럽다
• 반사상을 식별하게 하는 건 어려움
• 평면이 아닌 볼록이나 오목은
반사상이 잘 식별 되지 않는다
(1) 반사 표현
• IBL과 SSR은 사실 매우 훌륭한 기술
• 단순한 반사의 느낌을 위해서는 사실 레이트레이싱은 필요 없다
• 레이트레싱의 강점은 동적인 표현
반사 후 그림자
(2) 노말
• 러프니스가 0인 재질은 노말 텍스쳐가 매우 중요하고 가장 까다로움
• IBL/SSR과 달리 노말의 문제가 레이트레이싱에서 크게 나타남
구름이 일그러짐
반사 되는 상이 멀리
있을 수록
일그러짐이 심해짐
원인
같은 스무딩 그룹 노말맵 계산
노말맵 평면화를 사용하지 않으면 되나?
128, 128, 255
127, 127, 255
• 맥스에서 구운 평면 노말맵도
심하진 않지만 비슷한 문제 발생
• 하이폴리곤에서 만든 노말맵에
오차가 섞여 있다
해결 방법
• 노말맵의 의존도를 낮춘다
• 오차 없이 버텍스 노말만 사용
• FlattenNormal으로 노말맵의 의존도를 낮춤
• 필요하면 스무딩 그룹의 분리후 노말 텍스쳐를 수동으로 밀어줌
발표/시연을 위한 임시 리소스입니다
(3) 넌유니폼 스케일링 (non-uniform scaling)
• 넌유니폼 문제는 그래픽스에서 잘 알려진 문제
• 잘못된 노말로 반사 방향이 물체 뒤로 넘어간다
• 노말의 변환 행렬 계산을 제대로 해줘야한다
• 넌유니폼의 변환 행렬은 위치 버텍스의 계산과 다름
올바른 상황 잘못된 상황
반사 방향 오류
발표/시연을 위한 임시 리소스입니다
해결/우회 방법
1. 넌유니폼 스케일링을 쓰지 않음
2. 넌유니폼의 노말 변환을 제대로 계산하도록 엔진을 수정*
3. 넌유니폼 스케일링 된 메시를 유니폼으로 바꾸어 저장
(드래곤 하운드 GTC/GDC 데모에서는 이 방법을 사용)
* Normal Transformations by Jason L. McKesson
(4) 금속의 베이스 컬러
• 물리적으로 올바른 베이스 컬러를 사용하는 것은 매우 중요
• 비금속에서 베이스 컬러 = 디퓨즈 반사율
금속에서 베이스 컬러 = 스페큘러 반사율
• 드래곤 하운드에서는 (여러 이유로)
전반적인 베이스 컬러가 낮게 되어 있어서
적절하게 상향 조절
* 이미지: 언리얼 엔진 4 문서 – 물리기반 머티리얼
요약
• 레이트레이싱의 강점은 글로시와 동적 스페큘러
• 러프니스 0인 정반사는 주의가 필요하다
• 반사가 더 정확해지면서 노말의 중요도가 매우 높아졌다
2.2 반사 성능 최적화
1. 응집성 (coherence)
2. 레이 적게 쏘기
3. 래스터라이제이션 최적화
반사 성능 최적화
1. 응집성 (coherence)
2. 레이 적게 쏘기
3. 래스터라이제이션 최적화
응집성 (coherence)
응집성 높음 응집성 낮음
성능
>
응집성 (coherence)
• 개념만 알아도 도움이 됩니다
• 응집성이 낮으면,
• 레이 탐색이 느려진다
• 다수의 텍스쳐를 읽어야한다
• 쉐도우는 응집성이 높고, 반사는 응집성이 낮은 편
반사 성능 최적화
1. 응집성 (coherence)
2. 레이 적게 쏘기
3. 래스터라이제이션 최적화
레이 적게 쏘기
• (ㅁ) 반사 스크린 퍼센티지 낮추기 (100%->50%)
• (ㅁ) 반사 계산시 지정된 러프니스 보다 높으면 IBL을 사용
• 기본값 0.6으로 성능과 씬에 따라 조절 가능
• (ㅁ) 최대 반사 바운스 조절
• 반사 바운스 비주얼라이저
• 적응형 최대 러프니스
반사 바운스 비주얼라이저
• 러프니스가 바운스에 영향을 주고, 이건 성능으로 직결 된다
• 리플렉션이 되는 횟수를 색깔로 표현하는 비주얼라이저를 제작
• 필요 이상으로 트레이싱이 많이 되는 부분을 확인하여
러프니스를 조절
1 2 3
적응형 최대 러프니스 (Adaptive Max Roughness)
• 첫번째 반사에서는 최대 러프니스(Max Roughness) 보다 초과일 경우 IBL을 사용
• 두번째 반사에서는 이 기준을 반으로 줄임
세번째 반사는 또 그의 절반
• 예, 최대 러프니스 값이 0.6이라면 두번째 반사는 0.3, 세번째는 0.15
• 두번째 반사부터 이전 반사가 비금속일 경우 레이트레이싱 반사 가능성을 줄임
• 레이가 (뎁스버퍼 대비) 먼 곳에서 날아 왔으면 그 다음 반사 가능성을 줄임
적용 전 적용 후
적응형 최대 러프니스 (Adaptive Max Roughness)
• 적게 쏘니 당연히 성능 향상이 크다
많게는 3 ms ~10 ms
• 하지만 퀄리티 차이도 없을 순 없다
(차이를 최소화하기 위해 공식을 개선 중)
• 퀄리티보다 성능을 원할 때 사용
(아직은 대부분 성능이 더 필요하다)
9 ms 향상
적응형 최대 러프니스 (Adaptive Max Roughness)
• 전반적으로는 비슷하지만
암부의 디테일이 떨어진다
• 성능은 9 ms 향상
• 반사 대신 스페큘러 AO를
사용하면 비용을
줄일 수 있지 않을까?
적용 전 적용 후
반사 성능 최적화
1. 응집성 (coherence)
2. 레이 적게 쏘기
3. 래스터라이제이션 최적화
래스터라이제이션의 최적화
• 레이트레이싱이라고 래스터라이제이션의 최적화가 필요 없지 않다
• 반사 후 머티리얼/라이팅 계산은 포워드 쉐이딩과 같다
• 머티리얼 평가 비용(쉐이더 비용) 줄이기
• 텍스쳐 사용 줄이기
• LOD 적극 사용하기
• 레이트레이싱이 적용된 거리는 눈에 보이는 것보다 길다
요약
• 응집성(coherence)이 낮으면 성능 하락이 크다
• 그림자에 비해 반사의 응집성은 많이 낮은 편
• 반사 바운스가 높으면 응집성이 떨어지고 크게 성능이 하락한다
• 씬의 구성에 따라, 최대 러프니스, 최대 바운스, 반사 해상도 등을
조절하여 성능 향상을 얻을 수 있다
2.3 드래곤 하운드의 새 구현
1. 드래곤 하운드의 반투명 및 굴절
2. 스크린 스페이스 포톤 매핑
드래곤 하운드의
반투명 및 굴절
• 드래곤 하운드의 용은
몸에 용석이 달려 있다
• 용석은 크리스탈과 비슷
• 드래곤 하운드의
핵심 비주얼 중 하나
발표/시연을 위한 임시 리소스입니다
래스터라이제이션의 반투명
• 불투명만 G버퍼에 그림
• 반투명한 물체는 카메라 기준으로 정렬 후 드로우
• 스켈레탈 메시로 있는 용석은 전부 나누지 않는 이상 정렬 불가
• 다른 방법: Order-Independent Transparency
• OIT는 픽셀 안에서 정렬
• 툼 레이더의 헤어, 어센던트 원*
* 프로젝트 A1의 AAA급 캐릭터 렌더링 기술, 기현우, 2016
레이트레이싱 반투명 – 에픽의 방법
• 래스터라이제이션과 같은 형태로 반투명 물체를 제외한
불투명 물체만 G버퍼에 렌더링
• 레이트레이싱을 이용해서 순차적으로 드로우
반투명 물체는
G버퍼에 그리지 않음
G버퍼원본 메시
원하는 최종 결과 G버퍼
반투명을 포함해서
레이트레이싱
카메라 부터
G버퍼(뎁스 버퍼) 바로 앞까지만
반투명 물체에 닿으면
추가 레이트레이싱
드래곤 하운드의 방법
• 에픽의 구현은 범용적이고 일반적인 구현
• 드래곤 하운드에서는 속도를 위해서
모양이 명확한 물체에 특화 된 구현으로 변형
반투명 물체까지
G버퍼에 그림
G버퍼 (쉐이딩 모델 ID)원본 메시
쉐이딩 모델 ID 반사만 적용
쉐이딩 모델 ID를 이용
반투명 물체에 대해서만
레이트레이싱
발표/시연을 위한 임시 리소스입니다
성능
• 한 단계를 줄인 만큼은 당연히 빨라지고
• 한 단계 줄인거 이상으로 약간의 추가 이득이 있음
(불필요한 첫번째 레이를 쏘지 않기 때문)
• 플레이 뷰에서는 충분히 사용 가능. 근접 성능은 개선 중
에픽 드래곤 하운드 성능 향상
가까이 볼 때 8.2 ms 3.2 ms 5 ms
플레이 뷰 2.2 ms 1.2 ms 1 ms
스크린 스페이스 포톤 매핑 (SSPM)
• 커스틱을 위한 스크린 스페이스 포톤 매핑
(screen-space photon mapping)
• 커스틱은
굴절이나 반사로 빛이 모여서
주변보다 밝게 보이는 현상
커스틱의 예시 렌더링 이미지 (오프라인 렌더링)
구현 설명은 시간 관계로 생략
• Ray Tracing Gems 에 수록* (E북(킨들, PDF)은 무료)
1. 포톤(photon, 광자, 빛 알갱이)을 월드에 뿌리고
2. 스크린 스페이스안에 들어갈 포톤만 저장
3. 포톤 맵 텍스쳐 디노이징
• 저장된 포톤이 반사와 비슷하다는 것에서 착안
• NVIDIA GameWorks Denoiser 로 시범 구현
* Caustics using Screen-Space Photon Mapping, 김혁 (넥슨 코리아), 2019
포톤 맵 디노이징 전 포톤 맵 디노이징 후 결과
SSPM - Reflection Caustics and Complex Scene
https://www.youtube.com/watch?v=T_b6StxmMfQ
결론
• 응집성이 높아서 레이트레이싱 성능은 좋다
• 디노이저의 성능과 퀄리티가 관건
• 자체 SSPM 전용 디노이저를 제작 중
• 성능 데이터 및 게임 적용은 다음 기회에 공개
마무리
결론
• 반사 레이트레이싱은 스페큘러의 퀄리티를 극적으로 향상 시킨다
• IBL과 SSR을 넘어서 동적 글로시 스페큘러
• 성공의 주요 포인트는 디노이저 (성능, 퀄리티)
• 굴절, 커스틱, GI 등 반사를 넘어서 다양하게 활용 가능
이후 작업 (다 하겠다는건 아닙니다)
* Physically-Based Shading at Disney, Brent Burley, SIGGRAPH 2012
• 스페큘러 AO
• 스페큘러에 이어 디퓨즈 개선하기 (Burley(디즈니) 디퓨즈?)*
• 반투명 근접 성능 개선
• 반사 시 계산할 라이트 선정 (포워드 쉐이딩 개선)
• 무지개빛/회절 (iridescence/diffraction)
• 반사 안정화 후 GI 적용을 고려
레퍼런스
• Physics and Math of Shading , Naty Hoffman (2K), SIGGRAPH 2015
• Real Shading in Unreal Engine 4, Brian Karis (Epic Games), SIGGRAPH 2013
• Stochastic Screen-Space Reflections, Tomasz Stachowiak (Electronic Arts/Frostbite), SIGGRAPH
2015
• Exploring the Ray Traced Future in 'Metro Exodus', Oles Shyshkovtsov et al., GDC 2019
• Normal Transformations by Jason L. McKesson
https://paroj.github.io/gltut/Illumination/Tut09 Normal Transformation.html
• 언리얼 엔진 4 물리기반 머티리얼
https://api.unrealengine.com/KOR/Engine/Rendering/Materials/PhysicallyBased/index.html
• 프로젝트 A1의 AAA급 캐릭터 렌더링 기술, 기현우 (넥슨 코리아), NDC 2016
• Caustics using Screen-Space Photon Mapping (Ray Tracing Gems), Hyuk Kim (NEXON Korea),
2019
• Physically-Based Shading at Disney, Brent Burley, SIGGRAPH 2012
이미지 출처
• 호수 사진
https://www.fhwa.dot.gov/byways/byways/2302/photos
• “Reflections” – A Star Wars UE4 Real-Time Ray Tracing Cinematic Demo
https://www.youtube.com/watch?v=lMSuGoYcT3s
• J-type 327 Nubian royal starship
https://starwars.fandom.com/wiki/J-type_327_Nubian_royal_starship
• Mental Ray - Caustics Asset Scene
https://www.youtube.com/watch?v=KatVWgFCyS0
감사합니다

Mais conteúdo relacionado

Mais procurados

[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
MinGeun Park
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
MinGeun Park
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
동석 김
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 

Mais procurados (20)

스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
Motion blur
Motion blurMotion blur
Motion blur
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
191019 Forward / Deferred Rendering
191019 Forward / Deferred Rendering191019 Forward / Deferred Rendering
191019 Forward / Deferred Rendering
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 

Semelhante a 김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019

게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
Yggdrasil610
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
MinGeun Park
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
Kyoung Seok(경석) Ko(고)
 
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
MinGeun Park
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
민웅 이
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
Jangho Lee
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
JP Jung
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
noerror
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
MinGeun Park
 

Semelhante a 김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019 (20)

게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
Lighting in Stingray
Lighting in StingrayLighting in Stingray
Lighting in Stingray
 
언리얼엔진4를 활용한 레이트레이싱 리얼타임 영상 제작하기
언리얼엔진4를 활용한 레이트레이싱 리얼타임 영상 제작하기언리얼엔진4를 활용한 레이트레이싱 리얼타임 영상 제작하기
언리얼엔진4를 활용한 레이트레이싱 리얼타임 영상 제작하기
 
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
Rendering realistic Ice objects
Rendering realistic Ice objectsRendering realistic Ice objects
Rendering realistic Ice objects
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 
포인트 셰도우
포인트 셰도우포인트 셰도우
포인트 셰도우
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 

Mais de devCAT Studio, NEXON

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
devCAT Studio, NEXON
 
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
devCAT Studio, NEXON
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
devCAT Studio, NEXON
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
devCAT Studio, NEXON
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
devCAT Studio, NEXON
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
devCAT Studio, NEXON
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
devCAT Studio, NEXON
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
devCAT Studio, NEXON
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
devCAT Studio, NEXON
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
devCAT Studio, NEXON
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
devCAT Studio, NEXON
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
devCAT Studio, NEXON
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
devCAT Studio, NEXON
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
devCAT Studio, NEXON
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
devCAT Studio, NEXON
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010
devCAT Studio, NEXON
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
devCAT Studio, NEXON
 

Mais de devCAT Studio, NEXON (20)

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010
 
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017홍성우, 내가 만든 언어로 게임 만들기, NDC2017
홍성우, 내가 만든 언어로 게임 만들기, NDC2017
 

김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019

  • 1. 넥슨 코리아 데브캣 스튜디오 드래곤하운드(프로젝트DH) 개발팀 리드 그래픽스 프로그래머 김혁 (hybrid@nexon.co.kr) <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법
  • 2. 목차 1. 파트 1 – 언리얼 엔진 4의 PBR과 레이트레이싱 2. 파트 2 – 드래곤 하운드의 PBR과 레이트레이싱
  • 3. 다룰 내용 • PBR과 레이트레이싱 반사 • 레이트레이싱 데모 제작 경험 공유 • 드래곤 하우드의 새 기능 다루지 않을 내용 • DirectX 12, DXR API • 레이트레이싱 알고리즘 • RTShadow • RTAO (raytraced ambient occlusion • RTGI (raytraced global illumination)
  • 4. Dragonhound: GeForce RTX Real-Time Ray Traced Reflections and Shadows - GDC 2019 https://www.youtube.com/watch?v=ncv5Oe5q5zs
  • 5. 들어가기 전 언리얼 엔진 4를 기준으로 합니다. 언리얼 엔진 4와 드래곤 하운드의 레이트레이싱 구현은 아직 실험 기능입니다.
  • 6. 들어가기 전 GDC 데모나 이 발표에 쓰인 리소스나 세팅은 현재 제작 단계이거나 임시 리소스로 출시 때 변경 될 수 있습니다
  • 7. 파트 1 – 언리얼 엔진4의 PBR과 레이트레이싱 1. 레이트레이싱이란? 2. 디퓨즈와 스페큘러 3. 스페큘러와 레이트레이싱
  • 9. 레이트레이싱이란? 1. 레이와 가장 가까이 충돌하는 삼각형을 탐색 2. 그 삼각형의 무게중심좌표(barycentric coordinate)를 이용해서 쉐이딩에 필요한 정보를 얻음 (예, 보간된 버텍스 정보)
  • 10. 레이트레이싱 반사의 역할 • 레이트레이싱으로 모든 것을 렌더링? 아니다 • 래스터라이제이션(rasterization)으로 G버퍼를 생성하고 • 반사 부분만 레이트레이싱으로 수행한다 (디퍼드 렌더링과 hybrid) • 레이트레이싱 이전에 이 부분을 담당했던 기술 – IBL, SSR
  • 11. 레이트레이싱 이전의 반사 • IBL (Image-Based Lighting)* • 환경맵 형태로 구워둠 (Pre-Filtered Environment Map) * Real Shading in Unreal Engine 4, Brian Karis (Epic Games), 2013
  • 12. 레이트레이싱 이전의 반사 • SSR (Screen-Space Reflections) • 이미 렌더링한 화면에서 가져옴 • 화면 안이라는 제약을 제외하면 매우 훌륭한 퀄리티
  • 14. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → BRDF (물체의 반사 특성) 사방에서 들어오는 빛 반사되어 나가는 빛 (예, 눈으로 들어오는 빛) 빛의 각도에 따라 달라지는 빛의 양 모든 빛에 대해 계산 후 적분(더함)
  • 15. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → 사방에서 들어오는 빛 직접광 간접광
  • 16. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → 직접광 간접광 디렉셔널 라이트 포인트 라이트
  • 17. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → 직접광 간접광 디렉셔널 라이트 포인트 라이트 디퓨즈 스페큘러
  • 18. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → 직접광 간접광 디렉셔널 라이트 포인트 라이트 디퓨즈 SH 라이트맵 스페큘러
  • 19. 렌더링 공식 2 ( , ) ( , ) ( , )cosr r r i r i i i i H L x f x L x d     = → 직접광 간접광 디렉셔널 라이트 포인트 라이트 IBL SSR 디퓨즈 SH 라이트맵 스페큘러 레이트레이싱 반사
  • 20. BRDF (Bidirectional Reflectance Distribution Function)
  • 21. 금속의 스페큘러 비금속의 디퓨즈+스페큘러* * Physics and Math of Shading , Naty Hoffman (2K), 2015 비금속과 금속
  • 22. • 비금속 (메탈릭 0) • 디퓨즈 – 베이스 컬러 • 스페큘러 - 흰색 0%~4%~8% • 금속 (메탈릭 1) • 디퓨즈 없음 • 스페큘러 - 베이스 컬러 (0%~100%)
  • 23. • 비금속 (메탈릭 0) • 디퓨즈 – 베이스 컬러 • 스페큘러 - 흰색 0%~4%~8%
  • 28. 발표/시연을 위한 임시 리소스입니다
  • 30. 미세면(Microfacet)과 러프니스 정반사 (specular reflection) 글로시 (glossy) 디퓨즈에 가까운 스페큘러 러프니스 >> 0러프니스 > 0러프니스 = 0
  • 31. 레이트레이싱 글로시 - 디노이저 • 글로시는 수십, 수백개 이상의 레이가 필요 • 실시간에서는 1개 혹은 몇 개의 레이를 사용 후 디노이저로 보완 • SSR (Screen-Space Reflections)도 비슷* * Stochastic Screen-Space Reflections, Tomasz Stachowiak (Electronic Arts/Frostbite), 2015
  • 34. 요약 • 레이트레이싱 반사는 스페큘러만 다룬다 • 메탈릭(금속/비금속)은 반사율에 큰 영향을 준다 • 러프니스가 반사의 모양을 결정 • 중요한 요소는 글로시와 디노이저
  • 35. 파트 2 – 드래곤 하운드의 PBR과 레이트레이싱 1. 리소스 제작 팁 2. 반사 성능 최적화 3. 드래곤 하운드의 새 구현
  • 36. 드래곤 하운드의 레이트레이싱 히스토리 GDC 2018 DirectX Raytracing, RTX 등장 컴퓨트 쉐이더로 레이트레이싱 시험 구현
  • 37. 드래곤 하운드의 레이트레이싱 히스토리 DXR 샘플을 참고하여 직접 UE4에 포팅 에픽의 구현으로 이전
  • 38. 2.1 리소스 제작 팁 1. 반사 표현 2. 노말 3. 넌유니폼 스케일링 (non-uniform scaling) 4. 금속의 베이스 컬러
  • 39. (1) 반사 표현 • 정반사(러프니스 0)인 물체는 별로 없다 • 거울, 크롬 • 자동차는 클리어 코트 (clear coat) • 자연스러운 것은 글로시 스타워즈 스타워즈 Nubian royal starship
  • 40. (1) 반사 표현 • 억지스러움은 테크 데모로 충분 • 자연스러우면 티가 안나고, • 티가 나면 억지스럽다 • 반사상을 식별하게 하는 건 어려움 • 평면이 아닌 볼록이나 오목은 반사상이 잘 식별 되지 않는다
  • 41. (1) 반사 표현 • IBL과 SSR은 사실 매우 훌륭한 기술 • 단순한 반사의 느낌을 위해서는 사실 레이트레이싱은 필요 없다 • 레이트레싱의 강점은 동적인 표현
  • 43.
  • 44. (2) 노말 • 러프니스가 0인 재질은 노말 텍스쳐가 매우 중요하고 가장 까다로움 • IBL/SSR과 달리 노말의 문제가 레이트레이싱에서 크게 나타남
  • 45. 구름이 일그러짐 반사 되는 상이 멀리 있을 수록 일그러짐이 심해짐
  • 46. 원인 같은 스무딩 그룹 노말맵 계산
  • 47. 노말맵 평면화를 사용하지 않으면 되나? 128, 128, 255 127, 127, 255 • 맥스에서 구운 평면 노말맵도 심하진 않지만 비슷한 문제 발생 • 하이폴리곤에서 만든 노말맵에 오차가 섞여 있다
  • 48. 해결 방법 • 노말맵의 의존도를 낮춘다 • 오차 없이 버텍스 노말만 사용 • FlattenNormal으로 노말맵의 의존도를 낮춤 • 필요하면 스무딩 그룹의 분리후 노말 텍스쳐를 수동으로 밀어줌
  • 49. 발표/시연을 위한 임시 리소스입니다
  • 50. (3) 넌유니폼 스케일링 (non-uniform scaling) • 넌유니폼 문제는 그래픽스에서 잘 알려진 문제 • 잘못된 노말로 반사 방향이 물체 뒤로 넘어간다 • 노말의 변환 행렬 계산을 제대로 해줘야한다 • 넌유니폼의 변환 행렬은 위치 버텍스의 계산과 다름
  • 52. 반사 방향 오류 발표/시연을 위한 임시 리소스입니다
  • 53. 해결/우회 방법 1. 넌유니폼 스케일링을 쓰지 않음 2. 넌유니폼의 노말 변환을 제대로 계산하도록 엔진을 수정* 3. 넌유니폼 스케일링 된 메시를 유니폼으로 바꾸어 저장 (드래곤 하운드 GTC/GDC 데모에서는 이 방법을 사용) * Normal Transformations by Jason L. McKesson
  • 54. (4) 금속의 베이스 컬러 • 물리적으로 올바른 베이스 컬러를 사용하는 것은 매우 중요 • 비금속에서 베이스 컬러 = 디퓨즈 반사율 금속에서 베이스 컬러 = 스페큘러 반사율 • 드래곤 하운드에서는 (여러 이유로) 전반적인 베이스 컬러가 낮게 되어 있어서 적절하게 상향 조절 * 이미지: 언리얼 엔진 4 문서 – 물리기반 머티리얼
  • 55. 요약 • 레이트레이싱의 강점은 글로시와 동적 스페큘러 • 러프니스 0인 정반사는 주의가 필요하다 • 반사가 더 정확해지면서 노말의 중요도가 매우 높아졌다
  • 56. 2.2 반사 성능 최적화 1. 응집성 (coherence) 2. 레이 적게 쏘기 3. 래스터라이제이션 최적화
  • 57. 반사 성능 최적화 1. 응집성 (coherence) 2. 레이 적게 쏘기 3. 래스터라이제이션 최적화
  • 58. 응집성 (coherence) 응집성 높음 응집성 낮음 성능 >
  • 59. 응집성 (coherence) • 개념만 알아도 도움이 됩니다 • 응집성이 낮으면, • 레이 탐색이 느려진다 • 다수의 텍스쳐를 읽어야한다 • 쉐도우는 응집성이 높고, 반사는 응집성이 낮은 편
  • 60. 반사 성능 최적화 1. 응집성 (coherence) 2. 레이 적게 쏘기 3. 래스터라이제이션 최적화
  • 61. 레이 적게 쏘기 • (ㅁ) 반사 스크린 퍼센티지 낮추기 (100%->50%) • (ㅁ) 반사 계산시 지정된 러프니스 보다 높으면 IBL을 사용 • 기본값 0.6으로 성능과 씬에 따라 조절 가능 • (ㅁ) 최대 반사 바운스 조절 • 반사 바운스 비주얼라이저 • 적응형 최대 러프니스
  • 62. 반사 바운스 비주얼라이저 • 러프니스가 바운스에 영향을 주고, 이건 성능으로 직결 된다 • 리플렉션이 되는 횟수를 색깔로 표현하는 비주얼라이저를 제작 • 필요 이상으로 트레이싱이 많이 되는 부분을 확인하여 러프니스를 조절
  • 63. 1 2 3
  • 64. 적응형 최대 러프니스 (Adaptive Max Roughness) • 첫번째 반사에서는 최대 러프니스(Max Roughness) 보다 초과일 경우 IBL을 사용 • 두번째 반사에서는 이 기준을 반으로 줄임 세번째 반사는 또 그의 절반 • 예, 최대 러프니스 값이 0.6이라면 두번째 반사는 0.3, 세번째는 0.15 • 두번째 반사부터 이전 반사가 비금속일 경우 레이트레이싱 반사 가능성을 줄임 • 레이가 (뎁스버퍼 대비) 먼 곳에서 날아 왔으면 그 다음 반사 가능성을 줄임
  • 66. 적응형 최대 러프니스 (Adaptive Max Roughness) • 적게 쏘니 당연히 성능 향상이 크다 많게는 3 ms ~10 ms • 하지만 퀄리티 차이도 없을 순 없다 (차이를 최소화하기 위해 공식을 개선 중) • 퀄리티보다 성능을 원할 때 사용 (아직은 대부분 성능이 더 필요하다) 9 ms 향상
  • 67. 적응형 최대 러프니스 (Adaptive Max Roughness) • 전반적으로는 비슷하지만 암부의 디테일이 떨어진다 • 성능은 9 ms 향상 • 반사 대신 스페큘러 AO를 사용하면 비용을 줄일 수 있지 않을까? 적용 전 적용 후
  • 68. 반사 성능 최적화 1. 응집성 (coherence) 2. 레이 적게 쏘기 3. 래스터라이제이션 최적화
  • 69. 래스터라이제이션의 최적화 • 레이트레이싱이라고 래스터라이제이션의 최적화가 필요 없지 않다 • 반사 후 머티리얼/라이팅 계산은 포워드 쉐이딩과 같다 • 머티리얼 평가 비용(쉐이더 비용) 줄이기 • 텍스쳐 사용 줄이기 • LOD 적극 사용하기 • 레이트레이싱이 적용된 거리는 눈에 보이는 것보다 길다
  • 70. 요약 • 응집성(coherence)이 낮으면 성능 하락이 크다 • 그림자에 비해 반사의 응집성은 많이 낮은 편 • 반사 바운스가 높으면 응집성이 떨어지고 크게 성능이 하락한다 • 씬의 구성에 따라, 최대 러프니스, 최대 바운스, 반사 해상도 등을 조절하여 성능 향상을 얻을 수 있다
  • 71. 2.3 드래곤 하운드의 새 구현 1. 드래곤 하운드의 반투명 및 굴절 2. 스크린 스페이스 포톤 매핑
  • 72. 드래곤 하운드의 반투명 및 굴절 • 드래곤 하운드의 용은 몸에 용석이 달려 있다 • 용석은 크리스탈과 비슷 • 드래곤 하운드의 핵심 비주얼 중 하나 발표/시연을 위한 임시 리소스입니다
  • 73. 래스터라이제이션의 반투명 • 불투명만 G버퍼에 그림 • 반투명한 물체는 카메라 기준으로 정렬 후 드로우 • 스켈레탈 메시로 있는 용석은 전부 나누지 않는 이상 정렬 불가 • 다른 방법: Order-Independent Transparency • OIT는 픽셀 안에서 정렬 • 툼 레이더의 헤어, 어센던트 원* * 프로젝트 A1의 AAA급 캐릭터 렌더링 기술, 기현우, 2016
  • 74. 레이트레이싱 반투명 – 에픽의 방법 • 래스터라이제이션과 같은 형태로 반투명 물체를 제외한 불투명 물체만 G버퍼에 렌더링 • 레이트레이싱을 이용해서 순차적으로 드로우
  • 75. 반투명 물체는 G버퍼에 그리지 않음 G버퍼원본 메시
  • 79. 드래곤 하운드의 방법 • 에픽의 구현은 범용적이고 일반적인 구현 • 드래곤 하운드에서는 속도를 위해서 모양이 명확한 물체에 특화 된 구현으로 변형
  • 80. 반투명 물체까지 G버퍼에 그림 G버퍼 (쉐이딩 모델 ID)원본 메시
  • 81. 쉐이딩 모델 ID 반사만 적용
  • 82. 쉐이딩 모델 ID를 이용 반투명 물체에 대해서만 레이트레이싱
  • 83. 발표/시연을 위한 임시 리소스입니다
  • 84. 성능 • 한 단계를 줄인 만큼은 당연히 빨라지고 • 한 단계 줄인거 이상으로 약간의 추가 이득이 있음 (불필요한 첫번째 레이를 쏘지 않기 때문) • 플레이 뷰에서는 충분히 사용 가능. 근접 성능은 개선 중 에픽 드래곤 하운드 성능 향상 가까이 볼 때 8.2 ms 3.2 ms 5 ms 플레이 뷰 2.2 ms 1.2 ms 1 ms
  • 85. 스크린 스페이스 포톤 매핑 (SSPM) • 커스틱을 위한 스크린 스페이스 포톤 매핑 (screen-space photon mapping) • 커스틱은 굴절이나 반사로 빛이 모여서 주변보다 밝게 보이는 현상 커스틱의 예시 렌더링 이미지 (오프라인 렌더링)
  • 86. 구현 설명은 시간 관계로 생략 • Ray Tracing Gems 에 수록* (E북(킨들, PDF)은 무료) 1. 포톤(photon, 광자, 빛 알갱이)을 월드에 뿌리고 2. 스크린 스페이스안에 들어갈 포톤만 저장 3. 포톤 맵 텍스쳐 디노이징 • 저장된 포톤이 반사와 비슷하다는 것에서 착안 • NVIDIA GameWorks Denoiser 로 시범 구현 * Caustics using Screen-Space Photon Mapping, 김혁 (넥슨 코리아), 2019
  • 87.
  • 88. 포톤 맵 디노이징 전 포톤 맵 디노이징 후 결과
  • 89. SSPM - Reflection Caustics and Complex Scene https://www.youtube.com/watch?v=T_b6StxmMfQ
  • 90. 결론 • 응집성이 높아서 레이트레이싱 성능은 좋다 • 디노이저의 성능과 퀄리티가 관건 • 자체 SSPM 전용 디노이저를 제작 중 • 성능 데이터 및 게임 적용은 다음 기회에 공개
  • 92. 결론 • 반사 레이트레이싱은 스페큘러의 퀄리티를 극적으로 향상 시킨다 • IBL과 SSR을 넘어서 동적 글로시 스페큘러 • 성공의 주요 포인트는 디노이저 (성능, 퀄리티) • 굴절, 커스틱, GI 등 반사를 넘어서 다양하게 활용 가능
  • 93. 이후 작업 (다 하겠다는건 아닙니다) * Physically-Based Shading at Disney, Brent Burley, SIGGRAPH 2012 • 스페큘러 AO • 스페큘러에 이어 디퓨즈 개선하기 (Burley(디즈니) 디퓨즈?)* • 반투명 근접 성능 개선 • 반사 시 계산할 라이트 선정 (포워드 쉐이딩 개선) • 무지개빛/회절 (iridescence/diffraction) • 반사 안정화 후 GI 적용을 고려
  • 94. 레퍼런스 • Physics and Math of Shading , Naty Hoffman (2K), SIGGRAPH 2015 • Real Shading in Unreal Engine 4, Brian Karis (Epic Games), SIGGRAPH 2013 • Stochastic Screen-Space Reflections, Tomasz Stachowiak (Electronic Arts/Frostbite), SIGGRAPH 2015 • Exploring the Ray Traced Future in 'Metro Exodus', Oles Shyshkovtsov et al., GDC 2019 • Normal Transformations by Jason L. McKesson https://paroj.github.io/gltut/Illumination/Tut09 Normal Transformation.html • 언리얼 엔진 4 물리기반 머티리얼 https://api.unrealengine.com/KOR/Engine/Rendering/Materials/PhysicallyBased/index.html • 프로젝트 A1의 AAA급 캐릭터 렌더링 기술, 기현우 (넥슨 코리아), NDC 2016 • Caustics using Screen-Space Photon Mapping (Ray Tracing Gems), Hyuk Kim (NEXON Korea), 2019 • Physically-Based Shading at Disney, Brent Burley, SIGGRAPH 2012
  • 95. 이미지 출처 • 호수 사진 https://www.fhwa.dot.gov/byways/byways/2302/photos • “Reflections” – A Star Wars UE4 Real-Time Ray Tracing Cinematic Demo https://www.youtube.com/watch?v=lMSuGoYcT3s • J-type 327 Nubian royal starship https://starwars.fandom.com/wiki/J-type_327_Nubian_royal_starship • Mental Ray - Caustics Asset Scene https://www.youtube.com/watch?v=KatVWgFCyS0