본문 바로가기

Unity/Shader

Amplify Shader: Portal, 포탈 만들기

Amplify Shader란?

예전 버전의 셰이더로 노드 방식이 언리얼과 비슷하다

Amplify Shader를 사용하기 위한 프로젝트 환경 및 준비물

  • 3D URP (URP 아니어도 사용 가능)
  • 포탈 텍스쳐와 일렁이는 효과를 줄 노이즈 텍스쳐 1~2장
  • 나는 포탈 텍스쳐 3장과 일렁이는 노이즈 텍스쳐 2장을 이용했다

효과를 극적으로 확인하고 싶다면 Game 화면을 어두운색으로 변경한다

  • Window > Rendering > Lighting >Environment > Skybox Material > None
  • Ambien/t Color > 어두운색으로 변경
  • MainCamera > Color > 어두운색으로 변경

셰이더 생성

  • Create > AmplifyShader > Surface

 

최적화를 위한 셰이더 기본 설정

Output Node > General

  • Light Model > Unlit
  • Blend Mode > Custom
    • Render Type > Transparent
    • Render Queue > Transparent
    • Blend RGB > Additive
  • Depth > ZWrite Mode > Off
  • 파일명과 Shader Name 맞춰주기

기본 개념 : UV 좌표

텍스쳐 이미지의 상하좌우를 좌표로 인식하는 것

노드 설정

텍스쳐 좌표를 기준으로 회전시키기

  • 텍스쳐의 (0.5, 0.5) 좌표를 앵커로 두고 회전시킨다

Multifly

  • 두 텍스쳐의 RGB값의 교집합 부분을 가져온다
  • 즉 각 텍스쳐의 RGB값이 곱해진 결과물을 가져옴
  • 검정색(0,0,0)인 부분끼리 곱한다면 (0,0,0) * (0,0,0) 이므로 그대로 검정색이 출력된다

 

 

결과

 

 

셰이더가 적용된 Material 만들기

  • Shader 파일 우클릭 > Create > Material
  • Material Inspector에 텍스쳐 파일 Select 로 넣어주기

포탈에 물결효과 추가하기

  • Panner : 흐르는 효과
  • Time 값을 올려줄수록 속도가 빨라진다