[언리얼/루멘] 루멘 리플렉션
루멘 적용시 생기는 얼룩에 대한 대처법
(해당 프로젝트는 단색의 벽면에 큰 재질의 표현은 없기 때문에 얼룩이 더욱 두드러져 보입니다.)
해당 증상은
Lumen은 실시간으로 모든 물체의 간접광(Global Illumination)을 정밀하게 계산하면 성능 부담이 매우 커지기 때문에, 정적 메시(Static Mesh)마다 Surface Cache라는 빛 정보 저장 공간을 만들어 사용합니다. 이 Surface Cache는 표면의 조명 정보를 저해상도로 미리 저장해 두었다가 GI 계산에 활용하는 일종의 빛 정보 캐시라고 생각하면 이해하기 쉽습니다.
이 캐시의 해상도는 카메라와의 거리에 따라 자동으로 조절됩니다. 카메라에서 멀리 있는 물체는 화면에서 차지하는 비중이 작기 때문에 성능을 위해 낮은 해상도의 Surface Cache를 사용하고, 가까이 있는 물체는 더 높은 해상도의 캐시를 사용하여 보다 정확한 조명 정보를 계산합니다.
이 때문에 넓고 평평한 벽처럼 표면 변화가 거의 없는 오브젝트에서는 멀리서 볼 때 Surface Cache의 해상도가 부족해져 밝기 정보가 거칠게 표현되며, 얼룩이나 반점처럼 보이는 Blotchy(Blotching) 아티팩트가 발생할 수 있습니다. 하지만 카메라가 가까워지면 Surface Cache의 해상도가 높아지면서 더 세밀한 조명 계산이 이루어지고, 이러한 얼룩 현상은 자연스럽게 사라집니다.
즉, Lumen Surface Cache Blotching은 성능을 확보하기 위해 멀리 있는 오브젝트의 조명 정보를 낮은 해상도로 저장하면서 발생하는 대표적인 시각적 아티팩트이며, 가까워질수록 캐시의 해상도가 증가하여 점차 깨끗하게 표현되는 것이 특징입니다.
해결
1. 해당 씬에 영향을 주는 포스트 프로세스의 Surface Cache 품질을 올려봅니다.
2. Lumen Scene Quality 와 Final Gather Quality 품질을 올려봅니다.
위에 두개가 직접적인 방법이라고 하지만 잘 반영이 안되어서
어느정도 러프니스 값 이상에서 작동할수 있도록하는 트레이스할 최대 러프니스 옵션을 수정해보면
좋아 지는 것을 확인할 수 있습니다.
값은 올라갈수록 더 성능 부하가 있으니 0.5 정도로 조금만 올려보면 얼룩이 크게 개선되는것을 볼 수 있습니다. 이는 0.5의 값까지는 레이 트레이싱을 적용할 최대 거칠기이다. 라고 적용하는 것으로 이해해 주시면 됩니다 .
언리얼 5.7에서는
5.7의 Lumen은 이전 버전보다 Reflection과 GI의 통합이 더 강화되어 있습니다. 그래서 Reflection 품질 관련 설정이 간접적으로 GI가 달라진 것처럼 보이는 경우가 이전 버전보다 더 자주 나타납니다.
지원님이 발견한 현상은 버그라기보다는 Lumen이 Surface Cache를 공유하는 구조 때문에 발생하는 자연스러운 결과라고 이해하시면 됩니다.
댓글
댓글 쓰기