본문 바로가기
유니티 엔진

Making the Post Effect : Blur - X (Post Effect 만들기 기본 : 블러 만들기 장난질 )

by 대마왕J 2015. 12. 28.

 

 

 

 

이건 더더욱 별거 아닌 장난질.

블러를 셰이더 처리 안하고 단순히 다운샘플링만으로 처리할 수는 없을까? 라는 장난질입니다.

 

결과는 뭐.

 

임시버퍼를 4장이나 만들어 썼는데도 아까 블러보다 못한 결과물이 나왔다는거 ㅎㅎ

 

3개의 구역으로 나눴는데 매우 간단하죠.

RenderTexture downsampling1 = RenderTexture.GetTemporary(source.width/2, source.height/2);
   RenderTexture downsampling2 = RenderTexture.GetTemporary(source.width/4, source.height/4);
   RenderTexture downsampling3 = RenderTexture.GetTemporary(source.width/6, source.height/6);
   RenderTexture downsampling4 = RenderTexture.GetTemporary(source.width/8, source.height/8);

 

여기는 렌더텍스쳐 버퍼를 생성하는거. 각각 크기를 2 4 6 8 크기로 줄여서 만들었습니다.

사실 사진에서 크기 줄일때 쓰는 방법하고 되게 비슷하네요. 바이리니어.. 로 돌아가겠죠 아마?

 

 

그래도 불안해서 바이리니어로 셋팅해줬는데 동일하네요

맞는둥.

 

 

 

어쨌건 실제 구현은 이렇게

Graphics.Blit (source, downsampling1);
   Graphics.Blit (downsampling1, downsampling2);
   Graphics.Blit (downsampling2, downsampling3);
   Graphics.Blit (downsampling3, downsampling4);
   Graphics.Blit (downsampling4, destination);

 

되게 쉽습니다. -_- ;;; 알기전엔 어려웠는데

 

끝나면 이제

 

RenderTexture.ReleaseTemporary (downsampling1);
   RenderTexture.ReleaseTemporary (downsampling2);
   RenderTexture.ReleaseTemporary (downsampling3);
   RenderTexture.ReleaseTemporary (downsampling4);  

 

풀어주기만 하면 끝.

 

즉 샘플링으로는 좀 문제가 있다는거죠

 

또 하나의 블러 아이디어가 있는데요... +_+

뭐냐면

 

밉맵을 이용하면 어떨까요???? 셰이더에서 강제 밉맵 지정 가능하니까 ㅋㅋㅋㅋㅋㅋㅋㅋ

아니 근데 렌더 텍스쳐가 밉맵이 생성되던가??? -_-;;; 음 연구과제인듯

 

 

반응형

댓글