Version: 2020.3
라이트매핑
프로그레시브 GPU 라이트매퍼(프리뷰)

프로그레시브 라이트매퍼

프로그레시브 라이트매퍼는 고속 경로 추적 기반 라이트매퍼 시스템으로, Unity 에디터의 프로그레시브 업데이트를 통해 베이크된 라이트맵과 라이트 프로브를 제공합니다. 이 라이트매퍼 시스템은 영역이 작고 각도 오류가 없으며 겹치지 않는 UV와 차트 사이의 충분한 패딩을 필요로 합니다

프로그레시브 라이트매퍼는 짧은 준비 단계를 통해 지오메트리와 인스턴스 업데이트를 처리하고 G버퍼 및 차트 마스크를 생성합니다. 그런 다음 결과물을 즉시 생성한 후 점진적으로 다듬기 때문에 인터랙티브 조명 워크플로를 크게 개선할 수 있습니다. 또한 프로그레시브 라이트매퍼는 베이크하는 동안 예상 시간을 제공하기 때문에 베이크 시간을 더욱 쉽게 예측할 수 있습니다.

또한 프로그레시브 라이트매퍼는 업샘플링 방식을 사용하거나 복사 조도 캐시 또는 기타 전역 데이터 구조를 사용하지 않고 각 개별 텍셀(texel)의 라이트맵 해상도 수준으로 전역 조명(GI)을 베이크할 수 있습니다. 또한 라이트맵 일부를 선택하여 베이크할 수 있으므로 더욱 빠르게 씬을 테스트하고 반복할 수 있습니다.

인터랙티브 워크플로에 대한 자세한 내용은 개발 - 프로그레시브 라이트매퍼(In Development - Progressive Lightmapper)(YouTube) 비디오 가이드를 참조하십시오.

프로그레시브 CPU 라이트매퍼와 프로그레시브 GPU 라이트매퍼(프리뷰)

프로그레시브 라이트매퍼에 대한 두 개의 백엔드 중에서 선택할 수 있습니다. 프로그레시브 CPU 라이트매퍼는 컴퓨터의 CPU와 시스템 RAM을 사용하는 프로그레시브 라이트매퍼용 백엔드입니다. 프로그레시브 GPU 라이트매퍼는 컴퓨터의 GPU와 VRAM을 사용하는 프로그레시브 라이트매퍼용 백엔드입니다.

프로그레시브 GPU 라이트매퍼는 진행 중인 개발의 프리뷰 기능이며, 향후 변경될 수 있습니다. 프로그레시브 GPU 라이트매퍼 백엔드에 대한 자세한 내용은 프로그레시브 GPU 라이트매퍼(프리뷰)를 참조하십시오.

렌더 파이프라인 지원

  • 빌트인 렌더 파이프라인은 프로그레시브 라이트매퍼를 지원합니다.
  • 유니버설 렌더 파이프라인(URP)은 프로그레시브 라이트매퍼를 지원합니다.
  • 고해상도 렌더 파이프라인(HDRP)은 프로그레시브 라이트매퍼를 지원합니다.

프로그레시브 라이트매퍼 사용

프로그레시브 라이트매퍼를 사용하려면 다음 단계를 따르십시오.

  1. Window > Rendering > Lighting 으로 이동합니다.
  2. Lightmapping Settings 로 이동합니다.
  3. LightmapperProgressive CPU 또는 Progressive GPU 로 설정합니다.

LightmapEditorSettings라이트매핑 API를 사용하여 스크립트를 통해 이 창에서 제공되는 많은 기능들을 사용할 수 있습니다.

설정

Setting 설명
Lightmapper 이 설정을 사용하여 씬의 라이트맵을 계산할 때 사용할 내부 조명 계산 소프트웨어를 지정합니다. 제공되는 옵션은 다음과 같습니다.

프로그레시브 CPU
프로그레시브 GPU
인라이튼(지원 중단 예정)

기본값은 Progressive CPU 입니다.
Prioritize View 이 설정을 활성화하면 프로그레시브 라이트매퍼가 씬 뷰에서 현재 보이는 텍셀에 먼저 변경 내용을 적용한 후 뷰 밖에 있는 텍셀에 변경 내용을 적용합니다
Multiple Importance Sampling 이 설정을 활성화하면 환경 샘플링에 중요도 기반 멀티 샘플링을 사용할 수 있습니다. 이 경우 라이트맵을 생성할 때 수렴 속도가 빨라지지만, 특정 저주파수 환경에서 노이즈가 더 많이 발생할 수 있습니다. 이 설정은 기본적으로 비활성화됩니다.
Direct Samples 각 텍셀에서 방출된 샘플(경로)의 수입니다. 이 설정은 프로그레시브 라이트매퍼가 직접 조명 계산에 사용하는 샘플 수를 제어합니다. 이 값을 올리면 라이트맵 품질이 향상되지만 베이크 시간이 늘어납니다.
Indirect Samples 각 텍셀에서 방출된 샘플(경로)의 수입니다. 이 설정은 프로그레시브 라이트매퍼가 간접 조명 계산에 사용하는 샘플 수를 제어합니다. 야외 씬을 비롯한 일부 씬에서는 100개 샘플이면 충분합니다. 발광 지오메트리가 있는 실내 씬의 경우에는 원하는 결과를 얻을 때까지 값을 올립니다.
Environment Samples Environment Samples 프로퍼티는 Unity가 광원을 직접 수집하기 위해 스카이박스를 향해 투사하는 총 환경 광선 수를 결정합니다. Unity는 컨텍스트에 따라 라이트맵 텍셀 또는 라이트 프로브 포지션에서 이러한 광선을 투사합니다. 기본값은 500입니다. 값이 높을수록 결과가 더 부드러워지지만, 베이크 시간이 늘어납니다.

HDR 스카이 박스가 있는 씬에서는 최종 라이트맵 또는 프로브의 노이즈를 줄이기 위해 더 많은 샘플이 필요한 경우가 많습니다. 밝은 특이점(예: 태양) 또는 콘트라스트가 뚜렷한 고주파 디테일(예: 역광 구름)이 포함된 스카이 박스가 있는 씬도 샘플 수가 많을수록 좋습니다.
Light Probe Sample Multiplier 라이트 프로브에 사용되는 샘플 수를 위 샘플 값의 멀티플라이어로 제어합니다. 값이 높을수록 라이트 프로브의 품질이 향상되지만, 그만큼 베이크 시간이 증가합니다. 이 기능을 활성화하려면 Project Settings > Editor로 이동한 후 Use legacy Light Probe sample counts를 비활성화하십시오. 기본값은 4입니다.
Bounces 이 값을 사용하면 경로 추적에 사용할 간접 바운스 수를 지정할 수 있습니다. 대부분의 씬에서는 2개 바운스면 충분합니다. 일부 실내 씬의 경우 더 많은 바운스가 필요합니다.
Min Bounces 프로그레시브 라이트매퍼가 간접 조명 계산에 포함할 수 있는 최소 바운스 수입니다.

기본값은 2이고 범위는 0–100입니다.
Max Bounces 프로그레시브 라이트매퍼가 간접 조명 계산에 포함할 수 있는 바운스 수입니다.

기본값은 2이고 범위는 0–100입니다.

각 바운스는 씬을 베이크하는 데 필요한 계산 리소스를 증가시킵니다. 실내 씬에는 더 높은 바운스 값을 사용하고, 실외 씬과 밝은 표면이 많은 씬에는 더 낮은 바운스 값을 사용하십시오.

Min Bounces와 Max Bounces 사이의 범위가 넓어지면 라이트맵에 표시되는 노이즈의 양이 증가합니다.
Filtering 노이즈를 줄이기 위해 프로그레시브 라이트매퍼가 라이트맵에 포스트 프로세싱 효과를 적용하는 방식을 설정합니다. 라이트맵 포스트 프로세싱의 경우 라이트맵은 Unity가 단일 라이트맵으로 합성하기 전에 포스트 프로세싱을 개별적으로 적용하는 Direct, IndirectAmbient Occlusion 타겟으로 분할됩니다.

- Direct: 조명에서 센서(보통 카메라)에 직접적으로 도착하는 광원입니다.
- Indirect: 조명에서 센서에 간접적으로 도착하는 광원입니다. 일반적으로 다른 게임 오브젝트에서 반사되는 광원에 적용됩니다.
- Ambient Occlusion: 조명 시스템이 계산하는 주변광입니다.
없음 이 설정을 선택하면 라이트맵에 필터나 노이즈 감소를 사용하지 않습니다
Auto 이 설정을 선택하면 라이트맵의 포스트 프로세싱에 플랫폼별 프리셋을 사용합니다.
개발용 컴퓨터가 OptiX(NVIDIA OptiX AI 가속 디노이저)를 실행하기 위한 요구 사항을 충족하는 경우 프로그레시브 라이트매퍼는 모든 타겟에 대해 1텍셀 반지름을 가진 가우스 필터가 포함된 디노이저를 사용합니다.
개발용 컴퓨터가 OptiX를 실행할 수 없는 경우 프로그레시브 라이트매퍼는 Direct에 대해 1텍셀 반지름, Indirect에 대해 5텍셀 반지름, Ambient Occlusion에 대해 2텍셀 반지름을 가진 가우스 필터를 사용합니다.
Advanced Advanced 를 선택하면 라이트맵 타겟의 각 타입에 대한 옵션을 수동으로 설정할 수 있습니다. 타겟 타입으로는 Direct, Indirect, Ambient Occlusion이 있습니다. 자세한 내용은 아래의 고급 필터링 설정을 참조하십시오.
Indirect Resolution 이 설정을 사용하면 라이트매퍼가 간접 조명 계산에 사용하는 샘플 수를 지정할 수 있습니다. 값이 높을수록 라이트맵 품질이 향상되지만, 그만큼 베이크하는 데 걸리는 시간이 증가합니다.
Lightmap Resolution 이 설정을 사용하여 라이트맵에 사용할 유닛당 텍셀 수를 지정합니다. 값을 높이면 라이트맵 품질이 향상되지만 베이크 시간이 늘어납니다. 이 값을 두 배로 만들면 텍셀 수가 네 배가 되는데, 이는 값이 라이트맵의 높이와 너비를 모두 참조하기 때문입니다. 라이팅 창의 하단에 있는 통계 영역에서 Occupied texels 수를 확인하십시오.
Lightmap Padding 이 설정을 사용하여 베이크된 라이트맵의 서로 다른 모양 간에 분리(텍셀 단위)를 지정합니다. 기본값은 2입니다.
Lightmap Size 전체 라이트맵 텍스처의 크기(픽셀 단위)로, 개별 게임 오브젝트 텍스처의 별도 영역들을 통합합니다. 기본 값은 1024입니다.
Compress Lightmaps 압축된 라이트맵을 사용하면 저장 공간을 덜 차지하지만 압축 과정에서 원치 않는 시각 효과가 텍스처에 유입될 수 있습니다. 라이트맵을 압축하려면 이 체크박스를 선택하고, 압축하지 않고 그대로 유지하려면 선택 해제합니다. 기본적으로 체크박스가 선택되어 있습니다.
Ambient Occlusion 이 체크박스를 선택하면 베이크된 앰비언트 오클루전에서 표면의 상대적인 밝기를 조절하는 데 사용할 수 있는 설정 그룹을 엽니다. 값이 높을수록 오클루전된 영역과 빛이 완전히 비추는 영역의 콘트라스트가 커집니다. 이는 GI 시스템에서 계산한 간접 조명에만 적용됩니다. 이 설정은 기본적으로 활성화되어 있습니다.
Max Distance 오브젝트에 오클루전을 적용할지 결정하기 위해 조명 시스템에서 광선을 투사하는 거리를 조정하는 값을 설정합니다. 값이 클수록 더 긴 광선이 생성되고 라이트맵에 그림자가 더 많이 추가되는 한편, 값이 작을수록 오브젝트가 서로 매우 가까이에 있는 경우에만 그림자를 추가하는 더 짧은 광선이 생성됩니다. 값을 0으로 설정하면 최대 거리가 없는 무한하게 긴 광선이 투사됩니다. 기본값은 1입니다.
Indirect Contribution 슬라이더를 사용하여 최종 라이트맵에 보이는 간접광(즉 주변광 또는 오브젝트에서 반사되어 방출되는 빛)의 밝기를 0과 10 사이의 값으로 스케일합니다. 기본값은 1입니다. 값이 1보다 작으면 강도가 감소하고 값이 1보다 크면 증가합니다.
Direct Contribution 슬라이더를 사용하여 직접광의 밝기를 0과 10 사이의 값으로 스케일합니다. 기본값은 0입니다. 값이 높을수록 직접광에 적용되는 콘스라스트가 커집니다.
Directional Mode 오브젝트 표면의 각 포인트에 빛을 비추는 광원 중에서 가장 비중이 큰 광원에 대한 정보를 저장하도록 라이트맵을 설정할 수 있습니다. 자세한 내용은 방향 라이트매핑 문서를 참조하십시오. 기본 모드는 Directional 입니다.
Directional Directional 모드에서 Unity는 빛을 비추는 광원의 주 방향을 저장하는 두 번째 라이트맵을 생성합니다. 이 모드에서는 디퓨즈 노멀 매핑된 머티리얼을 GI와 함께 사용할 수 있습니다. Directional 모드에서는 추가 라이트맵 데이터를 저장하는 데 스토리지 공간이 약 두 배 더 필요합니다. 방향성 라이트맵은 SM2.0 하드웨어에서 또는 GLES2.0을 사용하는 경우 디코딩할 수 없으며, 무방향성 라이트맵으로 폴백됩니다.
Non-directional Non-directional 모드는 들어오는 광원의 주된 방향을 저장하기 위해 두 번째 라이트맵을 생성하는 Unity 기능을 비활성화합니다.
Indirect Intensity 슬라이더를 사용하여 실시간 및 베이크된 라이트맵에 저장되는 간접광의 밝기를 0과 5 사이의 값으로 조절합니다. 값을 1보다 크게 설정하면 간접광의 강도가 증가하는 한편, 1보다 작게 설정하면 간접광 강도가 감소합니다. 기본값은 1입니다.
Albedo Boost 이 슬라이더를 사용하여 Unity가 표면 사이에서 반사하는 광원의 양을 1과 10 사이의 값으로 조절합니다. 이를 위해 Unity는 씬 내 머티리얼의 알베도 강도를 높입니다. 값을 높게 설정할수록 간접광 계산에 사용되는 알베도 값이 흰색에 더 가까워집니다. 기본값인 1이 물리적으로 정확합니다.
Lightmap Parameters Unity는 라이트매핑을 수행할 때 라이팅 창의 프로퍼티와 더불어 일반적인 파라미터 집합을 함께 사용합니다. 몇 가지 기본값은 이 프로퍼티에 대한 메뉴에서 선택할 수도 있습니다. 또는 Create New 옵션을 사용하여 라이트맵 파라미터 파일을 직접 생성할 수도 있습니다. 자세한 내용은 라이트맵 파라미터 페이지를 참조하십시오. 기본값은 Default-Medium 입니다.

고급 필터링 설정

Filtering 을 Advanced 로 설정할 경우 이용 가능한 Filtering 설정
FilteringAdvanced 로 설정할 경우 이용 가능한 Filtering 설정
설정 설명
Advanced FilteringAdvanced로 설정하면 라이트맵 타겟의 각 타입에 대한 옵션을 수동으로 설정할 수 있습니다. 타겟 타입은 다음과 같습니다.

- Direct: 조명에서 센서(보통 카메라)에 직접적으로 도착하는 광원입니다.
- Indirect: 조명에서 센서에 간접적으로 도착하는 광원입니다. 일반적으로 다른 게임 오브젝트에서 반사되는 광원에 적용됩니다.
- Ambient Occlusion: 조명 시스템이 계산하는 주변광입니다.
Denoiser 라이트맵 타겟에 사용할 디노이저를 선택하십시오. 사용 가능한 옵션은 다음과 같습니다.

Optix: NVIDIA Optix 디노이저는 베이크된 라이트맵의 노이즈를 줄여주는 AI 가속 디노이저입니다. NVIDIA GPU, 4GB+ VRAM 및 드라이버 버전 390+를 필요로 하고 Windows 플랫폼에서만 지원됩니다.
RadeonPro: RadeonPro 디노이저는 베이크된 라이트맵의 노이즈를 줄여주는 AI 가속 디노이저입니다. OpenCL 지원 GPU와 4GB+ VRAM을 필요로 합니다.
- OpenImageDenoise: Intel Open Image 디노이저는 베이크된 라이트맵의 노이즈를 줄여주는 AI 가속 디노이저입니다.
- None: 디노이저를 사용하지 않습니다.
Filter 라이트맵 타겟에 사용할 필터를 선택합니다.
- Gaussian: 이 옵션을 선택하면 라이트맵 타겟에 가우스 필터를 사용합니다. 가우스 필터는 라이트맵에 대칭 가우스 필터를 적용합니다. 그러면 라이트맵을 흐릿하게 만들어 눈에 보이는 노이즈를 줄입니다.
- A-Trous: 이 옵션을 선택하면 라이트맵 타겟에 A-Trous 필터를 사용합니다. A-Trous 필터는 블러 정도를 최소화하고 라이트맵에 보이는 노이즈를 제거합니다.
- None: 이 옵션을 선택하면 라이트맵 타겟에 대한 모든 필터링을 비활성화합니다.
Radius 이 옵션은 FilterGaussian으로 설정된 경우에만 사용할 수 있습니다. Radius 값을 사용하여 가우스 필터 커널의 반지름을 텍셀 단위로 설정하십시오. Radius 값을 높이면 블러 세기가 증가하고 눈에 띄는 노이즈가 감소하지만, 조명 디테일이 손실될 수 있습니다.
Sigma 이 옵션 FilterA-Trous로 설정된 경우에만 사용할 수 있습니다. Sigma 값을 사용하여 보존할 디테일 양 또는 조명의 블러 정도를 조정하십시오. Sigma 값을 높이면 블러 세기가 증가하고 눈에 띄는 노이즈가 감소하지만, 조명 디테일이 손실될 수 있습니다.

통계

Auto GenerateGenerate Lighting 옵션 밑에 있는 패널에는 다음과 같은 라이트매핑 통계가 표시됩니다.

  • Unity가 생성한 라이트맵 개수
  • Memory Usage: 현재 라이트매핑에 필요한 메모리 양입니다.
  • Occupied Texels: 라이트맵 UV 공간에서 사용된 텍셀 수입니다.
  • Lightmaps in view: 씬 뷰에 있는 라이트맵 개수입니다.
  • Lightmaps not in view: 씬 뷰 밖에 있는 라이트맵 개수입니다.
    • Converged: 이 라이트맵에 대한 계산은 완료된 상태입니다.
    • Not Converged: 이 라이트맵에 대한 베이킹이 아직 진행 중입니다.
  • Bake Performance: 초당 광선 수입니다. 이 값이 2보다 낮으면 설정을 조정해야 합니다. 그러지 않으면 하드웨어가 한 번에 더 많은 광선을 처리해야 합니다.

베이크 진행 중

프로그레시브 라이트매퍼는 베이크가 진행 중일 때 필요에 따라 베이크를 모니터링하거나 중지할 수 있는 옵션을 제공합니다.

ETA

Unity가 라이트맵을 베이크하는 동안 표시되는 진행 표시줄은 “완료 예상 시간”(ETA 로 표시)을 제공합니다. ETA는 현재 베이크가 완료될 예상 시간(단위: 초)입니다. 이를 통해 베이크 시간을 훨씬 쉽게 예측하고, 현재 조명 설정에서 베이크 시간이 얼마나 걸리는지 빠르게 파악할 수 있습니다.

강제 종료

수동 베이크를 진행하는 중 언제든지 Force Stop 을 클릭하여 베이크 프로세스를 중지할 수 있습니다. 이 기능을 이용하면 원하는 결과가 나올 때 프로세스를 바로 멈출 수 있습니다.

라이트매핑
프로그레시브 GPU 라이트매퍼(프리뷰)