Unity Blog 에 올라온 글을 읽고 핵심만 요약 정리.
(원문 : 5 common lightmapping problems and tips to help you fix them)
라이트매핑에 자주 발생하는 다섯 가지 문제
1. 씬에 베이크된 전역 조명이 없는 경우 (No Baked Global Illumination in the scene)
2. 오브젝트에서 조명이 누락된 경우 (Objects are missing lighting)
3. 발광 머티리얼이 렌더링되지 않는 경우 (Emissive materials are not rendering)
4. 평평한 노멀 맵 (Flat normal maps)
5. 스페큘러 반응이 누락된 경우 (Missing specular response)
각 해결 방법
1. 씬에 베이크된 전역 조명이 없는 경우 (No Baked Global Illumination in the scene)
3가지가 충족되어야 함.
1. Mesh Renderer 에 Contribute Global Illumination 체크된 오브젝트가 1개 이상
2. 씬에 배치된 Light 의 Mode를 Mixed 또는 Baked 로 설정.
3. 셰이더에서 Lightmap, GI 연산 필요.
디버깅을 위해 GI 를 지원하는 Built-in 셰이더로 변경해본다.
(Standard Shader 혹은 Lit Shader)
GI 캐시 삭제 방법
[Menu > Preferences > GI Cache] 에서 Clean Cache
2. 오브젝트에서 조명이 누락된 경우 (Objects are missing lighting)
라이트 프로브 문제일 수 있음.
라이트 프로브 배치
동적 오브젝트에 간접 조명 데이터 샘플링을 위한 라이트 프로브가 필요.
조명을 샘플링할 라이트 프로브가 없는 경우 발생할 수 있음.
반사 프로브 배치.
로컬 반사 프로브가 없다면 광택을 가진 머티리얼이 검은색으로 나타날 수 있음. Bounces 수를 늘려서 조정해볼 수도 있음.
Mesh Renderer 에 Probes 셋팅을 Blend ~ 로 설정.
3. 발광 머티리얼이 렌더링되지 않는 경우 (Emissive materials are not rendering)
포스트 프로세싱 스택에 블룸(Bloom) 활성화.
Mesh Renderer 에서 Contribute Global Illumination 활성화.
Receive Global Illumination 은 Light Probes 로 설정.
Material 셰이더 설정에서 Emission 아래에 Global Illumination 을 Backed 로 설정.
Lighting 설정 창에서 Lightmapping Settings 헤더 아래에 Indirect Intensity 값을 0 이상으로.
중간 이미지 : 포스트 프로세싱 적용
오른쪽 이미지 : GI Contribute 적용
4. 평평한 노멀 맵 (Flat normal maps)
Lighting 설정 창에서 Directional Mode 가 Non-Directional 모드로 Bake한 경우. 이를 Directional 모드로 변경.
Light 컴포넌트의 모드를 Mixed 로 전환. 단, 실시간 광원과 성능 비용이 동일할 수 있음.
또는, 라이트 프로브 사용. Baked Light 보다 Light Probe 결과가 더 우수한 경우가 많음. Receive Global Illumination 프로퍼티를 Light Probes로 설정.
5. 스페큘러 반응이 누락된 경우 (Missing specular response)
Baked lights 는 머티리얼에 실시간 스페큘러를 처리할 수 없음.
혼합 광원을 사용. Light 컴포넌트에 Mode를 Mixed로.
발광 프록시(emissive proxies) 사용. 발광 오브젝트로 스페큘러 효과를 모방한다.
한글 블로그
영문 블로그
https://blog.unity.com/engine-platform/5-common-lightmapping-problems-and-tips-to-help-you-fix-them
게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.
<유니티 교과서 개정6판>(유니티 최신 버전)
https://link.coupang.com/a/bz23dY
<대마왕의 유니티 URP 셰이더 그래프 스타트업>
https://link.coupang.com/a/bs8qyC
<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e>
https://link.coupang.com/a/8VWas
<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것>
https://link.coupang.com/a/9BqLd
유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
[Unity] 모바일📱최적화 2022LTS 파트 1~4 정리 + 스크랩 (0) | 2024.05.13 |
---|---|
[Unity] 라이트맵 베이킹을 위한 간단 가이드 + 요약 (0) | 2024.05.07 |
[Unity] Renderer.staticShadowCaster 의 의미. LightMap 굽는데 영향이 있나? Static 플래그와는 무슨 관계일까? 에 대한 짧은 결론. (0) | 2024.05.03 |
[Unity] 라이트맵 디코딩 DecodeLightmap 함수와 인코딩 방식 RGBM, dLDR (0) | 2024.05.02 |
[Unity][Error] 프로젝트 열 때 "No valid user created or default window layout found." 에러 간단 해결 방법 (0) | 2024.05.02 |
[Unity] 프리팹과 프리팹의 변형, 프리팹 배리언트 (Prefab Variant) (0) | 2024.04.30 |
[Unity] 메시 폴리곤 줄이기/단순화 Mesh Decimator/Simplifier (0) | 2024.04.03 |