[Unity] 라이트맵 디코딩 DecodeLightmap 함수와 인코딩 방식 RGBM, dLDR
라이트맵 텍스쳐를 셰이더에서 연산할 때 아래 DecodeLightmap() 함수를 활용.
인코딩된 라이트맵을 디코딩하는 함수. 플랫폼에 따라 인코딩 방식이(RGBM, dLDR) 다를 수 있음.
"UnityCG.cginc"
fixed3 DecodeLightmap (fixed4 color)
Unity 라이트맵에서 컬러를 디코딩합니다(플랫폼에 따라 RGBM 또는 dLDR).
RGBM (RGB Multiplier) 인코딩
알파 채널에 Multiplier 저장.
RGBM 범위
Linear : 0 ~ 34.49(5^2.2)
GAmma : 0 ~5
dLDR (Double Low Dynamic Range) 인코딩
모바일 플랫폼에서 사용.
범위 [0.2] 를 [0,1]에 매핑. 2보다 큰 Baked 광원 강도는 고정됨.
디코딩값
Gamma Space : *2
Linear Space : * 4.59482(2^2.2)
참고 문서
라이트맵: 기술 정보
https://docs.unity3d.com/kr/2022.3/Manual/Lightmaps-TechnicalInformation.html
빌트인 셰이더 헬퍼 함수
https://docs.unity3d.com/kr/2022.3/Manual/SL-BuiltinFunctions.html
빌트인 셰이더 Mobile-Lightmap-Unlit.shader
게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.
<유니티 교과서 개정6판>(유니티 최신 버전)
https://link.coupang.com/a/bz23dY
<대마왕의 유니티 URP 셰이더 그래프 스타트업>
https://link.coupang.com/a/bs8qyC
유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)