간단한 기능인데 : on, off 기능으로 에디터에서 default 값을 어떻게 선택하느냐에 따라 on, off 중 하나만 out 으로 내보낸다
여기서 맨 밑의 Keyword는 약간 다른 종류인데, 이 Keyword 하위에 있는 요소들(Boolean, Enum)은 셰이더의 정적 분기를 위한 노드라고 한다.
경우에 따라서 출력되는 게 다른 상황에서, 셰이더의 Variant를 만들어내기 위해서 나온 기능이라고 하는데,
최적화에는 별로 좋지 않다고 하고..
나뉘는 경우의 수마다 다른 셰이더로 쳐 진다고 한다.
직접 사용해보자. 우선은 Keyword 아래의 Boolean부터 꺼낸다.
이 Boolean은 인스펙터 창에서 체크박스 형태로 나타나게 되는데,
그 체크박스의 체크 여부에 따라서 최종 결과물이 달라지는 형태이다.
즉, 체크박스에 체크가 되어있다면 위에서 On의 결과물이 Out으로 나가게 될 것이고,
반대로 체크가 되어있지 않다면 Off의 결과물이 Out으로 나가게 될 것이다.
간단하게 예제를 만들어보자.
아까 위에서 만들었던 곱하기의 결과물이 On으로, 그리고 곱하기를 하지 않은 Sample Texture 2D 상태가 Off로 들어오도록 노드를 연결해준다.
그런 다음 Boolean을 Base Color에 연결해준다.
그러면 이런 모습이 되고,
직접 씬에서 본다면
이렇게 Boolean의 On/Off 여부에 따라 결과물이 달라지는 것을 볼 수 있다.
Boolean Keywords
Boolean Keywords are either on or off. This results in two shader variants. Shader Graph uses the value in the Reference name field for the on state, and automatically defines the off state as an underscore ( _ ).
To expose a Boolean Keyword in the Material Inspector, its Reference name must include the _ON suffix. For example, BOOLEAN_A506A032_ON.
ref : https://docs.unity3d.com/Packages/com.unity.shadergraph@8.1/manual/Keywords.html
'게임엔진(GameEngine) > Unity3D' 카테고리의 다른 글
C#은 stackless 코루틴 (0) | 2022.12.04 |
---|---|
Unity vertex / fragment Shader01 -빨강 쉐이더 (0) | 2022.12.02 |
Unity Audio (0) | 2022.11.23 |
UnityEngine.Random (0) | 2022.11.16 |
UI 버튼 바인딩 (1) | 2022.11.06 |