프로그래밍 2015. 10. 5. 12:18
728x90

 

 

SSAO 구현 2

 

SSAO 렌더타겟 텍스쳐를

캐릭터, 백모델, 위젯 등에서 조명계산에 사용하도록 코드를 수정하였다.

포워드 렌더링에서도 SSAO 를 조명계산에 사용할수 있다.

 

//screen pos -> UV
//get SSAO Texture color
float3 Get_SSAO_Ambient( float4 _vScreenPos )
{
     float3 vOut;

 

     //스크린포지션값을 텍스쳐 UV값으로 변환

     float2 uv = _vScreenPos.xy / _vScreenPos.w;
     uv = uv * float2(0.5, -0.5) + 0.5;


     vOut = tex2D( Samp_Tex_SSAO, uv ).rgb;

 

     return vOut;
}

 

PS()

{

//vScreenPos 는 W, V, P 가 모두 적용된 정점위치

//일반적으로 VS에서 처리해서 PS로 넘겨지는 정점위치값과 동일하다. 

 

//앰비언트 라이팅 값으로 사용

float3 ambient = _Ambient.rgb * Original * Get_SSAO_Ambient( In.vScreenPos );

 

}

 

눈으로 보기에는,

오리지날 화면 + SSAO 텍스쳐의 합성과

차이가 느껴지지 않는다.

 

처리하기로는 맨 마지막 오리지날 화면에 SSAO 컬러를 합성하는 것이 더 편하고,

연산작용도 적다.

 

 

 

위. 다리 사이에 SSAO 가 적용된것

 

 

 

 

 

 

 

위. 잎사귀 사이사이로 검은 부분이 보인다.

잎이 겹쳐지는 부분에서 드리워진듯하는 그림자 효과가 나는것.

 

문제가 있다.

카메라 화면이 바뀔때마다 SSAO로 표현되는 명암이,

따라서 확확 변한다는 것

이 부분은 별도의 처리가 필요할듯 한데...

 

 

 

 

위. 지형에 SSAO ambient 값적용X

 

 

위. 지형에 SSAO ambient 값적용O

 

 

 

728x90

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

vsm 그림자  (1) 2015.10.13
dof 구현 1  (3) 2015.10.05
SSAO 구현 1  (0) 2015.10.02
bloom 증폭  (0) 2015.09.23
HDR bloom 테스트  (0) 2015.09.22
posted by BK dddDang
: