SlideShare ist ein Scribd-Unternehmen logo
1 von 53
UNCHARTED4 PART 1
이걸 어떻게 분석하지……
SIGGRAPH 2016의 발표내용과 GDC 2016의 발표내용을 기본으로 분석한 내용입니다.
Naughty Dog에서 PBR을 처음 사용한 게임.
우선 이것부터 어떻게 해봅시다.
s2012_pbs_disney_brdf_notes_v2.PDF로 웹에 공개되어 있음
Disney BRDF
Bidirectional Reflectance Distribution Funtion의 약자.
양방향 반사 분포 함수.
Surface의 상태에 따른 반사율을 수하는 함수.
BRDF ?
여기서 잠시~!
HDR?
LDR?
뭔 소리?
1. 기존의 색상 표현
• 픽셀당 4Byte 표현
• 4Byte = 32bit
• R:8 G:8 B:8 A:8
• 각 색상당 1Byte(8bit), 256단계로 표현 가능(0~255)
• 모든 색을 표현하기에는 부족.
2. HDR
• 색상당 16비트 부동 소수점으로 표현
• 약 4.4 * 10 ^12 의 색상 표현 가능
• 기존의 RGB8은 LDR(Low Dynamic Range)라고 부름
3. 장면의 고휘도 값을 렌더링 파이프라인 전체에 유지, 그 결과를 디스플레이 장치에 출력할 수 있는
범위로 압축하는 과정.
• 모니터의 출력 허용치는 LDR 범위 (4bite RGB만 표시 가능)
• HDR은 모니터의 출력 범위를 넘어섬.
• HDR장면을 출력하기 위해서는 모니터의 출력 허용치인 LDR 범위로 압출해야 됨.
• 이 변환을 Tone Mapping이라고 함.
HDR(High Dynamic Range)
Tone Mapping
HDR
0.0 1.0 2.0
LDR
1.00.0
Tone Mapping의 필요성
HDR
0.0 1.0 2.0
LDR
1.00.0
LDR
2.01.0
0.0 ~2.0 범위의 HDR 이 있다면, LDR은 0~1, 혹은 1~2로 선택이 가능하다.
이것은 장면의 특성에 따라 휘도의 구간을 선택적으로 적용이 가능하게 된다.
Tone Mapping의 필요성
하나의 샷을 왼쪽에서 보이는 다양한 tone으로 변환이 가능하게 된다.
자~ 다시 UNCHARTED4
어떤 보정도 없는 스크린샷 과 톤 매핑을 켠 상태의 이미지.
Shadow부분에 contrast를 볼 수 있습니다.
중요한 것은, 구름이 과노출 될 때 yellow/pink 색의 컬러 벤딩(color bending) 현상을 막아줍니다.
컬러 벤딩(color bending) 현상
LUT을 켠 최종 이미지.
Cool tint 가 적용 된 것을 볼 수 있음. (전의 이미지와 비교해보면 변경점이 보임)
이것은 색 보정을 post process effect(후처리 효과)보다는 렌즈의 필터처럼 다룰 수 있게 해준다.
왜 색보정을 HDR에서 하고 싶었던 것일까?
같은 샷, multiply mode로 강한 cyan을 적용. 구름의 하얀색이 변한 부분에 주목.
LDR 적용
LDR과 같은 조건인 multiply mode로 강한 cyan을 적용. 약간의 white가 구름속에 보이는 부분에 주목.
이것은 LDR에서는 masking이나 blend mode를 통해서 얻을 수 있지만, HDR에서는 자동으로 일어납니다.
HDR 적용
이전 프로젝트에서 John Hable이 고안한 tone mapping 기능을 가지고 있었음.
HDR 값들을 LDR space로 변환시키는 것을 단순히 컨트롤하고 있었음.
같은 mapping효과를 친숙한 그래픽 소프트웨어(Photoshop 같은)의 curve editor를 통해 얻을 수 있음.
그리고 이러한 mapping을 grayscale의 LUT texture로 저장할 수 있습니다.
하나의 HDR LUT texture에 color grading(색보정)과 tonemapping curve를 둘 다 부호화(encode)하기로 결정.
통상의 LUT는 0~1.0의 범위를 가지게 되나 여기에서는 0~2.0 sRGB의 범위를 가지게 됨.
4.0 sRGB까지 실험했고 기술적인 문제도 없었지만, uncharted4의 look에서는 필요 없었으므로 2.0 SRGB만 사용.
HDR color grading과 tone mapping curve 에디팅에 Fusion 사용. (Nuke, Davinci도 상관 없음)
실시간 LUT의 보정이 가능하므로 color grading을 위해 스크린샷을 찍지 않아도 됨.
LUT은 또 뭐야!
RGB의 입력값을 다른 새로운 색상표에 대응하여 다른 색감으로 출력하는 방식
LUT(Color Look Up Table)
LUT
LUT(Color Look Up Table)
• Color grading(색 보정)은 LUT를 통해 구현.
• 3개(R,G,B)의 1D LUT 대신 조금 더 세련된 색 변환이 가능한 3D LUT 하나를 사용.
LUT(Color Look Up Table)
256 * 16 텍스쳐에 16 * 16 * 16 색 중립 LUT 모습
1. Color grading을 하고자 하는 대표 스크린샷을 Photoshop에서 불러온다.
2. Photoshop에서 중립 256 * 16 LUT 로드. (unreal engine4 예제에서도 제공)
3. LUT를 스크린 샷 도큐먼트에 불여 넣는다.
4. Manipulatoin(색 조작)을 적용. (adjustment layer를 추가하는 식이 좋음)
5. 256 * 16 LUT를 선택하여 병합. (색 조작으로 LUT의 색상이 바뀌어 있음)
6. 엔진이 읽을 수 있는 비압축 포맷으로 저장.
7. 활용.
LUT(Color Look Up Table) 제작 방법
동영상으로 보자
LUT(Color Look Up Table) 제작 방법
자~ 다시 UNCHARTED4
아티스트들이 다른 방향에서 오는 fog color를 내우 구체적으로 컨트롤하고 싶어함.
특히 skydome의 수평선 컬러와 fog의 컬러를 맞추고 싶어함.
전통적인 monochromic fog
Fog의 color를 control하기위해 아티스트들이 만든 fog texture.
좌측의 하늘 texture와 연관된 fog texture.
Fog Texture의 위쪽 반은 좌측 하늘 텍스쳐와 color와 energy가 같음.
아래쪽 반은 수평선의 아래쪽 부분을 아티스트들이 직접 연장해서 만든 이미지.
Fog texture를 적용.
문제는 앞에 있는 물체와 뒤쪽에 있는 물체가 같은 fog color의 영향을 받는다는 것.
(실내나 벽 뒤에 있으면 문제가 더 심각해 짐)
그래서, low mip(최고 해상도)를 수평에 사용, high mip(낮은 해상도)를 카메라 가까이 사용.
1 * 1 사이즈까지 fog texture 제작. (화면 전체를 하나의 평균 색상으로 표현할 수 있는 fog texture)
그 색상은 카메라와 목적지 사이의 파티클을 관통하는 빛의 축적임. (산란과 흡수계수의 오차는 있음)
완성된 fog texture
Mipmap들을 보면 하나의 색상이 될 때까지 흐려지고(blurrier) 있습니다.
Mip fog 랜더링은 꽤 그럴싸함.
왜냐하면, 씬의 다른 부분에서 오는 빛들을 반영했기 때문. (sky dome의 색상을 반영했기 때문)
Fog texture를 sample하기 위해서 카메라 벡터를 근사치로 mip fig texture를 적용해야 하는
sky의 UV space로 변환.
Fog의 농도를 별도로 계산하기 위해서 전통적으로 control하는 방법을 쓴다. (height falloff,
distance falloff, etc)
카메라 벡터? UV Space? Sample???
Mip Fog를 설명하기 위해 약간의 오류를 포함한
내용이 이어집니다.
카메라의 vector방향(Depth)으로
빌보드가 적용된 Fog plane이
중첩된 형태를 Fog 시스템이라고
가정한 모델.카메라
카메라 화각 (FOV)
Fog Plane
카메라 view
카메라 vecor
Fog를 아래와 같은 구조로 구현이 된다고 가정합니다. (실제 게임의 Fog 시스템과는 다릅니다.)
카메라
카메라 view
카메라 vecor
Sky Dome
카메라 vector를 근사치로 sky의UV Space로 변환….의 의미.
게임에서 카메라를 통해 보이는 view는 sky
dome의 일부분이다.
이 view의 위치를 sky dome의 UV에서 찾는다.
카메라 vector를 근사치로 sky의UV Space로 변환….의 의미.
Sky dome에 적용된 UV에서 하늘색 박스 부분이 실제 게임에서 카메라가 비추고 있는 화면 부분이다.
즉, sky dome이 texture를 적용하기 위해 가지고 있는 UV좌표 위에서 카메라 view의 좌표가 하늘색 박스.
카메라의 view를 sky dome의 UV space로 변환한다의 의미는 위와 같다.
Texture와
UV좌표
카메라 vector를 근사치로 sky의UV Space로 변환….의 의미.
카메라의 view의 위치를 sky dome의 UV 좌표상에서 찾았으면, fog texture에서도 같은 위치를 찾는다.
Sky Dome UV space 에서의 위치
Fog Texture에서의 위치
카메라
카메라 화각 (FOV)
Depth(Vector)에 따른 카메라 view 영역
카메라 vecor
카메라의 FOV 때문에 카메라의 Depth(Vector)값에 따라 카메라의 view에 비치는 fog plane의 영역이 달라진다.
카메라의 Depth(Vector)에 따라 달라지는 view의 영역을 maipmap의 개념으로 이해하면
mipmap level 적용 부분의 이해가 쉽게된다.
카메라
카메라 화각 (FOV)
카메라 vecor
자연에서 눈에 들어오는 빛은 직선으로 오는 빛 뿐만아니라 주변에서 반사된 여러 빛들이 동시에 들어옴.
Fog texture의전체를 사용하는 것도 아니고 일부를 sky dome의 UV space 에서 비교해서 찾아 사용.
그 부분이 mipmap level에따라 뭉게지면서 컬러(빛)들이 혼합되게 된다.
즉, 멀리 있을 수록 이 컬러(빛)들의 구분이 명확하지만(mipmap level이 낮음) 카메라와 가까울 수록 주변의
컬러(빛)과 혼합된 형태로 보여지게 된다. (mipmap level이 높음)
이런 이유로 mip fog 개념을 게임에 적용하면 빛의 축적, 산란계수 등을 근사치로 적용한 효과도 부가적으로
얻게 된다. (Fog는 카메라의 depth 값에 따라 밀도(중첩정도)가 달라지기 때문)
Uncharted4에서 대기를 만들기 위해 사용한 여러 기술들
Mip fog만 해도 이해하는데…. 미치겠는데… 또.. 있다고…
아직 시그라프 발표 4개나 더 남음. (단지 2개 분석했음)
GDC 발표 남았음.
캐릭터 제작에 대한 이슈 남아있음.
Substance 이슈 남아있음.
그 외 이슈들 몇 개 더 있음…

Weitere ähnliche Inhalte

Was ist angesagt?

니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌민웅 이
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)민웅 이
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correctionMinGeun Park
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기종규 우
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근MinGeun Park
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현민웅 이
 
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)해강
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각민웅 이
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 
Deferred decal
Deferred decalDeferred decal
Deferred decal민웅 이
 
2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑Sukwoo Lee
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자MoonLightMS
 

Was ist angesagt? (20)

High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
니시카와젠지의 3 d게임 팬을 위한「gravity daze」그래픽스 강좌
 
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
크게, 아름답게,빠르게, 일관되게 만들기: Just Cause 2 개발에서 배운 교훈들 (GPU Pro)
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
D2 Hdr
D2 HdrD2 Hdr
D2 Hdr
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
[Shader study] the rendering technology of lords of the fallen - 발표메모(14.06.23)
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
자동 동적 3차원 입체시각
자동 동적 3차원 입체시각자동 동적 3차원 입체시각
자동 동적 3차원 입체시각
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
그림자 이야기
그림자 이야기그림자 이야기
그림자 이야기
 
Deferred decal
Deferred decalDeferred decal
Deferred decal
 
2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
 

Andere mochten auch

Overwatch 기술 분석
Overwatch 기술 분석Overwatch 기술 분석
Overwatch 기술 분석Yong-jun Choi
 
자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개Ben Heo
 
Places in india which are an exact replica
Places in india which are an exact replicaPlaces in india which are an exact replica
Places in india which are an exact replicaAmit Kumar
 
UHD HDR "Dance untold story"
UHD HDR "Dance untold story"UHD HDR "Dance untold story"
UHD HDR "Dance untold story"승윤 이
 
자바8강의 2강. Stream API
자바8강의 2강. Stream API자바8강의 2강. Stream API
자바8강의 2강. Stream APISejong Park
 
박스러너 튜토리얼북
박스러너 튜토리얼북박스러너 튜토리얼북
박스러너 튜토리얼북GukHwan Ji
 
E business e e-commerce
E business e e-commerceE business e e-commerce
E business e e-commerceMayara Silva
 
React 튜토리얼 1차시
React 튜토리얼 1차시React 튜토리얼 1차시
React 튜토리얼 1차시태현 김
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow InternalsKiho Hong
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016Chiung Choi
 
문지영의 프리젠테이션 클리닉
문지영의 프리젠테이션 클리닉문지영의 프리젠테이션 클리닉
문지영의 프리젠테이션 클리닉JiYoung Moon
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex ProcessingDae Hyek KIM
 
Maker movement & education changes - 메이커운동과 교육의 변화
Maker movement & education changes - 메이커운동과 교육의 변화Maker movement & education changes - 메이커운동과 교육의 변화
Maker movement & education changes - 메이커운동과 교육의 변화Ji Lee
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131Yong Joon Moon
 
프로젝트발표Ppt 제작중
프로젝트발표Ppt 제작중프로젝트발표Ppt 제작중
프로젝트발표Ppt 제작중Yung Su Lee
 
게임제작개론 : #5 플레이어에 대한 이해
게임제작개론 : #5 플레이어에 대한 이해게임제작개론 : #5 플레이어에 대한 이해
게임제작개론 : #5 플레이어에 대한 이해Seungmo Koo
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 

Andere mochten auch (20)

Overwatch 기술 분석
Overwatch 기술 분석Overwatch 기술 분석
Overwatch 기술 분석
 
자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개자바스크립트 공부를 위한 책 소개
자바스크립트 공부를 위한 책 소개
 
Places in india which are an exact replica
Places in india which are an exact replicaPlaces in india which are an exact replica
Places in india which are an exact replica
 
Cells and chromosomes
Cells and chromosomesCells and chromosomes
Cells and chromosomes
 
UHD HDR "Dance untold story"
UHD HDR "Dance untold story"UHD HDR "Dance untold story"
UHD HDR "Dance untold story"
 
자바8강의 2강. Stream API
자바8강의 2강. Stream API자바8강의 2강. Stream API
자바8강의 2강. Stream API
 
박스러너 튜토리얼북
박스러너 튜토리얼북박스러너 튜토리얼북
박스러너 튜토리얼북
 
E business e e-commerce
E business e e-commerceE business e e-commerce
E business e e-commerce
 
React 튜토리얼 1차시
React 튜토리얼 1차시React 튜토리얼 1차시
React 튜토리얼 1차시
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow Internals
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016Google Firebase로 레고블럭 조립하기 - IO Extended 2016
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
 
문지영의 프리젠테이션 클리닉
문지영의 프리젠테이션 클리닉문지영의 프리젠테이션 클리닉
문지영의 프리젠테이션 클리닉
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing
 
Maker movement & education changes - 메이커운동과 교육의 변화
Maker movement & education changes - 메이커운동과 교육의 변화Maker movement & education changes - 메이커운동과 교육의 변화
Maker movement & education changes - 메이커운동과 교육의 변화
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131
 
[필립 코틀러] 마케팅관리론 해설강의 2장
[필립 코틀러] 마케팅관리론 해설강의 2장[필립 코틀러] 마케팅관리론 해설강의 2장
[필립 코틀러] 마케팅관리론 해설강의 2장
 
프로젝트발표Ppt 제작중
프로젝트발표Ppt 제작중프로젝트발표Ppt 제작중
프로젝트발표Ppt 제작중
 
게임제작개론 : #5 플레이어에 대한 이해
게임제작개론 : #5 플레이어에 대한 이해게임제작개론 : #5 플레이어에 대한 이해
게임제작개론 : #5 플레이어에 대한 이해
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 

Ähnlich wie Uncharted4 part1

Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art TechnologiesSangYun Yi
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdaySangYun Yi
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
포인트 셰도우
포인트 셰도우포인트 셰도우
포인트 셰도우Sukwoo Lee
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2JP Jung
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2Kyoung Seok(경석) Ko(고)
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadowMoonLightMS
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shadingMinGeun Park
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splattingdrandom
 
Unite2015 probelight(150417)
Unite2015 probelight(150417)Unite2015 probelight(150417)
Unite2015 probelight(150417)SangYun Yi
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑MoonLightMS
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환Yggdrasil610
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius projectWuwon Yu
 

Ähnlich wie Uncharted4 part1 (20)

Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
Android camera basics
Android camera basicsAndroid camera basics
Android camera basics
 
포인트 셰도우
포인트 셰도우포인트 셰도우
포인트 셰도우
 
9강 camera advanced light2
9강 camera advanced light29강 camera advanced light2
9강 camera advanced light2
 
구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2구세대 엔진 신데렐라 만들기 최종본 유트브2
구세대 엔진 신데렐라 만들기 최종본 유트브2
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadow
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splatting
 
Bump Mapping
Bump MappingBump Mapping
Bump Mapping
 
Unite2015 probelight(150417)
Unite2015 probelight(150417)Unite2015 probelight(150417)
Unite2015 probelight(150417)
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
Color Control
Color ControlColor Control
Color Control
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 

Kürzlich hochgeladen

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Kürzlich hochgeladen (6)

Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

Uncharted4 part1

  • 1. UNCHARTED4 PART 1 이걸 어떻게 분석하지……
  • 2. SIGGRAPH 2016의 발표내용과 GDC 2016의 발표내용을 기본으로 분석한 내용입니다.
  • 3. Naughty Dog에서 PBR을 처음 사용한 게임.
  • 5.
  • 7. Bidirectional Reflectance Distribution Funtion의 약자. 양방향 반사 분포 함수. Surface의 상태에 따른 반사율을 수하는 함수. BRDF ?
  • 8.
  • 10. 1. 기존의 색상 표현 • 픽셀당 4Byte 표현 • 4Byte = 32bit • R:8 G:8 B:8 A:8 • 각 색상당 1Byte(8bit), 256단계로 표현 가능(0~255) • 모든 색을 표현하기에는 부족. 2. HDR • 색상당 16비트 부동 소수점으로 표현 • 약 4.4 * 10 ^12 의 색상 표현 가능 • 기존의 RGB8은 LDR(Low Dynamic Range)라고 부름 3. 장면의 고휘도 값을 렌더링 파이프라인 전체에 유지, 그 결과를 디스플레이 장치에 출력할 수 있는 범위로 압축하는 과정. • 모니터의 출력 허용치는 LDR 범위 (4bite RGB만 표시 가능) • HDR은 모니터의 출력 범위를 넘어섬. • HDR장면을 출력하기 위해서는 모니터의 출력 허용치인 LDR 범위로 압출해야 됨. • 이 변환을 Tone Mapping이라고 함. HDR(High Dynamic Range)
  • 11. Tone Mapping HDR 0.0 1.0 2.0 LDR 1.00.0
  • 12. Tone Mapping의 필요성 HDR 0.0 1.0 2.0 LDR 1.00.0 LDR 2.01.0 0.0 ~2.0 범위의 HDR 이 있다면, LDR은 0~1, 혹은 1~2로 선택이 가능하다. 이것은 장면의 특성에 따라 휘도의 구간을 선택적으로 적용이 가능하게 된다.
  • 13. Tone Mapping의 필요성 하나의 샷을 왼쪽에서 보이는 다양한 tone으로 변환이 가능하게 된다.
  • 15. 어떤 보정도 없는 스크린샷 과 톤 매핑을 켠 상태의 이미지. Shadow부분에 contrast를 볼 수 있습니다. 중요한 것은, 구름이 과노출 될 때 yellow/pink 색의 컬러 벤딩(color bending) 현상을 막아줍니다.
  • 17. LUT을 켠 최종 이미지. Cool tint 가 적용 된 것을 볼 수 있음. (전의 이미지와 비교해보면 변경점이 보임)
  • 18. 이것은 색 보정을 post process effect(후처리 효과)보다는 렌즈의 필터처럼 다룰 수 있게 해준다. 왜 색보정을 HDR에서 하고 싶었던 것일까?
  • 19. 같은 샷, multiply mode로 강한 cyan을 적용. 구름의 하얀색이 변한 부분에 주목. LDR 적용
  • 20. LDR과 같은 조건인 multiply mode로 강한 cyan을 적용. 약간의 white가 구름속에 보이는 부분에 주목. 이것은 LDR에서는 masking이나 blend mode를 통해서 얻을 수 있지만, HDR에서는 자동으로 일어납니다. HDR 적용
  • 21. 이전 프로젝트에서 John Hable이 고안한 tone mapping 기능을 가지고 있었음. HDR 값들을 LDR space로 변환시키는 것을 단순히 컨트롤하고 있었음. 같은 mapping효과를 친숙한 그래픽 소프트웨어(Photoshop 같은)의 curve editor를 통해 얻을 수 있음. 그리고 이러한 mapping을 grayscale의 LUT texture로 저장할 수 있습니다.
  • 22. 하나의 HDR LUT texture에 color grading(색보정)과 tonemapping curve를 둘 다 부호화(encode)하기로 결정. 통상의 LUT는 0~1.0의 범위를 가지게 되나 여기에서는 0~2.0 sRGB의 범위를 가지게 됨. 4.0 sRGB까지 실험했고 기술적인 문제도 없었지만, uncharted4의 look에서는 필요 없었으므로 2.0 SRGB만 사용.
  • 23.
  • 24. HDR color grading과 tone mapping curve 에디팅에 Fusion 사용. (Nuke, Davinci도 상관 없음) 실시간 LUT의 보정이 가능하므로 color grading을 위해 스크린샷을 찍지 않아도 됨.
  • 26. RGB의 입력값을 다른 새로운 색상표에 대응하여 다른 색감으로 출력하는 방식 LUT(Color Look Up Table) LUT
  • 28. • Color grading(색 보정)은 LUT를 통해 구현. • 3개(R,G,B)의 1D LUT 대신 조금 더 세련된 색 변환이 가능한 3D LUT 하나를 사용. LUT(Color Look Up Table) 256 * 16 텍스쳐에 16 * 16 * 16 색 중립 LUT 모습
  • 29. 1. Color grading을 하고자 하는 대표 스크린샷을 Photoshop에서 불러온다. 2. Photoshop에서 중립 256 * 16 LUT 로드. (unreal engine4 예제에서도 제공) 3. LUT를 스크린 샷 도큐먼트에 불여 넣는다. 4. Manipulatoin(색 조작)을 적용. (adjustment layer를 추가하는 식이 좋음) 5. 256 * 16 LUT를 선택하여 병합. (색 조작으로 LUT의 색상이 바뀌어 있음) 6. 엔진이 읽을 수 있는 비압축 포맷으로 저장. 7. 활용. LUT(Color Look Up Table) 제작 방법
  • 30. 동영상으로 보자 LUT(Color Look Up Table) 제작 방법
  • 32.
  • 33. 아티스트들이 다른 방향에서 오는 fog color를 내우 구체적으로 컨트롤하고 싶어함. 특히 skydome의 수평선 컬러와 fog의 컬러를 맞추고 싶어함.
  • 35. Fog의 color를 control하기위해 아티스트들이 만든 fog texture. 좌측의 하늘 texture와 연관된 fog texture. Fog Texture의 위쪽 반은 좌측 하늘 텍스쳐와 color와 energy가 같음. 아래쪽 반은 수평선의 아래쪽 부분을 아티스트들이 직접 연장해서 만든 이미지.
  • 36. Fog texture를 적용. 문제는 앞에 있는 물체와 뒤쪽에 있는 물체가 같은 fog color의 영향을 받는다는 것. (실내나 벽 뒤에 있으면 문제가 더 심각해 짐)
  • 37. 그래서, low mip(최고 해상도)를 수평에 사용, high mip(낮은 해상도)를 카메라 가까이 사용. 1 * 1 사이즈까지 fog texture 제작. (화면 전체를 하나의 평균 색상으로 표현할 수 있는 fog texture) 그 색상은 카메라와 목적지 사이의 파티클을 관통하는 빛의 축적임. (산란과 흡수계수의 오차는 있음)
  • 38. 완성된 fog texture Mipmap들을 보면 하나의 색상이 될 때까지 흐려지고(blurrier) 있습니다.
  • 39. Mip fog 랜더링은 꽤 그럴싸함. 왜냐하면, 씬의 다른 부분에서 오는 빛들을 반영했기 때문. (sky dome의 색상을 반영했기 때문)
  • 40. Fog texture를 sample하기 위해서 카메라 벡터를 근사치로 mip fig texture를 적용해야 하는 sky의 UV space로 변환. Fog의 농도를 별도로 계산하기 위해서 전통적으로 control하는 방법을 쓴다. (height falloff, distance falloff, etc)
  • 41.
  • 42. 카메라 벡터? UV Space? Sample???
  • 43. Mip Fog를 설명하기 위해 약간의 오류를 포함한 내용이 이어집니다.
  • 44. 카메라의 vector방향(Depth)으로 빌보드가 적용된 Fog plane이 중첩된 형태를 Fog 시스템이라고 가정한 모델.카메라 카메라 화각 (FOV) Fog Plane 카메라 view 카메라 vecor Fog를 아래와 같은 구조로 구현이 된다고 가정합니다. (실제 게임의 Fog 시스템과는 다릅니다.)
  • 45. 카메라 카메라 view 카메라 vecor Sky Dome 카메라 vector를 근사치로 sky의UV Space로 변환….의 의미. 게임에서 카메라를 통해 보이는 view는 sky dome의 일부분이다. 이 view의 위치를 sky dome의 UV에서 찾는다.
  • 46. 카메라 vector를 근사치로 sky의UV Space로 변환….의 의미. Sky dome에 적용된 UV에서 하늘색 박스 부분이 실제 게임에서 카메라가 비추고 있는 화면 부분이다. 즉, sky dome이 texture를 적용하기 위해 가지고 있는 UV좌표 위에서 카메라 view의 좌표가 하늘색 박스. 카메라의 view를 sky dome의 UV space로 변환한다의 의미는 위와 같다. Texture와 UV좌표
  • 47. 카메라 vector를 근사치로 sky의UV Space로 변환….의 의미. 카메라의 view의 위치를 sky dome의 UV 좌표상에서 찾았으면, fog texture에서도 같은 위치를 찾는다. Sky Dome UV space 에서의 위치 Fog Texture에서의 위치
  • 48. 카메라 카메라 화각 (FOV) Depth(Vector)에 따른 카메라 view 영역 카메라 vecor 카메라의 FOV 때문에 카메라의 Depth(Vector)값에 따라 카메라의 view에 비치는 fog plane의 영역이 달라진다.
  • 49. 카메라의 Depth(Vector)에 따라 달라지는 view의 영역을 maipmap의 개념으로 이해하면 mipmap level 적용 부분의 이해가 쉽게된다. 카메라 카메라 화각 (FOV) 카메라 vecor
  • 50. 자연에서 눈에 들어오는 빛은 직선으로 오는 빛 뿐만아니라 주변에서 반사된 여러 빛들이 동시에 들어옴. Fog texture의전체를 사용하는 것도 아니고 일부를 sky dome의 UV space 에서 비교해서 찾아 사용. 그 부분이 mipmap level에따라 뭉게지면서 컬러(빛)들이 혼합되게 된다. 즉, 멀리 있을 수록 이 컬러(빛)들의 구분이 명확하지만(mipmap level이 낮음) 카메라와 가까울 수록 주변의 컬러(빛)과 혼합된 형태로 보여지게 된다. (mipmap level이 높음) 이런 이유로 mip fog 개념을 게임에 적용하면 빛의 축적, 산란계수 등을 근사치로 적용한 효과도 부가적으로 얻게 된다. (Fog는 카메라의 depth 값에 따라 밀도(중첩정도)가 달라지기 때문)
  • 51. Uncharted4에서 대기를 만들기 위해 사용한 여러 기술들
  • 52. Mip fog만 해도 이해하는데…. 미치겠는데… 또.. 있다고…
  • 53. 아직 시그라프 발표 4개나 더 남음. (단지 2개 분석했음) GDC 발표 남았음. 캐릭터 제작에 대한 이슈 남아있음. Substance 이슈 남아있음. 그 외 이슈들 몇 개 더 있음…