AO에 따른 그래픽 차이. 출처
오브젝트를 6방향의 복셀 입자로 단순화했을 때 '차폐(구석짐)'의 정도(4단계) 와 그것을 AO 밝기로 표현한 예시. 출처
1. 개요
Ambient Occlusion빛의 차폐로 인한 감쇠 근사치를 구하는 이펙트입니다. 현실에서도 방의 구석 부분은 훨씬 더 어둡듯이, 구석이나 틈 같은 곳을 더 어둡게 하여 더욱 자연스럽고 사실적인 느낌을 낼 수 있도록, 표준 글로벌 일루미네이션에 더해 미묘한 이펙트로 사용하는 것이 보통 가장 좋습니다.
- 언리얼 엔진 가이드 중 SSAO에 대한 설명에서 발췌.
- 언리얼 엔진 가이드 중 SSAO에 대한 설명에서 발췌.
렌더링 과정 중 셰이딩의 한 방식. 각각의 표면이 공간에 얼마나 노출되어 있는지를 계산하여 그림자를 더해주는 기술이다. 평평한 면이나 볼록한 입체는 밝게, 오목하거나 골이 파인 곳에는 어둡게 컬러 톤을 보정하여 마루와 골짜기의 대비를 살려준다. 일반적으로 광원과 물체를 던져놓고 지역 조명 방식[1]으로 처리를 시행하면 그림자는 있지만 실제와 미묘하게 다른데, AO는 이를 보정하고 입체감을 강화하며 실제에 더 가깝게 보이도록 만든다. 리얼타임 레이 트레이싱으로도 구현되고 있다. HBAO와의 비교영상 미니어처나 디오라마 모형을 제작할 때 가는 틈에 먹선을 흘려넣으면 작은 물체에서도 입체감이 살아나는 것과 같은 원리.
2. 종류
-
SSAO - Screen Space Ambient Occlusion
가장 많이 쓰이는 전통있는 AO. 현재 모니터에 렌더링되는 영역만을 Screen Space로 인식하여 해당 영역에만 앰비언트 오클루전을 적용함으로써 일정 수준 최적화 된 그래픽을 제공한다. 후술할 HBAO+가 보급된 후에는 위상이 좀 떨어졌지만 여전히 옵션 타협용으로 둘 다 지원하는 경우가 절대다수이다.[2] -
NVIDIA Ambient Occlusion
정식 명칭은 그냥 Ambient Occlusion이다. SSAO가 정착되기 이전 지포스 전용(...)으로 독자 구현한 방식으로, 미리 구워놓은 맵을 통한 반실시간 구현에 가까운 방식. 특히 지포스에 최적화하기 유리하지만 개발자가 노가다로 맵을 구워놔야 하는 측면 때문에 AMD가 밀던 SSAO에 밀려서 사장되었다. (SSAO를 AMD가 개발한 것은 아니지만, 상대적으로 셰이더 성능에 치중하는 라데온 개발 성향에 맞아서 밀어줬던 것) 지금은 하프라이프 2, 월드 인 컨플릭트, 폴아웃 3 등 극히 몇몇 게임만 지원한다. # 하지만 NVIDIA는 이후 HBAO로 AMD의 HDAO를 밀어내고 대세를 되찾는다. -
HBAO+ - Horizon Based Ambient Occlusion+
NVIDIA가 제공하는 기술. 최근 들어 쓰이는 차세대 AO로 배틀필드4, 위쳐3, 라이즈 오브 툼 레이더 등 많은 곳에 적용되었다. SSAO보다 좀 더 높은 연산능력을 필요로 하지만 그림자의 정확성이 좀 더 높아진다. -
HDAO - High Definition Ambient Occlusion
AMD가 개발하고 밀어줬던 SSAO의 개량판. 단순히 SSAO를 더 정교하게 연산해서 퀄리티를 올리는 방식이라 성능 하락 대비 쓰레기지만, 당시 라데온에 전용 가속 명령어를 넣어서 그걸 쓰면 쓸만하게 해주는 식으로 밀어줬는데.....근본적인 개선을 해버린 HBAO에 비하면 라데온 전용 가속 명령어를 써야 본전만 간신히 찾는 수준이라 발렸다. 지금은 파크라이 3 등 극히 몇몇 게임만 지원한다. # - VXAO - Voxel Accelerated Ambient Occlusion
- SSDO - Screen Space Directional Occlusion
- AAO - Alchemy Ambient Occlusion
- ABAO - Angle Based Ambient Occlusion
- PBAO
- ASSAO - Adaptive Screen Space Ambient Occlusion, HBAO+와 비슷하게 SSAO를 개량한 기술. F1 2018에서 AMD 최적화 옵션으로 등장하여 비교 벤치가 나오기도 했다. # 다만 기술 자체는 인텔이 만든 듯 # (이전에도 인텔이 만든 MLAA를 라데온에서 가져다 쓴 적이 있으니 이상할 건 없다.) 후술할 FidelityFX CACAO가 나온 후에는 AMD 최적화로 사용할 메리트가 떨어져서 지원 게임이 많지는 않다.
-
CACAO - Combined Adaptive Compute Ambient Occlusion
AMD FidelityFX의 AO 구현방식 중 하나의 풀네임, 정식 명칭은 주로 FidelityFX Ambient Occlusion. 상술한 기술들[3]보단 좀 나중에 나왔다. -
DFAO - Distance Field Ambient Occlusion
에픽게임즈의 언리얼 엔진 4에서 제공하는 기술. 중간 정도 크기의 움직이는 오브젝트에 최적화하도록 만든 방식이며, 오브젝트 별로 미리 계산한 데이터를 실시간 라이트와 조합해서 동적인 AO를 표현한다. - GTAO - Ground Truth Ambient Occlusion
-
RTAO - Ray-traced Ambient Occlusion
레이트레이싱을 기반으로 작동하는 기술. 때문에 요구되는 성능도, 그림자의 정확성도 기존 방식들보다 압도적으로 높은 편이다. 비교. 다만 성능 요구는 최적화된 다른 AO[4]와 비교했을 때 얘기고, 레이트레이싱 치고는 엄청 가벼운 옵션이다.[5] 때문에 이것만 지원하는 게임은 Radeon RX 6000 시리즈에서도 잘 돌아가는 것도 그렇고 여러모로 레이트레이싱 향첨가(...) 수준의 취급을 받는다. 대표적으로 멀티플레이 밸런스 때문에 일부러 전작보다 레이트레이싱 지원 수준을 대폭 낮춘 배틀필드 2042가 있다.
NVIDIA GameWorks에서 제공하는 기술로 라이즈 오브 툼 레이더에서 쓰였다. 말 그대로 AO를 적용할 부분을 복셀 단위로 계산하기 때문에 레이트레이싱 이전 기술 중에선 가장 정확성이 높은 음영을 출력할 수 있지만, 이에 따라 요구되는 GPU의 연산능력이 매우 높다.
[1]
색을 입히고 후처리로 음영을 입힘.
[2]
반면에 SSAO 옵션 없이 HBAO+만 지원하는 경우는 극히 드물었다. 다만 후술할
레이트레이싱 Ambient Occlusion도 도입되기 시작하면서 서서히 SSAO는 안 쓰고 HBAO+를 최하옵 취급하는 사례도 나오기 시작했다.
[3]
HDAO, HBAO+, VXAO, ASSAO
[4]
그것도 주로 주류인 HBAO+ 및 그 정도 급의 기술들
[5]
다만 어디까지나 실시간 레이트레이싱 게이밍을 위한 가속 지원을
Radeon RX 6000 시리즈 수준의 하이브리드라도 지원하는 GPU 기준으로 그렇고,
GeForce 10 시리즈처럼 SW처리를 해야되면 엄청나게 무거워진다. 때문에 대부분의 게임과 게임용 벤치마크 툴들은
GeForce 10 시리즈 같은 GPU에서 레이트레이싱 지원을 전혀 하지 않는다. 일부 테크 데모에서만
GeForce 10 vs
GeForce 20의 레이트레이싱 성능 차이를 부각시킬 목적으로 지원할 뿐.