본문 바로가기
유니티/shaderGraph

유니티 셰이더 그래프 예제 11, 굴절 효과 구현, Unity ShaderGraph refaction

by NGVI 2021. 4. 22.

유니티 셰이더 그래프 예제 11, 굴절 효과 구현, Unity ShaderGraph refaction

유니티 셰이더 그래프를 통해 간단하게 굴절 효과를 만들어 봅시다.

 

이전에 외곡 효과를 만 듯 것과 거의 유사합니다.

오히려 노드 구성자체는 외곡 효과를 만 듯 것보다 간단합니다.

 

외곡 효과를 만들 때와 마찬가지로 화면 텍스처를 참조할 수 있어야 해당 기능이 돌아갑니다.

 

아래 내용을 체크해주세요

 

사전 체크 사항

몇 가지 사전 처리가 되어 있어야 합니다.

먼저 mainCamarar가 Opaque Texture 허용이 되어 있나 확인해주세요.

 

mainCamarar가 Opaque Texture의 확인

다음으로

해당 파일들

URP 설정 파일들의

Opaque Texture의 확인

Opaque Texture의 확인이 돼야 합니다.

 

요게 돼야 우리는 사전에 그려놓은 화면을 참조할 수 있는 조건이 됩니다.

잘 되었다면

 

Lit Shader Graph를 하나 생성, 이름은 적당히 해주세요

 

Graph Inspector설정

설정참고

surface를 Transparet로 설정

-그릴 객체는 사전 화면에 찍히지 않고, 투영시킬 화면을 준비합니다.

 

일단 스크린을 얻어와서 그냥 뿌리는 것부터

설정참조 01

해당 픽셀에 해당하는 스크린 uv와 scene color을 참조해서 base 칼라 넣습니다.

 

현재 상태

여기까지는 외곡 효과 만드는 것과 완전 돌 일하네요.

그래서 그냥 복붙 하기도 했습니다.

 

이제는 굴절되는 움직임을 표현해 봅시다.

중앙에서 먼가 돌아가는 모양으로 만들어보고 싶었다.

 

Radial Shear의 offset에 연속된 변화된 값을 입력하여 noise에 uv로 넣어줍니다. 그러면 먼가 중심을 기준으로 움직이는 이미지가 생성됩니다.

 

요걸 기존 uv와 합을 할 건데, 움직임 수치에 다시 0.1등을 작은 수를 더해서 표현합니다.

 

현재 결과

중앙을 기준으로 먼가 움직이는 느낌 구현

그럼 이번에는 한쪽 방향으로 흘러가는 느낌을 구현해 봅시다.

한쪽 방향으로 흐르는 모양으로 구성

거의 위의 노드들과 유사하지만

 

Radial Shear대신 Tiling And Offset을 이용하여 구현했습니다.

 

현재 결과

현재결과

두 움직임을 합성해서 표현도 할 수 있겠죠.

둘의 합성시킨 노드

별 다른 설명은 안 함

 

결과

결과값

굴절 같은 느낌도 간단히 구현되는군요.

 

게임 제작하기 좋은 세상입니다.

 

봐주셔서 감사합니다.

댓글