Version: 2020.2
라이트매핑
The Progressive GPU Lightmapper (preview)

The Progressive Lightmapper

The Progressive Lightmapper is a fast path-tracing-based lightmapper system that provides baked lightmaps and Light Probes with progressive updates in the Editor. It requires non-overlapping UVs with small area and angle errors, and sufficient padding between the charts.

The Progressive Lightmapper takes a short preparation step to process geometry and instance updates, and generates the G-buffer and chart masks. It then produces the output immediately and progressively refines it over time for a much-improved interactive lighting workflow. Additionally, baking times are much more predictable because the Progressive Lightmapper provides an estimated time while it bakes.

The Progressive Lightmapper also bakes global illumination (GI) at the lightmap resolution for each texel individually, without upsampling schemes or relying on any irradiance caches or other global data structures. This makes it robust and allows you to bake selected portions of lightmaps, which makes it faster for you to test and iterate on your Scene.

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

The Progressive CPU Lightmapper and the Progressive GPU Lightmapper (preview)

You can choose between two backends for the Progressive Lightmapper. The Progressive CPU Lightmapper backend is a backend for the Progressive Lightmapper that uses your computer’s CPU and system RAM. The Progressive GPU Lightmapper is a backend for the Progressive Lightmapper that uses your computer’s GPU and VRAM.

Note that the Progressive GPU Lightmapper is a preview feature in active development, and is subject to change. For information on the Progressive GPU Lightmapper backend, see the Progressive GPU Lightmapper (preview).

Render pipeline support

  • The Built-in Render Pipeline supports the Progressive Lightmapper.
  • The Universal Render Pipeline (URP) supports the Progressive Lightmapper.
  • The High Definition Render Pipeline (HDRP) supports the Progressive Lightmapper.

Using the Progressive Lightmapper

To use the Progressive Lightmapper:

  1. Go to Window > Rendering > Lighting
  2. Navigate to Lightmapping Settings
  3. Set Lightmapper to Progressive CPU or Progressive GPU

You can perform many of the functions available in this window via scripts, using the LightmapEditorSettings and Lightmapping APIs.

설정

Setting Description
Lightmapper Use this to specify which internal lighting calculation software to use to calculate lightmaps in the Scene. The options are:

Progressive CPU
Progressive GPU
Enlighten (deprecated)

The default value is Progressive CPU.
Prioritize View 이 설정을 활성화하면 프로그레시브 라이트매퍼가 씬 뷰에서 현재 보이는 텍셀에 먼저 변경 내용을 적용한 후 뷰 밖에 있는 텍셀에 변경 내용을 적용합니다
Multiple Importance Sampling 이 설정을 활성화하면 환경 샘플링에 중요도 기반 멀티 샘플링을 사용할 수 있습니다. 이 경우 라이트맵을 생성할 때 수렴 속도가 빨라지지만, 특정 저주파수 환경에서 노이즈가 더 많이 발생할 수 있습니다. 이 설정은 기본적으로 비활성화됩니다.
Direct Samples 각 텍셀에서 방출된 샘플(경로)의 수입니다. 이 설정은 프로그레시브 라이트매퍼가 직접 조명 계산에 사용하는 샘플 수를 제어합니다. 이 값을 올리면 라이트맵 품질이 향상되지만 베이크 시간이 늘어납니다.
Indirect Samples 각 텍셀에서 방출된 샘플(경로)의 수입니다. 이 설정은 프로그레시브 라이트매퍼가 간접 조명 계산에 사용하는 샘플 수를 제어합니다. 야외 씬을 비롯한 일부 씬에서는 100개 샘플이면 충분합니다. 발광 지오메트리가 있는 실내 씬의 경우에는 원하는 결과를 얻을 때까지 값을 올립니다.
Environment Samples The Environment Samples property determines the total number of environment rays that Unity fires toward the skybox to gather light directly. Unity fires these rays from the lightmap texel or light probe position depending on the context. The default value is 500. Higher values might yield smoother results, but at the cost of increased bake times.

In Scenes with HDR skyboxes, more samples are often needed to reduce noise in the final lightmap or probe. Scenes with skyboxes that include bright singularities (such as the sun) or high-frequency details with significant contrast (such as backlit clouds) also benefit from a higher number of samples.
Light Probe Sample Multiplier Controls how many samples are used for Light Probes as a multiplier of the sample values above. Higher values improve the quality of Light Probes, but they will take longer to bake. To enable this feature, go to Project Settings > Editor and disable Use legacy Light Probe sample counts. The default value is 4.
Bounces 이 값을 사용하면 경로 추적에 사용할 간접 바운스 수를 지정할 수 있습니다. 대부분의 씬에서는 2개 바운스면 충분합니다. 일부 실내 씬의 경우 더 많은 바운스가 필요합니다.
Min Bounces The minimum number of bounces you are willing for the Progressive Lightmapper to include in indirect lighting calculations.

Default value: 2. Range: 0–100
Max Bounces The number of bounces you want the Progressive Lightmapper to include in indirect lighting calculations.

Default value: 2. Range: 0–100.

Each bounce increases the computational resources needed to bake your scene. Use higher bounce values for indoor Scenes, and lower bounce values for outdoor Scenes and those with many bright surfaces.

As the range between Min Bounces and Max Bounces broadens, the amount of noise visible in your lightmaps increases.
Filtering Configure the way the Progressive Lightmapper applies post-processing to lightmaps to limit noise. For lightmap post-processing, the lightmap is split into Direct, Indirect and Ambient Occlusion targets that Unity applies post-processing to individually, before it composites them together into a single lightmap.

- Direct: Any light that arrives directly from a Light to a sensor (usually the Camera).
- Indirect: Any light that arrives indirectly from a Light to a sensor. This most commonly applies to light that reflects off other GameObjects.
- Ambient Occlusion: Any ambient light that the lighting system calculates.
없음 이 설정을 선택하면 라이트맵에 필터나 노이즈 감소를 사용하지 않습니다
Auto 이 설정을 선택하면 라이트맵의 포스트 프로세싱에 플랫폼별 프리셋을 사용합니다.
개발용 컴퓨터가 OptiX(NVIDIA OptiX AI 가속 디노이저)를 실행하기 위한 요구 사항을 충족하는 경우 프로그레시브 라이트매퍼는 모든 타겟에 대해 1텍셀 반지름을 가진 가우스 필터가 포함된 디노이저를 사용합니다.
개발용 컴퓨터가 OptiX를 실행할 수 없는 경우 프로그레시브 라이트매퍼는 Direct에 대해 1텍셀 반지름, Indirect에 대해 5텍셀 반지름, Ambient Occlusion에 대해 2텍셀 반지름을 가진 가우스 필터를 사용합니다.
Advanced Advanced 를 선택하면 라이트맵 타겟의 각 타입에 대한 옵션을 수동으로 설정할 수 있습니다. 타겟 타입으로는 Direct, Indirect, Ambient Occlusion이 있습니다. 자세한 내용은 아래의 고급 필터링 설정을 참조하십시오.
Indirect Resolution Use this to specify the number of samples the lightmapper uses for indirect lighting calculations. Higher values can improve the quality of the lightmaps, but increase the time it takes to bake them.
Lightmap Resolution Use this to specify the number of texels per unit to use for lightmaps. Increasing this value improves lightmap quality, but also increases bake times. Note that doubling this value causes the number of texels to quadruple (because the value refers to both the height and width of the lightmap). See the Occupied texels count in the statistics area at the bottom of the Lighting window.
Lightmap Padding Use this to specify the separation (in texel units) between separate shapes in the baked lightmap. The default value is 2.
Lightmap Size The size (in pixels) of the full lightmap texture, which incorporates separate regions for the individual GameObject textures. The default value is 1024.
Compress Lightmaps 압축된 라이트맵을 사용하면 저장 공간을 덜 차지하지만 압축 과정에서 원치 않는 시각 효과가 텍스처에 유입될 수 있습니다. 라이트맵을 압축하려면 이 체크박스를 선택하고, 압축하지 않고 그대로 유지하려면 선택 해제합니다. 기본적으로 체크박스가 선택되어 있습니다.
Ambient Occlusion Tick this checkbox to open a group of settings which allow you to control the relative brightness of surfaces in baked ambient occlusion. Higher values indicate a greater contrast between the occluded and fully lit areas. This only applies to the indirect lighting calculated by the GI system. This setting is enabled by default.
Max Distance Set a value to control how far the lighting system casts rays in order to determine whether or not to apply occlusion to an object. A larger value produces longer rays and contributes more shadows to the lightmap, while a smaller value produces shorter rays that contribute shadows only when objects are very close to one another. A value of 0 casts an infinitely long ray that has no maximum distance. The default value is 1.
Indirect Contribution 슬라이더를 사용하여 최종 라이트맵에 보이는 간접광(즉 주변광 또는 오브젝트에서 반사되어 방출되는 빛)의 밝기를 0과 10 사이의 값으로 스케일합니다. 기본값은 1입니다. 값이 1보다 작으면 강도가 감소하고 값이 1보다 크면 증가합니다.
Direct Contribution 슬라이더를 사용하여 직접광의 밝기를 0과 10 사이의 값으로 스케일합니다. 기본값은 0입니다. 값이 높을수록 직접광에 적용되는 콘스라스트가 커집니다.
Directional Mode You can set the lightmap up to store information about the dominant incoming light at each point on the objects’ surfaces. See documentation on Directional Lightmapping for further details. The default mode is Directional.
Directional In Directional mode, Unity generates a second lightmap to store the dominant direction of incoming light. This allows diffuse normal mapped materials to work with the GI. Directional mode requires about twice as much storage space for the additional lightmap data. Directional lightmaps cannot be decoded on SM2.0 hardware or when using GLES2.0. They fall back to Non-Directional lightmaps.
Non-directional Non-directional mode disables Unity’s ability to generate a second lightmap to store the dominant direction of incoming light.
Indirect Intensity 슬라이더를 사용하여 실시간 및 베이크된 라이트맵에 저장되는 간접광의 밝기를 0과 5 사이의 값으로 조절합니다. 값을 1보다 크게 설정하면 간접광의 강도가 증가하는 한편, 1보다 작게 설정하면 간접광 강도가 감소합니다. 기본값은 1입니다.
Albedo Boost Use this slider to control the amount of light Unity bounces between surfaces, from a value between 1 and 10. To do this, Unity intensifies the albedo of materials in the Scene. Increasing this draws the albedo value towards white for indirect light computation. The default value of 1 is physically accurate.
Lightmap Parameters Unity uses a set of general parameters for the lightmapping in addition to properties of the Lighting window. A few defaults are available from the menu for this property but you can also create your own lightmap parameter file using the Create New option. See the Lightmap Parameters page for further details. The default value is Default-Medium.

고급 필터링 설정

Filtering 을 Advanced 로 설정할 경우 이용 가능한 Filtering 설정
FilteringAdvanced 로 설정할 경우 이용 가능한 Filtering 설정
설정 설명
Advanced Set Filtering to Advanced to manually configure options for each type of lightmap target. The target types are:

- Direct: Any light that arrives directly from a Light to a sensor (usually the Camera).
- Indirect: Any light that arrives indirectly from a Light to a sensor. This most commonly applies to light that reflects off other GameObjects.
- Ambient Occlusion: Any ambient light that the lighting system calculates.
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 을 클릭하여 베이크 프로세스를 중지할 수 있습니다. 이 기능을 이용하면 원하는 결과가 나올 때 프로세스를 바로 멈출 수 있습니다.

라이트매핑
The Progressive GPU Lightmapper (preview)