https://www.slideshare.net/msparkms/ssao-15650492 참고했습니다.
SSAO는(Screen Space Ambient Occlusion, SSAO) 의 약자입니다.
AO의 결과값을 실시간으로 효율적으로 예측하는 기법입니다.
이 기법은 크라이텍의 블라디미르 카잘린에 의해 개발되었습니다.
Screen Space ( 화면 공간 ) 이란 화면에 표시되는(모니터로 보는) 공간을 나타내는 것입니다.
즉 화면 공간만 AO 계산을 하기 때문에 AO 의 무거운 계산을 많이 덜 수가 있습니다.
SSAO는 텍스처에 저장된 씬은 깊이 버퍼를 분석하여 AO의 근사치를 계산합니다.
이제 SSAO 의 알고리즘을 살펴 보겠습니다.
카메라 ( Screen) 기준으로 깊이 버퍼를 비교합니다.
주변픽셸의 depth buffer 데이터를 비교해 AO의 알고리즘을 적용 시킵니다.
알고리즘을 구한뒤 경계부분은 유지를 하면서 노이즈를 부드럽게 변환 시키면
이런 결과값을 구할 수 있습니다.
다른 이미지와 잘 섞으면 훨씬 현실감있는 이미지를 만들 수 있습니다.
SSAO의 장점
씬이 아무리 복잡해도 독립적입니다.
데이터 전처리가 불필요하며 시스템 메모리의 할당이나 로딩 시간이 없습니다.
동적 씬과 동작합니다.
화면의 모든 화소마다 동일하고 일정한 방법으로 동작합니다.
이번장은 여기까지 알아보겠습니다.
'프로그래밍 > DirectX , 게임기반 기술 등등...' 카테고리의 다른 글
Ambient Occlusion Chart1. AO란? (0) | 2017.12.27 |
---|
Ambient Occlusion 이란?
빛의 차폐로 인한 감쇠 근사치를 구하는 이펙트입니다.
쉽게 말해서 구석진 부분을 훨씬 더 어둡게 하여 더욱 자연스럽고 사실적인 느낌을 낼 수 있도록 하는 것입니다.
출처 : https://gamedev.stackexchange.com/questions/23/what-is-ambient-occlusion
AO의 알고리즘
출처 : http://blog.naver.com/PostView.nhn?blogId=daehuck&logNo=220449224224&parentCategoryNo=&categoryNo=34&viewDate=&isShowPopularPosts=true&from=search
한 점(P) 로 노말기준 반원을 그립니다(뒤는 오브젝트들이 연결되어 있으니)
A의 경우보다 B의 경우게 차폐되는 양이 늘어나므로 더 구석진 곳으로 되어있다는 것을 알수가 있습니다. 그러므로 차폐의 양에 따라 더 어둡게 처리를 해주면 구석진 곳이 어두워 지게 됩니다.
AO의 알고리즘은 정확하게 계산할수록
퀄리티 Up 이 되고 퍼포먼스는 Down이 됩니다.
(이론상은 가능하지만 실시간 렌더링하기엔 매우 무거움)
AO(Ambient Occulusion)를 실시간 렌더링을 하기에는 매우 무거운 작업입니다.
보통 회색조(0~1) 텍스처 또는 정점 색을 통해 조절을 했었습니다.
현재에는 많은 기법들이 나와있습니다. SSAO,HBAO,HBAO+ 등이 있지만
이번 장은 AO에 대해서만 알아보겠습니다.
다음 장은 SSAO 에 대해서 더 알아보겠습니다.
'프로그래밍 > DirectX , 게임기반 기술 등등...' 카테고리의 다른 글
Ambient Occlusion Chart2. SSAO란? (0) | 2017.12.27 |
---|