프로그래밍 2015. 10. 2. 16:47
728x90

 

SSAO 구현 1

 

 

모서리진 부분의 음영을 짙게 만들기 위해 구현중.

 

SSAO 는 SSGI 의 한 부분.

일반적인 라이팅보다는 훨씬 그럴듯한 음영을 만들 수 있다.

 

 

 

 

위. 그냥 뎁스버퍼를 만들고, 주위의 픽셀들과 자신의 뎁스값을 비교해서, 그려본것

음 역시 단순 비교 계산만으로는 이런식으로밖에 표현되지 않는다.

 

 

 

 

 

참고 블러그는 여기로

http://bleedmin.blogspot.kr/2012/04/ssao.html

 

위. 블러그에 나와있는 소스를 베껴서 그대로 출력시켜본것

구석진 부분이 짙게 출력되는 것을 확인할수 있다.

좀 애매했던 부분이, 랜덤노말 텍스쳐를 만드는 부분이었는데,

이 부분에 대한 설명은 찾기가 힘들었다.

 

그래서 그냥.

 

 

 

노이즈 텍스쳐의 노말맵을 만들어서 사용해 보았다.

 

 

 

 

 

 

 

 

 

 

구석진 곳이 어둡게 출력된다.

어떤 모양의 노말맵을 사용하느냐에 따라서, 출력이 많이 달라진다.

 

 

 

 

 

 

 

위. 랜덤노말 텍스쳐를 여러장 만들어 테스트 해보면서

출력이 깔금한 것으로 교체

그리고, SSAO 된 이미지에 1차 블러를 적용

으음. 꽤 그럴듯 해졌다!

 

 

 

 

 

위. 현재 사용중인 랜덤노말 텍스쳐

 

 

하지만

 

 

 

 

위. 나공간 엔진은 포워드 렌더링을 사용하고 있어서,

원본 이미지에 SSAO 를 곱해주니, 이런 식으로 출력된다.

때 묻은 효과다 ㅎ ㅎ ㅎ

 

원래는 캐릭터의 라이팅 계산때 엠비언트 값으로 적용시켜 주어야 한다는데,

포워드는 라이팅 계산후, 최종 2D 화면으로 SSAO를 만들어 주니,

엠비언트 값으로 사용할수 없다.

 

포원드 렌더링에 효과적으로 적용시킬수 있는 방법이 필요하다.

 

 

 

 

728x90

'프로그래밍' 카테고리의 다른 글

dof 구현 1  (3) 2015.10.05
SSAO 구현 2  (0) 2015.10.05
bloom 증폭  (0) 2015.09.23
HDR bloom 테스트  (0) 2015.09.22
게임 UI 해상도 변환  (0) 2015.06.25
posted by BK dddDang
: