유니티 엔진 (Unity Engine)

[Unity] 라이트맵 디코딩 DecodeLightmap 함수와 인코딩 방식 RGBM, dLDR

원소랑 2024. 5. 2. 11:47

라이트맵 텍스쳐를 셰이더에서 연산할 때 아래 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

 

라이트맵: 기술 정보 - Unity 매뉴얼

Unity 에디터는 타겟 플랫폼과 라이팅 창의 압축 설정에 따라 압축과 인코딩 방식이 다른 라이트맵을 저장합니다.

docs.unity3d.com

 

빌트인 셰이더 헬퍼 함수

https://docs.unity3d.com/kr/2022.3/Manual/SL-BuiltinFunctions.html

 

빌트인 셰이더 헬퍼 함수 - Unity 매뉴얼

Unity에는 셰이더를 더 간편하고 쉽게 작성하는 데 유용한 빌트인 유틸리티 기능이 있습니다.

docs.unity3d.com

 

빌트인 셰이더 Mobile-Lightmap-Unlit.shader

https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/DefaultResourcesExtra/Mobile/Mobile-Lightmap-Unlit.shader

 

Unity-Built-in-Shaders/DefaultResourcesExtra/Mobile/Mobile-Lightmap-Unlit.shader at master · TwoTailsGames/Unity-Built-in-Shade

Unity Built in Shaders. Contribute to TwoTailsGames/Unity-Built-in-Shaders development by creating an account on GitHub.

github.com

 


게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.

 

<유니티 교과서 개정6판>(유니티 최신 버전)
https://link.coupang.com/a/bz23dY

 

유니티 교과서 개정6판

COUPANG

www.coupang.com

 

<대마왕의 유니티 URP 셰이더 그래프 스타트업>

https://link.coupang.com/a/bs8qyC

 

대마왕의 유니티 URP 셰이더 그래프 스타트업

COUPANG

www.coupang.com

 

유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)


 

728x90
반응형