앰비언트 오클루전은 실제 생활에서 빛이 어떻게 작용하는지를 시뮬레이션 하는 방법입니다. 모서리, 주름 또는 두 표면 사이의 공간과 같이 물체가 서로 가까이 있는 영역에서 얼마나 많은 빛이 차단되는지 계산합니다. 이러한 영역은 주변광이 덜 도달할 수 있기 때문에 더 어둡게 보입니다.
태양이나 램프와 같은 특정 광원에서 나오는 직접 조명과 달리 앰비언트 오클루전은 간접 조명에 초점을 맞춥니다. 다른 조명 기법과 함께 작동하여 부드러운 그림자를 만들고 장면이 너무 밋밋해 보이지 않도록 합니다. 많은 3D 렌더링 워크플로에서 앰비언트 오클루전은 별도의 렌더 패스로 적용된 다음 최종 이미지와 블렌딩되어 깊이와 디테일을 더합니다.
앰비언트 오클루전의 핵심은 각 픽셀의 주변 지오메트리를 샘플링하여 주변광을 얼마나 많이 받아야 하는지 결정하는 것입니다. 표면이 더 많이 둘러싸여 있을수록 음영이 더 어두워집니다. 이는 물체 표면의 특정 지점에서 바깥쪽으로 광선을 추적하고 주변 표면에 의해 차단되는 광선 수를 측정하여 수행됩니다. 이 광선의 반경에 따라 오클루전 효과가 확장되는 범위가 결정되며, 그림자가 부드럽고 미묘한지 또는 뚜렷하고 무거운지에 영향을 미칩니다.
필요한 디테일의 양과 렌더링 속도에 따라 앰비언트 오클루전을 계산하는 방법에는 여러 가지가 있습니다. 고품질 오프라인 렌더링에서 AO는 텍스처에 베이크되는 경우가 많으며, 이는 성능 향상을 위해 미리 계산되어 저장된다는 의미입니다. 실시간 어플리케이션에서는 포스트 프로세싱 효과를 사용하여 AO를 즉시 생성할 수 있으므로 비디오 게임과 인터랙티브 어플리케이션에 사용하기에 충분히 효율적입니다.
실시간 렌더링에서 앰비언트 오클루전은 화면 공간 기술을 사용하여 생성되는 경우가 많습니다. 널리 사용되는 두 가지 방법은 스크린 스페이스 앰비언트 오클루전(SSAO)과 수평선 기반 앰비언트 오클루전(HBAO)입니다.
SSAO는 환경 조명을 기반으로 씬에서 빛을 받지 못한 오브젝트를 분석하여 오클루전을 추정하는 빠르고 일반적으로 사용되는 기법입니다. 화면 공간은 화면에 보이는 것을 기반으로 수신된 정보를 말하며, 이 기술은 최고의 디테일은 없지만 음영을 추가하는 데 효과적입니다. 이 기술은 Crytek이 '크라이시스' 게임에서 처음 사용한 기술로, 당시의 앰비언트 오클루전이 어떤 모습인지 다음 비디오에서 확인할 수 있습니다:
NVIDIA에서 개발한 HBAO는 오클루전을 더 많이 받을 영역의 더 많은 샘플을 더 충실하게 계산하여 SSAO를 개선합니다. 따라서 더 많은 처리 능력이 필요하지만 더 부드럽고 자연스러운 그림자를 생성합니다. 따라서 HBAO가 더 나은 결과를 제공하지만, 더 빠르고 많은 실시간 어플리케이션에서 잘 작동하기 때문에 SSAO가 여전히 널리 사용되고 있습니다.
실시간 렌더링에는 빠른 성능이 필요하므로 프레임 속도가 느려지지 않도록 앰비언트 오클루전을 최적화해야 합니다. 한 가지 일반적인 방법은 AO 계산에 더 낮은 해상도를 사용한 다음 결과를 흐리게 처리하여 노이즈를 부드럽게 하는 것입니다. 이렇게 하면 처리 부하를 줄이면서도 설득력 있는 효과를 만들 수 있습니다. 성능을 향상시키는 또 다른 방법은 매 프레임마다 다시 계산할 필요가 없도록 AO 계산을 캐시하는 것입니다. 앰비언트 오클루전은 직접 조명에 비해 변화가 느리기 때문에 이전 계산을 저장하고 재사용하면 컴퓨팅 성능을 절약할 수 있습니다. 또한 씬의 어두운 부분과 같은 특정 영역으로만 AO를 제한하면 불필요한 계산을 줄일 수 있습니다. 많은 최신 GPU는 AO를 기본적으로 지원하므로 게임과 실시간 어플리케이션에서 성능 손실을 최소화하면서 더 나은 시각적 품질을 얻을 수 있습니다. 게임 개발자는 플레이어가 하드웨어에 따라 효과를 조정하여 고품질 셰이딩과 부드러운 성능 사이의 균형을 맞출 수 있는 AO 설정을 제공하는 경우가 많습니다.
앰비언트 오클루전을 올바르게 사용하면 3D 씬이 더욱 자연스럽고 사실적으로 보입니다. 적절한 위치에 부드러운 그림자 디테일을 추가하여 오브젝트가 빛과 상호 작용하는 방식을 개선합니다. 이 효과는 특히 오브젝트를 배경에 배치하여 부자연스럽게 떠다니는 것이 아니라 실제 환경에 속해 있는 것처럼 보이게 하는 데 유용합니다. 폴리 플레이그라운드의 이 동영상에서 볼 수 있듯이 AO를 먼지나 때와 같은 다른 유형의 머티리얼에 대한 마스크로 사용하는 독특한 응용 분야도 있습니다:
애니메이션과 시각 효과에서 AO는 재질에 풍성함을 더하고 천의 주름이나 벽의 벽돌 사이 간격과 같은 표면 디테일을 정의하는 데 도움이 됩니다. AO는 밝은 씬에서도 주변광을 충분히 받지 못하는 영역을 미묘하게 음영 처리하여 표면이 너무 밋밋해 보이는 것을 방지합니다. 3D 아티스트와 개발자는 앰비언트 오클루전을 이해하고 최적화함으로써 렌더링의 사실감을 크게 향상시킬 수 있습니다. 하이엔드 시네마틱 프로젝트에서든 실시간 비디오 게임에서든 AO는 3D 그래픽에 깊이, 그림자, 자연스러운 조명 효과를 추가하는 강력한 툴입니다.
앰비언트 오클루전은 3D 렌더링에서 사실감을 향상시키는 강력한 툴입니다. 좁은 공간에서 빛이 자연스럽게 차단되는 방식을 시뮬레이션하여 깊이와 부드러운 그림자를 추가하여 오브젝트가 더욱 현실감 있고 사실적으로 느껴지도록 합니다. 이 효과는 고품질 오프라인 렌더링을 위해 사전 계산된 AO를 사용하든 SSAO 및 HBAO와 같은 실시간 기술을 사용하든 몰입감 있고 시각적으로 풍부한 씬을 만드는 데 중요한 역할을 합니다. 앰비언트 오클루전을 이해하고 효과적으로 구현하면 아티스트와 개발자는 렌더링을 더욱 사실적으로 구현할 수 있습니다. 애니메이션, 게임 개발, 건축 시각화 등 어떤 분야에서든 AO를 마스터하는 것은 더욱 설득력 있고 시각적으로 매력적인 3D 그래픽을 제작하는 데 필수적인 단계입니다.