SlideShare a Scribd company logo
1 of 48
Download to read offline
Unity Color Space
Gamma Correction
2018.12.1
데브루키
알콜코더
박민근
이 PPT는 아래 KASA의 이민웅님 발표 자료를
기반으로 제작 되었음을 알려 드립니다.
Gamma and Linear Color Space 이민웅
Color Space in Unity
광원 감쇠(Fall Off)
광원 감쇠(Fall Off)
리니어 강도 반응
리니어 블렌딩과 감마 블렌딩
Linear Blend
Gamma Blend
왜 이런 차이가 날까??
리니어 및 감마 컬러 스페이스
리니어 그레디언트 사람의 눈이 인지하는
그레디언트
중간 회색의 경계가 어디 있는지 주목!
TITLE 1
SUB TITLE 1
sRGB
지금은 모니터가 디지털이지만, 여전히 감마로 인코딩된 입력 신호를 수신합니다.
이미지 파일과 비디오 파일은 감마 공간에 있게 명시적으로 인코딩됩니다. 따라서
리니어 강도가 아닌 감마 인코딩 값을 포함합니다. 이 방식이 표준이며, 모든 것은
감마 공간에 있습니다.
널리 인정되는 감마 공간 표준을 sRGB(위키피디아 참조)이라고 합니다. 이 표준은
사람의 눈이 채널당 8비트 정밀도를 최대한 이용할 수 있게 하는 리니어 공간으로
의 매핑을 정의합니다. 이 매핑은 아래 다이어그램에 나와 있습니다
(유니티 공식 문서)
텍스쳐 Import
sRGB 체크 – 감마공간 텍스쳐 인지 유무, 리니어 컬러로 세팅된 경우에만 적용됨.
체크 – 리니어 공간에 맞게 감마 텍스쳐를 Gamma Correction 해준다
체크 해제 – 만약 텍스쳐가 리니어 컬러 공간(Gamma 1.0)에서 제작된 경우,
체크를 해제 하면, Gamma Correction을 적용 안함(Bypass)
유니티 UI 문제
Color Space 변경 시, UI 문제 발생
Gamma UI Texture의 알파 문제 in Unity Linear Color
[문제 상황]
유니티에서 한창 작업중 Linear Color Space가 좋다고 해서
바꿨더니, 모든 UI의 알파가 변해버리는 문제가 발생!!
Linear
Gamma
선형(Linear) 렌더링에서의 UI 작업할때 요령 - 대마왕
Gamma UI Texture의 알파 문제 in Unity Linear Color
• 일반 UI Texture는 감마 스페이스 기준으로 제작됨
• 앞의 알파 블렌드 공식을 어떻게 적용해야 하나?!!
• 유니티에서 기본적인 해결 방법을 제공 안해줌!
Gamma UI Texture 해결 방법 #1
• 걍 모든 텍스쳐를 포토샵에서 Linear Color Space로 변환
• UI 아티스트만 고생하면됨(?)
• 프로젝트 변경 작업 불필요
• 하지만?
이미 너무 많이 만들었어?!!
Gamma UI Texture 해결 방법 #2
• 프로그래밍 사이드에서 해결 방법
• 언리얼 엔진의 해결 방법 차용
• 아래 방법의 정반대로 렌더링
• 텍스쳐는 sRGB 체크 해제 (감마 공간 그대로 사용)
Gamma UI Texture 해결 방법 #2
• 리니어 세팅에서 기본 렌더타겟은 리니어 스페이스
• 2대의 카메라 이용 (1 – 게임 렌더링 2 - UI만 렌더링)
UI를 제외한
게임 렌더링
Render Target
1번 카메라
게임 화면만을 렌더링, 이후 셰이더 코드를 통해서,
렌더 타겟을 Linear -> Gamma로 변환
Gamma UI Texture 해결 방법 #2 - Component
Gamma UI Texture 해결 방법 #2 - Script
Gamma UI Texture 해결 방법 #2 - LinearToGamma
LinearToGamma.shader
Gamma UI Texture 해결 방법 #2
• 리니어 세팅에서 기본 렌더타겟은 리니어 스페이스
• 2대의 카메라 이용 (1 – 게임 렌더링 2 - UI만 렌더링)
UI를 제외한
게임 렌더링
Render Target
Gamma UI Texture 해결 방법 #2
• 2번째 UI 카메라로 감마공간으로 변환된 렌더 타겟에 UI만
• 이때는, 렌더타겟과 텍스쳐 둘다 Gamma라서 알파 블렌딩이
제대로 수행됨
UI를 제외한
게임 렌더링
Render Target
UI Texture
UI만 렌더링UI 카메라
sRGB 체크 해제(bypass)
감마 그대로 사용
Gamma UI Texture 해결 방법 #2
• UI 렌더링 이후 렌더 타겟을 다시 리니어로 보간
• 유니티의 리니어 렌더링 최종 렌더 버퍼는 리니어 공간이어야 함
UI를 제외한
게임 렌더링
Render Target
UI Texture
UI만 렌더링UI 카메라
Gamma UI Texture 해결 방법 #2 - GammaToLinear
GammaToLinear.shader
Gamma UI Texture 해결 방법 #2 – Profit!!
Reference
• Gamma와 Linear Color Space – 이민웅
• 리니어 렌더링 개요 – 유니티 문서
• 선형(Linear) 렌더링에서의 UI 작업할때 요령 – 대마왕
• Bug with Bypass sRGB Sampling?

More Related Content

What's hot

[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
MinGeun Park
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
Jangho Lee
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
henjeon
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
Naughty Dog
 

What's hot (20)

DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
191019 Forward / Deferred Rendering
191019 Forward / Deferred Rendering191019 Forward / Deferred Rendering
191019 Forward / Deferred Rendering
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
Gamma and linear color-space
Gamma and linear color-spaceGamma and linear color-space
Gamma and linear color-space
 
Ssao
SsaoSsao
Ssao
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
Real-Time Global Illumination Techniques
Real-Time Global Illumination TechniquesReal-Time Global Illumination Techniques
Real-Time Global Illumination Techniques
 
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The RunFive Rendering Ideas from Battlefield 3 & Need For Speed: The Run
Five Rendering Ideas from Battlefield 3 & Need For Speed: The Run
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
Motion blur
Motion blurMotion blur
Motion blur
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더아티스트에게 사랑받는 3DS Max 우버쉐이더
아티스트에게 사랑받는 3DS Max 우버쉐이더
 
HDR Theory and practicce (JP)
HDR Theory and practicce (JP)HDR Theory and practicce (JP)
HDR Theory and practicce (JP)
 

Similar to [데브루키] Color space gamma correction

게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
Yggdrasil610
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
MinGeun Park
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
devCAT Studio, NEXON
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
민웅 이
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
JP Jung
 
MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일
drandom
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
JP Jung
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
noerror
 

Similar to [데브루키] Color space gamma correction (20)

Color Control
Color ControlColor Control
Color Control
 
Gamma라고 들어봤니
Gamma라고 들어봤니Gamma라고 들어봤니
Gamma라고 들어봤니
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해Display color와 Digital texture format의 이해
Display color와 Digital texture format의 이해
 
모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부모바일웹Ui개발 저자세미나 1부
모바일웹Ui개발 저자세미나 1부
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일MMORPG게임엔진의 현재와미래 by 장언일
MMORPG게임엔진의 현재와미래 by 장언일
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤
 
Uncharted4 part1
Uncharted4 part1Uncharted4 part1
Uncharted4 part1
 

More from MinGeun Park

More from MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 

[데브루키] Color space gamma correction

  • 1. Unity Color Space Gamma Correction 2018.12.1 데브루키 알콜코더 박민근
  • 2. 이 PPT는 아래 KASA의 이민웅님 발표 자료를 기반으로 제작 되었음을 알려 드립니다. Gamma and Linear Color Space 이민웅
  • 3.
  • 8. 리니어 블렌딩과 감마 블렌딩 Linear Blend Gamma Blend
  • 10. 리니어 및 감마 컬러 스페이스 리니어 그레디언트 사람의 눈이 인지하는 그레디언트 중간 회색의 경계가 어디 있는지 주목!
  • 11.
  • 12.
  • 13.
  • 14.
  • 16.
  • 17.
  • 18.
  • 19. sRGB 지금은 모니터가 디지털이지만, 여전히 감마로 인코딩된 입력 신호를 수신합니다. 이미지 파일과 비디오 파일은 감마 공간에 있게 명시적으로 인코딩됩니다. 따라서 리니어 강도가 아닌 감마 인코딩 값을 포함합니다. 이 방식이 표준이며, 모든 것은 감마 공간에 있습니다. 널리 인정되는 감마 공간 표준을 sRGB(위키피디아 참조)이라고 합니다. 이 표준은 사람의 눈이 채널당 8비트 정밀도를 최대한 이용할 수 있게 하는 리니어 공간으로 의 매핑을 정의합니다. 이 매핑은 아래 다이어그램에 나와 있습니다 (유니티 공식 문서)
  • 20.
  • 21. 텍스쳐 Import sRGB 체크 – 감마공간 텍스쳐 인지 유무, 리니어 컬러로 세팅된 경우에만 적용됨. 체크 – 리니어 공간에 맞게 감마 텍스쳐를 Gamma Correction 해준다 체크 해제 – 만약 텍스쳐가 리니어 컬러 공간(Gamma 1.0)에서 제작된 경우, 체크를 해제 하면, Gamma Correction을 적용 안함(Bypass)
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. 유니티 UI 문제 Color Space 변경 시, UI 문제 발생
  • 30. Gamma UI Texture의 알파 문제 in Unity Linear Color [문제 상황] 유니티에서 한창 작업중 Linear Color Space가 좋다고 해서 바꿨더니, 모든 UI의 알파가 변해버리는 문제가 발생!!
  • 31. Linear Gamma 선형(Linear) 렌더링에서의 UI 작업할때 요령 - 대마왕
  • 32.
  • 33.
  • 34.
  • 35. Gamma UI Texture의 알파 문제 in Unity Linear Color • 일반 UI Texture는 감마 스페이스 기준으로 제작됨 • 앞의 알파 블렌드 공식을 어떻게 적용해야 하나?!! • 유니티에서 기본적인 해결 방법을 제공 안해줌!
  • 36. Gamma UI Texture 해결 방법 #1 • 걍 모든 텍스쳐를 포토샵에서 Linear Color Space로 변환 • UI 아티스트만 고생하면됨(?) • 프로젝트 변경 작업 불필요 • 하지만? 이미 너무 많이 만들었어?!!
  • 37. Gamma UI Texture 해결 방법 #2 • 프로그래밍 사이드에서 해결 방법 • 언리얼 엔진의 해결 방법 차용 • 아래 방법의 정반대로 렌더링 • 텍스쳐는 sRGB 체크 해제 (감마 공간 그대로 사용)
  • 38. Gamma UI Texture 해결 방법 #2 • 리니어 세팅에서 기본 렌더타겟은 리니어 스페이스 • 2대의 카메라 이용 (1 – 게임 렌더링 2 - UI만 렌더링) UI를 제외한 게임 렌더링 Render Target 1번 카메라 게임 화면만을 렌더링, 이후 셰이더 코드를 통해서, 렌더 타겟을 Linear -> Gamma로 변환
  • 39. Gamma UI Texture 해결 방법 #2 - Component
  • 40. Gamma UI Texture 해결 방법 #2 - Script
  • 41. Gamma UI Texture 해결 방법 #2 - LinearToGamma LinearToGamma.shader
  • 42. Gamma UI Texture 해결 방법 #2 • 리니어 세팅에서 기본 렌더타겟은 리니어 스페이스 • 2대의 카메라 이용 (1 – 게임 렌더링 2 - UI만 렌더링) UI를 제외한 게임 렌더링 Render Target
  • 43. Gamma UI Texture 해결 방법 #2 • 2번째 UI 카메라로 감마공간으로 변환된 렌더 타겟에 UI만 • 이때는, 렌더타겟과 텍스쳐 둘다 Gamma라서 알파 블렌딩이 제대로 수행됨 UI를 제외한 게임 렌더링 Render Target UI Texture UI만 렌더링UI 카메라 sRGB 체크 해제(bypass) 감마 그대로 사용
  • 44. Gamma UI Texture 해결 방법 #2 • UI 렌더링 이후 렌더 타겟을 다시 리니어로 보간 • 유니티의 리니어 렌더링 최종 렌더 버퍼는 리니어 공간이어야 함 UI를 제외한 게임 렌더링 Render Target UI Texture UI만 렌더링UI 카메라
  • 45. Gamma UI Texture 해결 방법 #2 - GammaToLinear GammaToLinear.shader
  • 46. Gamma UI Texture 해결 방법 #2 – Profit!!
  • 47.
  • 48. Reference • Gamma와 Linear Color Space – 이민웅 • 리니어 렌더링 개요 – 유니티 문서 • 선형(Linear) 렌더링에서의 UI 작업할때 요령 – 대마왕 • Bug with Bypass sRGB Sampling?