Version: Unity 6.0 (6000.0)
언어 : 한국어
라이트맵의 하드 에지 평탄화
베이킹 최적화

라이트맵의 빛 번짐 효과 해결

각 라이트맵에는 여러 개의 차트 가 포함되어 있습니다. 런타임 시 Unity는 이러한 차트를 메시 면에 매핑하고 차트의 조명 데이터를 사용하여 최종 형상을 계산합니다. GPU 샘플링이 작동하는 방식 때문에 차트가 서로 너무 가까운 경우 한 차트의 데이터가 다른 차트에 영향을 미칠 수 있습니다. 이 경우 일반적으로 앨리어싱, 픽셀화 등과 같은 의도치 않은 결함이 발생합니다.

차트 간 영향으로 인한 그래픽 결함의 예
차트 간 영향으로 인한 그래픽 결함의 예

빛 번짐 효과를 방지하려면 차트 사이에 충분한 공간이 있어야 합니다. GPU가 라이트맵을 샘플링할 때 조명 시스템은 샘플링된 지점과 가장 가까운 네 개의 텍셀에서 최종 샘플 값을 계산합니다(바이리니어 필터링을 사용한다고 가정). 이 네 개의 텍셀을 샘플링된 지점의 바이리니어 ‘이웃’이라고 합니다. 차트가 겹치는 경우 서로 너무 가까워집니다. 즉, 차트 내 특정 지점의 이웃이 다른 차트의 특정 지점 이웃과 겹칠 수 있습니다. 아래 이미지에서 흰색 픽셀은 차트 이웃을 나타내고 빨간색 픽셀은 겹치는 이웃을 나타냅니다.

빨간색 픽셀은 겹치는 차트 이웃을 나타냅니다.
빨간색 픽셀은 겹치는 차트 이웃을 나타냅니다.

최적의 차트 배치와 간격을 결정하는 것은 여러 파라미터(라이트맵 해상도, 메시 UV, 임포터 설정 등)에 따라 달라지기 때문에 어려울 수 있습니다. 이러한 이유로 인해 Unity는 다음 섹션에 설명된 대로 이러한 문제를 쉽게 식별할 수 있는 기능을 제공합니다.

식별

오버랩은 세 가지 방식으로 식별할 수 있습니다.

  • Unity 콘솔을 계속 살펴보십시오. Unity가 겹치는 UV를 감지하면 콘솔에서 영향을 받는 게임 오브젝트 목록과 함께 경고 메시지를 출력합니다.

  • 씬(Scene) 뷰에서 UV Overlap 드로우 모드를 사용합니다. 자세한 내용은 씬 뷰의 GI 시각화를 참조하십시오. 이 모드를 활성화하면 Unity는 다른 차트의 텍셀에 너무 가까운 차트 텍셀에 빨간색 하이라이트를 추가합니다. 이는 특히 씬 뷰에서 결함을 발견하고 UV 오버랩이 원인인지 빠르게 확인하려는 경우에 유용합니다.

UV Overlap 드로우 모드를 사용하는 씬 뷰(왼쪽 상단의 드롭다운 참조)
UV Overlap 드로우 모드를 사용하는 씬 뷰(왼쪽 상단의 드롭다운 참조)
  • Baked Lightmaps Preview 를 사용합니다. 게임 오브젝트를 선택하고 Lighting 창으로 이동한 다음 Baked Lightmaps 탭을 선택합니다. 하이라이트된 라이트맵을 더블 클릭하고 미리보기 창으로 이동한 다음 Baked UV Overlap 을 선택합니다(오른쪽 상단의 드롭다운 참조). 미리보기 창은 이 뷰에서 문제가 있는 텍셀을 빨간색으로 표시합니다.
Lighting 창 내 베이크된 라이트맵 탭의 베이크된 라이트맵 미리보기
Lighting 창 내 베이크된 라이트맵 탭의 베이크된 라이트맵 미리보기

해결책

UV 오버랩은 매우 많은 요소로 인해 발생하므로 완전한 한 가지 해결책은 없습니다. 다음은 가장 일반적으로 사용되는 몇 가지 해결책입니다.

  • 라이트맵 UV를 직접 제공하는 경우 모델링 패키지를 사용하여 마진을 추가하십시오.
  • Unity가 모델에 대한 라이트맵 UV를 자동으로 생성하는 경우 Unity에 팩 마진을 늘리도록 알릴 수 있습니다. 가장 간단한 방법은 Margin MethodCalculate 로 설정하고 적절한 Min Lightmap ResolutionMin Object Scale 을 설정하는 것입니다. Margin MethodManual 로 설정하려면 직접 Pack Margin 값을 조정할 수 있습니다. 이러한 설정에 대한 자세한 내용은 라이트매핑 UV 생성에 대한 기술 자료를 참조하십시오.
  • 전체 라이트맵 해상도를 높입니다. 그러면 차트 사이의 픽셀 수가 증가하여 서로 영향을 미칠 가능성이 줄어듭니다. 단점은 라이트맵이 너무 커질 수 있다는 점입니다. Lightmapper Settings__의 Lighting__ 탭에서 이 작업을 수행할 수 있습니다.
  • 단일 게임 오브젝트의 해상도를 높입니다. 이렇게 하면 겹치는 UV가 있는 게임 오브젝트에 대해서만 라이트맵 해상도를 높일 수 있습니다. 이 경우 가능성은 높지 않지만 라이트맵 크기를 늘릴 수도 있습니다. 게임 오브젝트의 라이트맵 해상도를 메시 렌더러 내부의 Lightmap Settings 에서 변경할 수 있습니다.
이전과 동일한 메시지만 서로 영향을 미치는 결함이 없음
이전과 동일한 메시지만 서로 영향을 미치는 결함이 없음
라이트맵의 하드 에지 평탄화
베이킹 최적화