맨위로가기

스크린 서피스 앰비언트 어클루전

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

스크린 서피스 앰비언트 어클루전(SSAO)은 3D 그래픽스 기술로, 화면 공간에서 앰비언트 오클루전 효과를 구현하여 렌더링된 장면에 사실적인 그림자를 추가한다. SSAO는 픽셀 셰이더를 사용하여 깊이 버퍼를 분석하고, 주변 깊이 값을 샘플링하여 차폐되는 비율을 계산한다. 이 기술은 장면 복잡도에 독립적이며, GPU를 활용하여 실시간 렌더링이 가능하다는 장점이 있지만, 국소적인 특성으로 인해 시각적 오류가 발생할 수 있고, 깊이 불연속성 부분의 노이즈 처리가 어렵다는 단점도 존재한다. SSAO는 MikuMikuDance와 같은 응용 프로그램에서 사용되며, TSSAO, SSDO, SSR, SSGI와 같은 유사 기술로 발전했다.

더 읽어볼만한 페이지

  • 셰이딩 - 난반사
    난반사는 재료 표면 아래에서 빛이 산란되어 모든 방향으로 퍼져 나가는 현상으로, 재료 내부 구조에 의한 반복적인 반사 및 산란 때문에 발생하며 시각적 인식과 컴퓨터 그래픽스 등 다양한 분야에서 활용되고 특정 모델로 근사할 수 있다.
  • 셰이딩 - 광선 추적
    광선 추적은 빛의 경로를 시뮬레이션하여 3차원 컴퓨터 그래픽 이미지를 생성하는 렌더링 기법으로, 재귀적 광선 추적 개발과 하드웨어 가속 지원에도 불구하고 높은 계산 비용이 실시간 처리의 제약으로 남아있다.
  • 컴퓨터 그래픽스 알고리즘 - 알파 합성
    알파 합성은 이미지의 투명도를 표현하고 합성하는 기술로, 알파 채널을 사용하여 투명도 정보를 저장하고 스트레이트 알파와 프리멀티플라이드 알파 방식으로 이미지를 합성하며, PNG, TIFF, GIF 등 다양한 이미지 형식이 이를 지원한다.
  • 컴퓨터 그래픽스 알고리즘 - 클리어타입
    클리어타입은 마이크로소프트에서 개발한 서브픽셀 렌더링 기술로, LCD와 같은 평판 모니터에서 텍스트 가독성을 향상시키기 위해 픽셀을 구성하는 서브픽셀을 개별적으로 제어하여 글꼴의 앤티에일리어싱 효과를 개선하고 텍스트를 더 부드럽게 보이도록 하는 기술이다.
스크린 서피스 앰비언트 어클루전
개요
유형컴퓨터 그래픽스 렌더링 기술
용도3D 장면의 사실성 향상
특징장면의 간접 조명 효과를 근사적으로 계산하여 그림자를 부드럽게 만듦
기술적 세부 사항
작동 방식화면 공간 정보를 사용하여 각 점이 얼마나 많이 가려져 있는지 추정
깊이 버퍼 및 노멀 버퍼 사용
장점상대적으로 낮은 계산 비용으로 시각적 품질 향상
단점화면 공간 기술의 한계로 인해 완벽한 정확도를 제공하지 못함
아티팩트(artifact) 발생 가능성 존재
구현다양한 그래픽 API 및 게임 엔진에서 지원
변형 및 개선 사항
변형HBAO (Horizon-Based Ambient Occlusion)
SSAO+
VXAO (Voxel Accelerated Ambient Occlusion)
개선 사항노이즈 감소
성능 최적화
더 정확한 그림자 표현
활용 분야
주요 활용 분야비디오 게임
컴퓨터 애니메이션
시뮬레이션
3D 모델링
효과시각적 사실감 향상
몰입감 증가
장면의 디테일 강조
기타
관련 기술앰비언트 어클루전 (Ambient Occlusion)
전역 조명 (Global Illumination)
레이 트레이싱 (Ray Tracing)

2. 구현

이 알고리즘은 픽셀 셰이더로 구현되어 있으며, 텍스처에 저장된 씬의 심도 버퍼를 분석한다. 화면의 모든 화소마다 픽셀 셰이더는 현재 화소 주변의 깊이 값들을 샘플링한 다음 샘플링된 점들 각각으로부터 어클루전의 양을 계산한다. 가장 단순한 구현의 경우, 어클루전 요소는 샘플링된 점과 현재의 점 간의 심도 차이에만 의존한다.

브루트 포스 방식과 같은 추가적인 현명한 해결책 없이는 좋은 화질을 위해 화소 당 약 200개의 텍스처 읽기가 필요하다. 이는 현재의 그래픽 하드웨어에서의 실시간 렌더링에는 적합하지 않다. 훨씬 더 낮은 읽기로 고품질의 결과물을 얻기 위해 임의로 회전된 커널을 사용하여 샘플링이 수행된다. 커널 방향은 최종 그림에서 고주파 노이즈만 갖도록 하기 위해 모든 ''N'' 화면 픽셀마다 반복된다. 결국 이 고주파 노이즈는 깊이 불연속성을 고려하여 (인접한 법선과 깊이를 비교하는 방법 사용) ''N''x''N'' 사후 처리 흐림 단계를 통해 크게 제거된다. 이러한 솔루션을 통해 픽셀당 깊이 샘플 수를 약 16개 이하로 줄이면서 고품질 결과를 유지할 수 있으며, 컴퓨터 게임과 같은 소프트 실시간 애플리케이션에서 SSAO를 사용할 수 있다.

일반적인 게임 씬의 SSAO 구성 요소.


SSAO에서는 먼저 화면 내에서의 깊이 (카메라에서 물체까지의 거리) 정보를 텍스처로 렌더링하고, 다음으로 그 텍스처를 사용하여 차폐되는 비율을 계산한다. 렌더링하는 물체의 기하학적 정보를 2차원 이미지로 투영함으로써 계산량이 대폭 감소되어, 고속 처리가 가능해진다. 또한 GPU로 병렬 처리함으로써 실시간 처리가 가능해진다. 또한 처리 속도는 화면 해상도에 의존하며, 씬의 복잡성(정점 수)에 따라 변하지 않기 때문에 처리 부하의 추정이 용이하다.

다른 앰비언트 오클루전 솔루션과 비교하여 SSAO는 다음과 같은 장점이 있다.[6][7]

  • 장면 복잡도와 무관하다.[6]
  • 데이터 사전 처리, 로딩 시간 및 시스템 메모리 할당이 필요하지 않다.[6]
  • 동적 장면에서 작동한다.[6]
  • 화면의 모든 픽셀에 대해 동일한 일관된 방식으로 작동한다.[6]
  • CPU 사용량이 없다. GPU에서 완전히 실행할 수 있다.[6]
  • 모든 최신 그래픽 파이프라인에 쉽게 통합할 수 있다.[6]


SSAO는 또한 다음과 같은 단점이 있다.[6]

  • 다소 국지적이며 많은 경우 임의의 지오메트리에 의해 생성될 수 있는 인접한 텍셀 깊이에 의존하기 때문에 종속적인 시각이다.
  • 객체 가장자리와 같은 깊이 불연속성을 방해하지 않고 노이즈를 올바르게 부드럽게/흐리게 하는 것이 어렵다(차폐는 객체로 "번지지" 않아야 함).


AO는 영화 등 처리 시간에 제약이 없는 프로덕션 렌더링의 경우 정확한 레이 트레이싱 등의 글로벌 일루미네이션 기술을 사용하여 표현할 수 있지만, 게임 등의 실시간 렌더링에서는 처리 시간이나 머신 스펙에 제약이 있기 때문에 간이적으로 표현하는 수법이 필요했다.

이 문제를 해결하기 위해 여러 프레임에 걸친 계산 결과를 평균하여 처리 부하를 경감한 TSSAO가 존재한다[6]

SSAO는 깊이와 법선을 이미지로 저장 · 사용하기 때문에, 지연 셰이딩과의 궁합이 좋다.

SSAO에 의해 얻어진 음영 정보는 전 방향에서 균일한 빛이 닿았을 때 빛이 차폐되는 비율을 근사한 것이므로 환경광에 곱하여 사용해야 하며, 평행광 등 방향성이 있는 빛에 대해서는 곱해져서는 안 된다. 그러나, 렌더링 파이프라인의 제약이나 지식의 부족으로 인해, 평행광에 의한 빛을 포함한 모든 빛의 합계에 곱해지는 경우가。 그 경우, 그림자 부분이 검게 변색된 듯한 표현이 되어 버린다.

IBL (이미지 기반 조명)에 의한 환경광은 방향에 따라 편향이 있지만, 병용되는 평행광에 비해 압도적으로 광량이 적기 때문에 SSAO를 사용해도 그다지 위화감이 없다. 또한, 입사하는 빛의 편향을 고려하여 계산을 수행하는 SSDO (screen-space directional occlusion)라는 수법도 있다[7]

2. 1. 작동 원리

이 알고리즘은 픽셀 셰이더로 구현되어 있으며, 텍스처에 저장된 씬의 심도 버퍼를 분석한다. 화면의 모든 화소마다 픽셀 셰이더는 현재 화소 주변의 깊이 값들을 샘플링한 다음 샘플링된 점들 각각으로부터 어클루전의 양을 계산한다. 가장 단순한 구현의 경우, 어클루전 요소는 샘플링된 점과 현재의 점 간의 심도 차이에만 의존한다.

브루트 포스 방식과 같은 추가적인 현명한 해결책 없이는 좋은 화질을 위해 화소 당 약 200개의 텍스처 읽기가 필요하다. 이는 현재의 그래픽 하드웨어에서의 실시간 렌더링에는 적합하지 않다. 훨씬 더 낮은 읽기로 고품질의 결과물을 얻기 위해 임의로 회전된 커널을 사용하여 샘플링이 수행된다. 커널 방향은 최종 그림에서 고주파 노이즈만 갖도록 하기 위해 모든 ''N'' 화면 픽셀마다 반복된다. 결국 이 고주파 노이즈는 깊이 불연속성을 고려하여 (인접한 법선과 깊이를 비교하는 방법 사용) ''N''x''N'' 사후 처리 흐림 단계를 통해 크게 제거된다. 이러한 솔루션을 통해 픽셀당 깊이 샘플 수를 약 16개 이하로 줄이면서 고품질 결과를 유지할 수 있으며, 컴퓨터 게임과 같은 소프트 실시간 애플리케이션에서 SSAO를 사용할 수 있다.

SSAO에서는 먼저 화면 내에서의 깊이 (카메라에서 물체까지의 거리) 정보를 텍스처로 렌더링하고, 다음으로 그 텍스처를 사용하여 차폐되는 비율을 계산한다. 렌더링하는 물체의 기하학적 정보를 2차원 이미지로 투영함으로써 계산량이 대폭 감소되어, 고속 처리가 가능해진다. 또한 GPU로 병렬 처리함으로써 실시간 처리가 가능해진다. 또한 처리 속도는 화면 해상도에 의존하며, 씬의 복잡성(정점 수)에 따라 변하지 않기 때문에 처리 부하의 추정이 용이하다.

2. 2. 장점

스크린 서피스 앰비언트 어클루전(SSAO)은 다른 앰비언트 어클루전 해결책에 비해 다음과 같은 장점을 갖는다.[6][7]

  • 씬 복잡도에 독립적이다.[6]
  • 데이터 전처리, 로딩 시간, 시스템 메모리 할당이 필요 없다.[6]
  • 동적 씬에서도 작동한다.[6]
  • 화면의 모든 픽셀에 대해 일관되게 작동한다.[6]
  • CPU 사용 없이 GPU에서 완전히 처리 가능하다.[6]
  • 현대 그래픽스 파이프라인에 쉽게 통합 가능하다.[6]


SSAO는 화면 내 깊이 정보를 텍스처로 렌더링하고, 이를 이용하여 차폐되는 비율을 계산하여 고속 처리가 가능하다. GPU를 이용한 병렬 처리로 실시간 처리가 가능하며, 처리 부하는 화면 해상도에 의존하고 씬의 복잡성에 따라 변하지 않아 추정이 용이하다.

2. 3. 단점

SSAO는 국소적인 방법으로, 인접 텍셀의 깊이에 의존하기 때문에 시각적 오류가 발생할 수 있다.[6] 객체 가장자리와 같은 깊이 불연속성 부분에서 노이즈를 부드럽게 처리하기 어렵다. 화면 밖이나 다른 물체에 가려져 카메라에 보이지 않는 물체에 의한 그림자는 렌더링할 수 없다.[6] 또한, 실시간 렌더링 기술 중에서는 처리 부하가 높은 편에 속하며, 이 문제를 해결하기 위해 여러 프레임에 걸친 계산 결과를 평균하는 TSSAO가 존재한다.[6]

SSAO는 지연 셰이딩과 궁합이 좋다.

SSAO로 얻어진 음영 정보는 모든 방향에서 균일한 빛이 닿았을 때 빛이 차폐되는 비율을 근사한 것이므로, 환경광에 곱하여 사용해야 한다. 그러나 렌더링 파이프라인의 제약 등으로 인해 평행광을 포함한 모든 빛의 합계에 곱해지는 경우가 있어, 그림자 부분이 검게 변색된 듯한 표현이 될 수 있다. IBL (이미지 기반 조명)에 의한 환경광은 방향에 따라 편향이 있지만, 병용되는 평행광에 비해 광량이 적어 SSAO를 사용해도 큰 위화감은 없다. 입사하는 빛의 편향을 고려하여 계산을 수행하는 SSDO (screen-space directional occlusion)라는 방법도 있다.[7]

3. 역사

4. 유사 기술

스크린 서피스 앰비언트 어클루전(SSAO)는 전 방향에서 입사하는 빛에 대한 그림자를 판정하여 환경광에 곱하지만, 샘플링 방식과 계산 방법을 변경하여 유사한 기술로 AO 이외의 표현도 할 수 있다.

예를 들어, 샘플을 전 방향이 아닌, 시선 벡터를 표면에 반사시킨 방향으로 편향시킴으로써 스페큘러 오클루전이나 로컬 반사를 표현할 수 있다[8]。이는 SSR(screen-space reflection, 화면 공간 반사) 또는 RLR(realtime local reflection, 실시간 로컬 반사)이라고 불린다. 또한, 샘플은 전 방향으로 균등하게 취하지만, 샘플링한 점이 그림자를 드리우는지 여부가 아니라, 2차 반사로서 얼마나 밝게 비추는지를 얻어 렌더링 결과에 가산함으로써, 간이적인 전역 조명을 표현할 수 있다. SSGI(screen-space global illumination, 화면 공간 전역 조명)라고 불린다.

이러한 기술은 SSAO와 유사한 장점을 가지며, 실시간으로 수행할 수 있기 때문에 하이엔드 게임[9]이나 렌더링 엔진, 게임 엔진[10][11]에서 채용되고 있다.

4. 1. 스크린 공간 반사 (SSR)

샘플을 시선 벡터 반사 방향으로 편향시켜 스페큘러 오클루전 또는 로컬 반사를 표현할 수 있다.[8] 이는 SSR(screen-space reflection, 화면 공간 반사) 또는 RLR(realtime local reflection, 실시간 로컬 반사)이라고 불린다. 이러한 기술은 SSAO와 유사한 장점을 가지며, 실시간으로 수행할 수 있기 때문에 하이엔드 게임[9]이나 렌더링 엔진, 게임 엔진[10][11]에서 채용되고 있다.

4. 2. 스크린 공간 전역 조명 (SSGI)

SSAO는 샘플링 방식과 계산 방법을 변경하여 AO 이외의 표현도 가능하다. 샘플링된 픽셀이 그림자를 드리우는 대신, 2차 반사로 얼마나 밝게 비추는지 계산하여 간이적인 전역 조명을 표현할 수 있는데, 이를 스크린 공간 전역 조명(SSGI, screen-space global illumination)이라고 부른다.[8]

SSGI는 SSAO와 유사한 장점을 가지며, 실시간으로 수행할 수 있기 때문에 하이엔드 게임[9]이나 렌더링 엔진, 게임 엔진[10][11]에서 채용되고 있다.

5. 응용 사례

5. 1. MikuMikuDance (MMD)

MikuMikuDance(MMD)에서 SSAO는 기본적으로 구현되어 있지 않지만, MikuMikuEffect라는 플러그인을 통해 실행할 수 있는 효과(HLSL로 기술된 셰이더)로서, 자발적으로 SSAO가 배포되고 있다.[12]

MMD의 렌더링 파이프라인은 지연 셰이딩을 지원하지 않기 때문에, 환경광에만 곱셈을 적용할 수 없다. 렌더링 결과 전체에 SSAO를 곱하면 그림자의 채도가 떨어지는 문제가 있는데, 툰 표현을 잘하는 MMD에서 이는 바람직하지 않으므로 독특한 계산 방법[13]으로 채도를 유지하고 있다.

SSAO 필터가 등장하기 전부터 있던, 디퓨즈 텍스처에 AO와 같은 음영을 쓰는 방법도 여전히 널리 사용되고 있지만, 환경광에만 음영을 적용할 수 없다는 문제점은 SSAO와 동일하다. 또한, 텍스처에 의한 음영과 SSAO가 병용되는 경우도 많다.

6. 한계 및 개선 방향

6. 1. 지연 셰이딩과의 호환성 문제

6. 2. TSSAO

6. 3. SSDO

참조

[1] 웹사이트 What is Ambient Occlusion? Does it Matter in Games? https://thewiredshop[...]
[2] 웹사이트 Approximating Dynamic Global Illumination in Image Space http://people.mpi-in[...] Proceedings ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2015-11-25
[3] 뉴스 西川善司が分析!『アンチャーテッド』のグラフィックスのスゴさとは【PR】、週刊アスキー、閲覧2017年2月15日 https://weekly.ascii[...] 2017-02-15
[4] 서적 Substance Painter入門 秀和システム 2017
[5] 웹사이트 A Comparative Study of Screen-Space Ambient Occlusion Methods http://frederikaalun[...]
[6] 블로그 Temporal SSAO のメモ - hanecci's Blog https://hanecci.hate[...]
[7] Youtube Approximating Dynamic Global Illumination in Image Space https://www.youtube.[...]
[8] 뉴스 西川善司の3Dゲームファンのための「E3 2011」グラフィックス講座 https://game.watch.i[...]
[9] 블로그 PS4 "Killzone : Shadow Fall" のIBL リフレクションシステムの説明 - hanecci’s Blog https://hanecci.hate[...]
[10] 웹사이트 Screen Space Reflection | Unreal Engine 4 https://docs.unreale[...]
[11] 웹사이트 シリコンスタジオの最新テクノロジーデモ技術解説 https://www.slidesha[...]
[12] 웹사이트 【MMD】 SSAOフィルタ配布 【MME】 https://web.archive.[...]
[13] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com