Shader/Urp shader

[URPShaderGraph] Post Process 예제

구찬애 2023. 8. 10. 01:02
반응형

포스트 프로세싱, 일명 후처리로 매우 효과적으로 화면효과를 얻을 수 있다.

: 렌더링이 끝난 화면에 나와 있는 이미지를 텍스쳐로 생각하면 좋을 것 같다.

 

일단 작업해본 내용은 다음과 같다

  • Outline
  • Gray
  • GaussianBlur
  • RainWindow
  • PixelizeFeature

영상에 담아 두었으니 참고하세요.

Outline

많이들 사용할것 같다. 생각보다 무겁지 않고 간변하기도 하고 2Pass를 사용하지 않아도 되고 여러 장점이 있다.

일괄처리되어 드로우콜도 적다.

이번에 만든 오브젝트의 스케일이 서로들 달라도 모두 같은 수치의 OutLine을 얻을 수 있는 것으로 넣어 두었다.

다만 카메라와 거리가 다르면 아웃라인의 두께도 다르다.

다른 점 셀 애니풍의 하늘색 여자와 핑크 머리 여자는 다른 아웃라인이 적용되어 있다.

가지고 있는 색 보다 어두운 색아웃라인으로 표현되고 있다.

그래서 아웃라인 자체들도 색이 통일되지 않게 만들었다.

Gray

흑백처리로 화면을 받아서 Saturation을 떨어트리는 방식이다.

주의할 점은 반드시 Blackboard에 Texture2D를 _MainTex라는 네임으로 생성하여 출력해야만 한다.

이유는 Post process Scripte에서 _MainTex라는 이름으로 세이더에 화면을 텍스쳐로 만들어 넣어주기 때문이다.

 

Blur

 

RainWindow

: 말 그대로 비내리는 창문의 효과

여기에서도 _MainTex를 이용해 RenderToTexture 기능을 이용해 이펙트에 굴절을 넣는 방식으로 진행했다.

<참고 : 대마왕의 유니티 URP 스타트업>

PixelizeFeature

이건 참 힘들게 만들었다. 다른 분들은 어떻게 만드시는지 공유 좀 해주세요..ㅠ_ㅠ..

3개의 스크립트와 쉐이더 1개로 구성해 다소 복잡한 형태를 가지고 있다.

각 단계별 ScreenHeight 값

카툰 스타일의 프로젝트에 어울릴 것 같다. 파란색 공처럼 카툰스타일의 쉐이더와 함께 사용하면 괜찮을 것 같다.

 

반응형