https://docs.unity3d.com/6000.0/Documentation/Manual/urp/probevolumes-troubleshoot-light-leaks.html
URP의 Adaptive Probe Volumes에서의 라이트 프로브의 유효성
지오메트리 내부의 Light Probe를 무효 프로브라고 합니다. (주: 라이트 프로브가 물체 안으로 들어가면 새까매지는데요. 이 녀석이 주변에 영향을 끼치면 곤란합니다. 이걸 무효 프로브라고 한다는군요)
Universal Render Pipeline (URP)은 프로브가 주변 조명 데이터를 캡처하기 위해 샘플링 레이를 발사하지만 레이가 지오메트리 내부의 조명이 없는 뒷면에 닿을 때 Light Probe를 무효로 표시합니다.
(프로브가 주변 조명이 어딨나 판단하려고 레이를 쏘는데 까만 곧에 갇혀 있으면 검게 될거 아녜요? 이러면 무효라 이거죠. 근데 무효는 무효인데 무효인걸 유니티가 안다고 하는건가 아니면 그냥 까만걸 무효라고 부른다는건가..?)
URP는 Light Probes에서 잘못된 조명 데이터를 최소화하기 위해 다음 기술을 사용합니다.
- Virtual Offset은 캡처 포인트를 콜라이더 외부로 옮겨서 유효하지 않은 Light Probe를 유효하게 만들려고 시도합니다.
- Dilation은 Virtual Offset 이후에도 유효하지 않은 라이트 프로브를 감지하고 근처에 있는 유효한 라이트 프로브로부터 데이터를 제공합니다.
- Rendering Layers 은 객체가 다른 레이어 마스크에 있는 프로브를 샘플링하는 것을 방지하여 특정 시나리오에서 빛 누출을 줄입니다.
렌더링 디버거를 사용하여 어떤 Light Probe가 유효하지 않은지 확인할 수 있습니다.
Troubleshooting dark blotches or streaks in Adaptive Probe Volumes in URP ( URP의 Adaptive Probe Volumes에서 어두운 얼룩이나 줄무늬 문제 해결)
설정을 조정하거나 볼륨 재정의를 사용하여 Adaptive Probe Volumes 의 아티팩트를 수정합니다.
Adjust Virtual Offset
Lighting 창의 Adaptive Probe Volumes 패널에서 Virtual Offset 설정을 구성할 수 있습니다. 이렇게 하면 URP가 Light Probe의 유효성을 계산하는 방식이 변경됩니다.
다음을 조정할 수 있습니다
- Unity가 유효한 캡처 지점을 찾는 데 사용하는 샘플링 레이의 길이
- Unity가 지오메트리를 피하기 위해 Light Probe의 캡처 위치를 얼마나 멀리 이동시키는지
- Unity가 광선의 시작점을 얼마나 멀리 이동시키는지
- Unity가 프로브를 무효로 간주하기 전에 프로브의 샘플링 레이가 충돌체에 충돌하는 횟수
Adjust Dilation
Lighting창의 Adaptive Probe Volumes 패널에서 프로브 Dilation 설정을 구성할 수 있습니다. 이렇게 하면 URP가 Light Probe의 유효성을 계산하는 방식과 유효하지 않은 Light Probe가 근처의 유효한 Light Probe에서 조명 데이터를 사용하는 방식이 변경됩니다.
다음을 조정할 수 있습니다.
- URP가 Light Probe를 유효하지 않은 것으로 간주하기 전에 Light Probe가 샘플링할 수 있는 백페이스의 백분율입니다.
- 유효하지 않은 프로브에서 Unity가 조명 데이터를 제공하기 위해 유효한 프로브를 검색하는 거리는 얼마입니까?
- 베이크하는 동안 Dilation URP를 몇 번 반복합니까?
- 유효하지 않은 프로브와의 공간적 관계를 기반으로 유효한 프로브의 데이터에 가중치를 부여하는 방법입니다.
Light Probe 밀도를 조정하는 방법은 최종 결과에 영향을 미치는데, URP는 설정을 배수로 사용하여 프로브 간 거리를 계산하기 때문입니다.
베이킹 세트에 대한 Dilation을 비활성화할 수도 있습니다. Dilation은 베이킹 시간에만 영향을 미치므로 Dilation을 비활성화해도 런타임 성능에는 영향을 미치지 않습니다.
Troubleshooting light leaks in Adaptive Probe Volumes in URP
(URP의 Adaptive Probe Volumes에서 빛 누출 문제 해결)
빛 누출은 너무 밝거나 어두운 부분으로, 주로 벽이나 천장의 모서리에 발생합니다.
지오메트리가 Light Probe에서 지오메트리에서 볼 수 없는 빛을 받을 때 빛 누출이 자주 발생합니다. 예를 들어 Light Probe가 벽의 반대편에 있기 때문입니다. Adaptive Probe Volumes은 일반 라이트 프로브 그리드를 사용하므로 라이트 프로브가 벽을 따라가거나 다른 조명 영역 사이의 경계에 위치하지 않을 수 있습니다.
빛 누출을 해결하려면 다음을 수행하세요.
- 더 두꺼운 벽을 만듭니다.
- 장면에 Adaptive Probe Volumes 옵션 재정의를 추가합니다.
- 렌더링 레이어를 활성화합니다.
- 베이킹 세트 속성을 조정합니다.
- 프로브 조정 볼륨을 사용합니다.
더 두꺼운 벽을 만듭니다
로컬 브릭의 프로브 간 거리에 더 가깝게 벽의 너비를 조정합니다.
(이 말은 나도 하겠다)
장면에 Adaptive Probe Volumes 옵션 재정의를 추가합니다.
볼륨을 추가한 다음 볼륨에 Adaptive Probe Volumes Options 오버라이드를 추가할 수 있습니다. 이렇게 하면 GameObjects가 Light Probes를 샘플링하는 데 사용하는 위치가 조정됩니다.
- 장면에 볼륨을 추가하고 해당 영역이 카메라 위치와 겹치는지 확인합니다.
- Add Override 를 선택한 다음 Lighting > Adaptive Probe Volumes Options 을 선택합니다.
- Normal Bias 를 활성화한 다음, GameObject 픽셀이 픽셀의 표면 법선을 따라 Light Probes를 샘플링하는 데 사용하는 위치를 이동하도록 값을 조정합니다.
- View Bias 를 활성화한 다음, GameObject 픽셀이 카메라를 따라 Light Probes를 샘플링하는 데 사용하는 위치를 이동하도록 값을 조정합니다.
- Leak Reduction Mode 를 비활성화하고 활성화하여 빛 누수가 개선되는지 확인합니다
볼륨은 카메라가 볼륨 근처 또는 볼륨 내부에 있는 경우에만 장면에 영향을 미칩니다. 자세한 내용은 볼륨 이해를 참조하세요
Adaptive Probe Volumes Options 설정에 대한 자세한 내용은 프로브 볼륨 옵션 재정의 참조를 참조하세요.
Use Rendering Layer Masks 렌더링 레이어 마스크 사용
Lighting 창의 Adaptive Probe Volumes 패널에서 Rendering Layer Masks를 구성할 수 있습니다. 이를 통해 APV는 각 Light Probe에 Rendering Layer Mask를 할당할 수 있습니다.
성능상의 이유로 Adaptive Probe Volumes는 최대 4개의 렌더링 레이어 마스크만 지원합니다.
목록을 사용하여 새 마스크를 만들고 드롭다운을 사용하여 렌더링 레이어를 할당할 수 있습니다
조명이 생성되면, Unity는 프로브 주변 객체의 렌더링 레이어 마스크를 확인하여 각 프로브에 자동으로 마스크를 지정하려고 시도합니다. 또한, Probe Adjustment Volume 을 사용하여 라이트 프로브에 할당된 렌더링 레이어 마스크를 재정의할 수 있습니다.
런타임에, 렌더러는 일치하는 렌더링 레이어 마스크가 있는 프로브에서만 조명 데이터를 샘플링합니다.
객체가 라이 창에 정의된 마스크와 일치하지 않는 경우, 모든 유효한 주변 프로브에서 조명을 샘플링합니다. 이 기능을 사용하려면 URP Asset에서 Use Rendering Layers를 활성화해야 합니다.
예를 들어, 빛 누출 문제를 해결하려면 내부 및 외부 렌더링 레이어 마스크를 생성하여 내부 객체가 외부 프로브에서 조명 데이터를 샘플링하지 않도록 하고 벽을 통한 빛 누출을 수정할 수 있습니다.
렌더러는 렌더링 레이어 마스크에서 여러 개의 렌더링 레이어를 활성화할 수 있습니다. 이는 외부 및 내부 프로브 모두에서 조명을 샘플링하려는 동적 객체를 처리할 때 유용합니다.
프로브에 어떤 레이어가 할당되었는지는 이렇게 시각화할 수 있습니다:
- Probe Volumes 탭으로 이동 - Display Probes 활성화 - Probe Shading Mode 필드를 Rendering Layer Masks로 설정 - Scene View의 토글 사용 Overlay를 사용하여 Rendering Layer Mask와 일치하는 Probes 숨기기
Adjust Baking Set properties 베이킹 세트 속성 조정
볼륨을 추가해도 작동하지 않으면 조명 창에서 Adaptive Probe Volumes panel을 사용하여 가상 오프셋 및 확장 설정을 조정합니다.
- Probe Dilation Settings에서 Search Radius를 줄입니다. 이는 잘못된 Light Probe가 더 먼 Light Probe에서 조명 데이터를 수신하는 상황에서 도움이 될 수 있습니다. 그러나 Search Radius가 낮으면 빛 누출이 발생할 수 있습니다
- Virtual Offset Settings 에서 Search Distance Multiplier 와 Ray Origin Bias 을 줄입니다.
-
여러 위치에 빛 누출이 있는 경우 Min Probe Spacing 과 Max Probe Spacing 을 조정하여 빛 프로브의 밀도를 높입니다.
- 새로운 설정을 사용하여 장면을 다시 구우려 Generate Lighting 을 선택하세요.
참고: 설정에 너무 낮은 값을 사용하지 마세요. 그렇지 않으면 Dilation과 Virtual Offset이 작동하지 않을 수 있습니다.
Add a Probe Adjustment Volume component 프로브 조정 볼륨 구성 요소 추가
Probe Adjustment Volume 구성 요소를 사용하여 작은 영역에서 Light Probe를 무효화합니다. 이렇게 하면 베이킹 중에 Dilation이 트리거되고 런타임 시 Leak Reduction Mode의 결과가 개선됩니다.
- Adaptive Probe Volume 인스펙터에서 Add Component 를 선택한 다음 조명 > Light > Probe Adjustment Volume
- Size 를 설정하여 Probe Adjustment Volume 영역이 라이 프로브와 겹쳐 빛 누출이 발생하도록 합니다.
- 볼륨의 라이트 프로브를 무효화하려면 Probe Volume Overrides > Mode 를 Invalidate Probes로 설정합니다.
- 프로브 볼륨 옵션 재정의( Volume with a Probe Volumes Options override)가 있는 볼륨이 있는 경우 누수 감소 모드( Leak Reduction Mode)를 활성화합니다.
- Probe Volume Settings 에서 Generate Lighting 을 선택하여 새 설정을 사용하여 장면을 다시 베이크합니다.
Probe Adjustment Volume 구성 요소를 사용하면 대부분의 광 누출 문제가 해결되지만 모든 문제가 해결되는 것은 아닙니다.
한 장면에서 Probe Adjustment Volume 을 많이 사용하면 베이크 속도가 느려지고 장면을 이해하고 유지 관리하기가 더 어려울 수 있습니다.
자세한 내용은 Probe Adjustment Volume component reference를 참조하세요.
Fix seams 심 고치기
심은 한 조명 조건이 다른 조건으로 즉시 전환될 때 나타나는 아티팩트입니다. 이음매는 인접한 두 bricks 의 Light Probe 밀도가 다를 때 발생합니다. 자세한 내용은 bricks을 참조하세요.
이음새를 고치려면 다음을 수행하세요 :
- 장면에 볼륨을 추가하고 해당 영역이 카메라 위치와 겹치는지 확인하세요.
- Add Override 를 선택한 다음 Lighting > Probe Volumes Options 을 선택합니다.
- Sampling Noise 를 활성화한 다음 값을 조정하여 노이즈를 추가하고 전환을 더 확산시키세요. 노이즈는 brick 경계에서 간접 조명의 눈에 띄는 모서리를 깨는 데 도움이 될 수 있습니다.
댓글