05
10

 

#. 쉐이더 그래프로 만든 UI용 쉐이더

UI에 들어가는 하이라이트 등을 표현하기 위해 

Shader Graph로 몇 가지 쉐이더를 만들어 사용하고 있었는데,

 

이런식으로 하이라이트를 주는 용도의 쉐이더

 

#. 갑자기 알파가 사라졌다

Unity 2020.3 버전까지 잘 지원하다가 Unity 2021 버전부터 UI에서 Shader Graph로 만든 쉐이더를 사용하면 까만 배경이 같이 나와서 전혀 사용할 수 없는 문제가 발생.

(URP 버전이 올라가면서 내부적으로 구조를 많이 바꾼 듯)

 

까만색 배경이 깔려서 알파가 막힌 느낌

 

#. 해결해보려 했지만..

평소처럼 버전 올라가면서 부분을 숙지하고 처리해주면 되겠지 하고 찾아보니,

역시 포럼 글이 올라와있었다. 

https://forum.unity.com/threads/shader-graph-ui-image-shader-does-not-work.1202461/#post-7683259

 

Bug - Shader Graph UI Image Shader does not work

Unity 2021.2.3f1 Shader Graph 12.1.1 This is a simple Shader Graph shader. Screenshot1. Universal - Material - Sprite Unlit: Alpha is wrong. [ATTACH]...

forum.unity.com

 

많은 사람들의 항의와 함께 이슈 트래커도 등록되었는데, 처리결과

 

https://issuetracker.unity3d.com/issues/shader-graph-shaders-from-shader-graph-dont-work-on-ui-with-canvas-render-mode-set-to-overlay

 

Unity IssueTracker - [Shader Graph] Shaders from Shader Graph don't work on UI with Canvas "Render Mode" set to "Overlay"

Reproduction steps: 1. Open "1193291" project 2. Notice that the Image has Perlin Noise 3. Select the "Canvas" Game Object -> "Ca...

issuetracker.unity3d.com

' By Design (의도된 동작) '

 

 

https://issuetracker.unity3d.com/issues/ui-image-with-shader-graph-material-doesnt-work-when-canvas-render-mode-is-set-to-overlay

 

Unity IssueTracker - UI Image with Shader Graph material doesn't work when Canvas "Render Mode" is set to "Overlay"

Reproduction steps: 1. Open the attached project "1376328.zip" 2. Open Assets > Scenes > SampleScene 3. Observe Game view and ...

issuetracker.unity3d.com

' Won't Fix (고치지 않을 예정) '

 

 

? 이게 무슨 일인가 싶어서 포럼 글을 더 찾아서 읽어보니

공식적인 답변을 찾을 수 있었다.

 

쉐이더 그래프는 UI Image에 대한 공식적인 지원을 한 적이 없습니다.

 

지금까지는 공식이 아닌데 어쩌다 보니 돌아가고 있었다는 말인 듯.

 

 

#. Shader graph 로드맵

그럼 공식 지원을 나중에 하는 건가? 싶어서 찾아보니 유니티 로드맵에는 'Under Consideration (고려중)'으로 분류되어있다. 아마 고친다 해도 연 단위로 걸리지 않을까 싶다.

https://portal.productboard.com/unity/1-unity-platform-rendering-visual-effects/tabs/7-shader-graph

 

https://portal.productboard.com/unity/1-unity-platform-rendering-visual-effects/tabs/7-shader-graph

 

portal.productboard.com

 

#. 임시방편

우선 찾아낸 임시방편으로는 캔버스 렌더 모드를 'Screen Overlay'가 아니라 'Space Space'로 하면 동작되긴 한다.

그러나 최적 화적인 이유도 있고, 동작이 달라지는 경우도 있어서 기존 프로젝트를 올리는 경우에는 그냥 두는 편이 나을듯하다.

 

결국 앰플라이 쉐이더 쪽으로 다시 파 봐야 할 것 같은 분위기. 

역시 유니티에서 만든 새로운 기능은 너무 불안정하다.. 

 

 

 

COMMENT