Study/Unity learn

Unity learn - Make a flag move with shadergraph

hiheybye 2024. 5. 3. 23:30

Work On

https://learn.unity.com/project/make-a-flag-move-with-shadergraph

 

Make a Flag Wave with Shadergraph - Unity Learn

In this project, you will learn how to create a shader to make a flag wave utilizing the Time, Sine and UV nodes to give the flag a wave effect.

learn.unity.com

 

 

Introduction to ShaderGraph

  • 버전이 달라서 맞는 결과인지는 모르겠으나, alpha채널이 존재하지 않아, RGB 채널을 더하여 사용하였다. 물론 여기에서는 한 채널만 넣어도 될 것 같으나, 그걸 의도하지는 않았으리라 생각한다. 

  • 저번에는 mutiple를 사용하여 두 개의 텍스처(?) 를 합쳤지만, blend를 통해서도 가능하다. 특히 블랜드의 경우 Mode를 통해 특수한 혼합을 할 수 있다.

 

chatgpt에 의하면, mutiple 노드는 색상 및 밝기을 변화시키거나 마스크를 생성하는 게에 사용할 수 있고, Blend 노드 이번사용과 같이 alpha 채널(다르게 활용가능 할테지만, 투명도 채널) 블렌딩에 사용한다

 

 

 

 

 

 

 

 

shaderGraph: Vertex Position

  •  space를 world로 하고 이를 Vertex모드의 position에 연결한다.
  • 이에 대해 학습 컨텐츠에서 카메라가 선회할때, 설명하는 객체가 사라졌다가 카메라를 향하도록 다시 나타난다는 게 이해는 않간다.

  • space 노드의 역할은 좌표값을 반환하는 것이다. space의 select box에는 object, view, world, tanget, absolute world 가 있다.
  • object는 오브젝트의 좌표계(로컬 좌표계) 에서의 좌표를 반환한다. 세이더가 연결된 개체에 대해 유용하다.
  • view는 viewer의 좌표계에서 좌표를 반환한다. viewer가 직면할 때의 효과에 유용하다.
  • World 씬의 좌표계(절대 좌표계), 전체 장면의 위치데이터가 필요할 때 유용하다.
  • tangent ?
  • absolute world, 스크립터블 Render pipeline에 따라 world(기본 좌표계)가 달라서 별도로 있는 듯 하다.

 

 

  • 해당 쉐이더는 절대좌표계만큼, 텍스쳐가 오브젝트에 이동해 있다. 즉 절대좌표계 0,0,0에서 오브젝트가 위치한 만큼, 오브젝트에서 텍스쳐가 이동되어 나타난다.

 

Shader Graph : Time node, Gradient

 

  • time node와 gradient 노드

 

 

 

 

 

Shader Graph : add ,split, sine,combine, one minus node

  • 일단 그냥 따라 만들었는데, 간단히 분석하자면, posion 노드가 반환하는게, 오브젝트를 표현하는 정점의 좌표이다. 이를 split node로 분해하고, z 좌표를 변수로 sine 함수에 넣고 나온 값을 y 좌표 값으로 사용한 것
  • 이때 그려지는 깃발은 정의역이 z인 sine 그래프를 그린다. 이때 모든 부분이 움직이는데, 움직이지 않는 축을 만들기 위해, 일종의 gradient(Uv에서 가져온)를 사용해, sine에 영향받지 않는 선을 만들어 낸다.

 

  • 여기에 시간에 따른 변화를 주기위해, time node의 sine를 사용하면 펄럭~

 

Shader Graph : Vertex Displacement

  • position과 보르노이?(결과가 왜이럼)를 이용한 간단한 텍스쳐 효과

 

 

  • 여기에 world 좌표계를 사용하면, 물체가 이동하면서 변형되는  효과를 줄 수 있다.

'Study > Unity learn' 카테고리의 다른 글

Unity / Basic Design Patterns  (0) 2024.05.23
Unity learn - Creative Core  (0) 2024.04.29
Unity learn - Unity Junior Programmer  (0) 2024.04.09
Unity learn - Unity Essentials  (0) 2024.04.04
Unity learn - FPS Microgame Customize  (0) 2024.04.03