유니티 셰이더 그래프 예제 06 외곡효과 구현, Unity shader graph distortion
외곡 효과를 만들어 보겠습니다.
특정한 면 뒤로 보이는 이미지 외곡되는 효과입니다.
이를 위해서는 선제적으로 기존 화면이 한번 랜더링이 되어야 하고, 이것을 가져다 써야 합니다.
요것이 되기위해서넌 URP 기준으로(다른 것도 비슷할듯)
몇가지 사전 처리가 되어 있어야 합니다.
먼저 mainCamarar가 Opaque Texture 허용이 되어 있나 확인해주세요.
다음으로
URP 설정파일들의
Opaque Texture의 확인이 되야 합니다.
요게 되야 우리는 사전에 그려놓은 화면을 참조할 수 있는 조건이 됩니다.
준비가 되었으니,
Lit Shader Graph를 하나 생성, 이름은 적당히 해주세요
Graph Inspector설정
surface를 Transparet로 설정
-그릴 객체는 사전화면에 찍히지 않고, 투영시킬 화면만 그릴꺼기 때문에
일단 스크린을 얻어와서 그냥 뿌리는 것부터
해당 픽셀에 해당하는 스크릭 uv와 scene color을 참조해서 base 칼라 넣습니다.
먼가 파랏 빛이 돌지만, 일단 이번 주제에서 중요한 점은 아니니까 적당히 넘어가 주시고,
일단 화면이 나의 객체이 입혀졌습니다.
이번에는 외곡 시킬수 있는 UV 움직임을 만들어 봅니다.
시간을 이용해 타일링에 움직임을 주고, 그것 다시 Twirl 노드에 연결시켜 회전 움직임을 만들어 냅니다.
Gradient Noise를 작은 값으로 Scale 1정도로 생성시켜 uv에 위에서 생성한 값을 넣으면 회전하는 이미지가 됩니다.
해당 값을 Remap으로 -1~1 -> 0.2~2로 범위를 축소하고 Fresnel effest를 Power 0.25정도의 작은값으로 생성시켜 곱합니다.
우리가 필요한건 중앙에 수치가 높아야 하므로 반전시키고(One Minus노드사용), 제곱시켜 각 값들의 차이를 만들어 냅니다.
Screen position에 위의 작업물을 더합니다.
결과물
적당히 동작되고 있습니다.
전체노드 정보
작업들에 도움이 되셨으면 합니다.
감사합니다.
'유니티 > shaderGraph' 카테고리의 다른 글
유니티 셰이더 그래프 예제 08, 트라이플래너 구현, Unity ShaderGraph Triplanar (0) | 2021.04.21 |
---|---|
유니티 셰이더 그래프 예제 07, 눈 효과 구현, Unity ShaderGraph Snow (0) | 2021.04.20 |
유니티 셰이더 그래프 예제 05 전기효과 구현, Unity shader graph Electricity (0) | 2021.04.20 |
유니티 셰이더 그래프 예제 04 포탈 구현, Unity shader graph Portal (0) | 2021.04.19 |
유니티 셰이더 그래프 예제 03 불꽃 구현, Unity shader graph Flame (0) | 2021.04.18 |
댓글