왜 실제 코너는 화면 공간 앰비언트 오클루전이 예측하는 것보다 훨씬 밝게 보이는가

왜 실제 코너는 화면 공간 앰비언트 오클루전(SSAO)이 예측하는 것보다 훨씬 밝게 보이는가

TL;DR – 실제 코너는 일반적인 SSAO 렌더링만큼 어둡지 않다

일상적인 실내 코너 사진은 미세하고 일관되지 않은 가장자리 어두워짐만을 보여주지만, 많은 게임은 화면 공간 앰비언트 오클루전(SSAO)을 통해 뚜렷하고 균일한 어두워짐을 적용한다. 이 차이는 SSAO의 근사, 앰비언트 쉐이딩 오용, 그리고 과도한 가중치 때문이다.


전제: SSAO의 코너 어두워짐 문제

  • 게임 개발자는 저비용으로 깊이감을 추가해 주기 때문에 SSAO를 좋아한다.
  • 일반적인 SSAO 아티팩트에는 볼록 코너에서의 밝은 후광, 오목 코너에서의 날카로운 어두운 띠, 그리고 방 전체 가장자리의 과도한 어두워짐이 포함된다.
  • 저자는 이러한 아티팩트가 실제 세계의 코너가 본질적으로 매우 어둡다는 잘못된 믿음에서 비롯된다고 주장한다.

저자가 확인한 네 가지 요인

  1. SSAO ≠ 전체 앰비언트 오클루전 – 화면 공간 샘플링은 시야 뒤에 있는 기하학을 놓쳐 빛을 과소 추정한다.
  2. AO ≠ 라디오시티 – 올바른 AO 항목이라 하더라도 차폐만 포착하고 라디오시티가 제공하는 전체 간접 반사는 포착하지 못한다.
  3. AO를 모든 조명에 적용 – 일부 파이프라인은 AO 항을 직접 조명에 곱해 어두워짐을 과장한다.
  4. 휴리스틱 가중치 – 아티스트가 효과를 눈에 띄게 만들기 위해 AO 강도를 높이면 실제 세계의 미세한 변화를 가리게 된다.

방법론: 사진 기반 실제 데이터

  • 카메라: Canon 5D Mk II, JPEG 내보내기, 노출 1/80 – 1/8 초.
  • 처리: 4배 다운샘플링, 크로마 채널에 16픽셀 가우시안 블러 적용해 노이즈 억제.
  • 측정: 가장자리를 가로지르는 선을 따라 5×5(또는 3×3) 박스 필터링된 픽셀 평균을 샘플링하고 sRGB 밝기 그래프로 표시.
  • 주의사항: 이미지는 sRGB이며 톤‑매핑이 알려지지 않았다; 그래프는 선형 광이 아닌 sRGB 값을 나타낸다.

사례 연구

1. 극단적으로 어두워진 코너 (그림 1)

  • 코너는 전형적인 SSAO 렌더와 비슷해 보이지만, 어두움의 대부분은 함몰된 조명에 의해 만든 부드러운 그림자에서 비롯된 것이며, 앰비언트 오클루전 때문이 아니다.
  • 그래프는 그림자 진입 쪽에서 급격한 밝기 감소와 반대쪽에서 라마르티안에 의한 완만한 어두워짐을 보여준다.
  • 결론: SSAO는 전체 어두운 띠를 차폐로 오인해 효과를 과도하게 증폭한다.

2. 부드러운 그림자가 지배적이지 않은 코너들

왼쪽 코너

  • 직접 조명은 주로 측면 램프에서 오며, 천장은 가장자리 쪽으로 약간 어두워지고 벽은 밝게 유지된다.
  • 그래프는 천장의 약간의 어두워짐만을 확인하고, 벽 밝기는 변함이 없음을 보여준다.

가운데 코너

  • 대부분 간접 조명; 그래프가 평탄하여 Mach‑band 인지 외에 눈에 띄는 가장자리 어두워짐이 거의 없음을 나타낸다.
  • 긴 노출을 사용해도 측정된 어두워짐은 여전히 미미하다.

오른쪽 코너

  • 강한 원근 효과 때문에 시각적으로 어두워짐이 급격해 보이지만, 보정된 측정값은 점진적인 변화를 보여준다.
  • 뒤쪽 벽은 거의 어두워짐이 없으며, 왼쪽 벽과 천장은 명확하지만 부드러운 감소를 보인다.

3. 어두운 욕실 코너

  • 조명이 약한 환경에서도 벽과 천장의 측정된 어두워짐은 극히 최소다.
  • 짧은 노출과 긴 노출 이미지 모두 그래프가 약간의 변동만을 보여주어 뚜렷한 AO‑스타일 비네팅 기대와는 반대된다.

4. 광원 근처 코너

  • 바닥 램프의 직접 조명으로 한쪽 벽이 밝아지고, 반대쪽 벽은 보조 그림자 때문에 어두워지며 이는 앰비언트 오클루전이 아니다.
  • 그래프는 왼쪽 벽에서 아주 작은 가장자리 어두워짐을 보이지만, 천장은 반사광 때문에 벽 쪽으로 밝아진다.

5. 천장과 벽 사이의 단일 가장자리

  • 어두운 쪽으로 갈수록 앰비언트 기여도가 커지지만, 측정된 어두워짐 일관되게 증가하지 않는다; 오히려 나중 샘플에서는 벽이 평탄해진다.
  • 이러한 불일치는 단순 AO 기반 어두워짐 모델이 미묘한 행동을 포착하지 못함을 시사한다.

데이터가 보여주는 것

  • 가장자리 어두워짐은 미세하고 상황에 크게 좌우된다 – 다른 요인(부드러운 그림자, 원근, 색 대비)이 이미 표면을 어둡게 할 때만 나타난다.
  • Mach 밴드(가장자리에서의 지각적 대비)는 종종 물리적 어두워짐으로 착각된다.
  • 선형 광 vs. sRGB – sRGB 그래프를 선형 공간으로 변환하면 측정된 어두워짐이 확대되지만, 게임에서 보는 과격한 SSAO 곡선보다 여전히 훨씬 작다.

커뮤니티 반응 (선택된 댓글)

"SSAO는 저렴하고, 잘 작동하지 않으며 과도하게 사용하면 끔찍해… 간단한 해결책은 강도를 낮추는 것이다." – ahartmetz

"현실성이 목표가 아니라 멋져 보이는 것이 목표다. ‘와우’ 요소를 넘어서면 현실은 대부분 꽤 지루해 보인다." – overgard

"그래프는 가장자리 어두워짐이 일관되지 않음을 보여준다; SSAO는 현실과 맞지 않는 균일한 어두워짐을 적용한다." – logdahl

"Mach‑band 착시는 전이부에서 어두워짐을 인식하게 만든다; SSAO에 인위적으로 추가하면 효과가 과장된다." – BearOso


개발자를 위한 실용적인 시사점

  1. SSAO를 물리적으로 정확한 모델이 아닌 스타일리시한 보조 수단으로 다루라 – 간접 쉐이딩을 근사한다는 수준으로 기대하고, 실제 코너 어두워짐을 재현하려 하지 말 것.
  2. AO를 직접 조명과 분리하라 – AO는 앰비언트 항에만 곱해 표면이 이미 그림자에 있을 때 과도한 어두워짐을 방지한다.
  3. 씬마다 AO 강도를 조정하라 – 적당한 가중치(예: 0.2–0.4)를 사용하고 필요 시 아티스트가 영역별로 조정하도록 하며, 일괄 적용 곡선은 피한다.
  4. 대안 고려 – FidelityFX CACAO, 레이 트레이싱 GI, 혹은 사전 계산된 라이트맵 같은 최신 기법은 비슷한 성능으로 더 정확한 간접 쉐이딩을 제공한다.
  5. 실제 참고 자료로 검증하라 – 여기서 보여준 간단한 사진 측정과 같은 방법을 이용해 새로운 AO 구현을 검증하는 기준으로 삼을 수 있다.

결론

사진 증거는 실내 코너가 많은 SSAO 구현이 부과하는 강하고 균일한 어두워짐을 거의 보여주지 않음을 나타낸다. 인지된 어두워짐은 부드러운 그림자, 원근, 그리고 지각적 대비의 조합인 경우가 많으며, 진정한 앰비언트 오클루전이라기보다는 그렇다. 따라서 개발자는 SSAO를 시각적 향상 도구로 취급하고 그 영향을 신중히 제한하며, 현실성을 중시할 경우 물리 기반 대안을 고려해야 한다.

Sources