본문 바로가기
유니티/shaderGraph

유니티 셰이더 그래프 예제 01 포스필드 구현해보기, Unity ShaderGraph ForceField

by NGVI 2021. 4. 17.

유니티 셰이더 그래프 예제 01 포스필드 구현해보기, Unity ShaderGraph ForceField

한동안 그래픽스 작업을 안하다, 최근 필요성이 조금 생겨서

 

유니티에서 쉐이더를 맛을 좀 보려 했는데, 너무 많이 떠나 있다 복귀를 해서 

 

ShaderGraph 란 녀석을 이제 좀 이것저것 만져보려 합니다.

 

그래서 만져보면서 공부한 내용도 좀 정리해 두려구합니다.

 

일단 제가 작업한 환경은 

2021.1

그리고 또 선제조건으로는 

세이더 그래프를 이용하기 위해선 프로젝트 생성 시, 

 

아래 둘중 선택이 필요

High Definition RP나 Universal RP를 선택해주셔야 합니다.

Universal 버전이 라이트하고, HD 버전이 U 버전에 비해 +된 노트가 있는 걸로 알고 있습니다.

 

세이더 그래프를 이용해야 된다는 여러 이유 중에서는,

버전 관리, 유니티 업그레이드 호환성에 있어 쉐이더 그래프로 제작한 쉐이더는 호환가능성이 높지만, HLSL 코드 기준으로는 많은 문제가 있다고 합니다. 흠.. 일단 그렇게 들었습니다.

 

일단 만들어 봅시다.

 

Project 에서 마우스 우클릭

Create>> Shader >> Universal RP >> Lit Sahder Graph 를 선택합니다.

Lit Sahder Graph

이름은 적당히 원하는 걸로 해주세요.

 

적당히 주어둔 택스쳐 한장을 이용해 보겠습니다.
적용

surface Transparent 로 변경

 

노드의 구성

Time은 택스쳐가 흐르는 효과를 주기 위해 존재

 

Tiling and offset은 텍스처를 넓게 사용하기 위해 존재

1번을 조절해 보면 어떤 의미인지 알 수 있다.

 

Samlpe Texture 2d는 텍스처를 불려 온다. 2번에 위의 파일을 연결시켜준다.

 

그리고 결과물을 Alpha에 넣어준다.

결과물, 아주 불만족

FX적인 요소가 강력하기 자체에서 빛이 나게 설정하며 칼라를 잡아주자,

 

Emission 조절

적당히 원하는 색상, Intensity의 조절

 

그리고 회전이 너무 빠른 느낌도 문제이다. 요것 조 조절하자.

이동량 제어

시간에 0.3을 곱하게 만들어 이동량을 줄였다.

 

먼가 좀 나아진 상태

마지막으로 중앙은 좀 더 투명도가 높고 외각이 표현도가 높았으면 해서

Fresnel을 적용해본다.

 

작업

Fresnel Effect를 추가하고, 이전 Alpha의 결괏값과 곱한다. 그리고 곱한 결과를 Alpha에 넣어준다.

Fresnel x값은 변경해보면서 효과를 확인한다.

 

흐음..

쉐이더 그래프 써볼 만한 물건 같다.

하나하나 만들어 보려 한다.

 

봐주셔서 감사합니다.

댓글