【Unity】HDRP-世界空间UI着色器Unlit Shader
有机紫菜
编辑于 2023年10月13日 00:28

经常用HDRP的同学肯定注意到了,UI元素在World Space模式下会,出现接收场景光照与后处理,还有就是,颜色由于收到光照影响,变的暗淡的情况--如下图

接收了场景光照等

想要修复这个问题,可以用ShaderGraph自定义一下着色器,来解决这种情况--效果如下图

颜色正常了,并且剔除了后处理效果

下面是,具体的shader制作过程.和注意点

  1. (Create -> Shader -> HDRP -> Unlit Graph)使用Unlit Graph--来制作UI着色器.

  2. UI的着色器部分--使用了Vertex Color节点,

  3. 必须用(_MainTex)这个名字作为Texture的名称,这样Image才能获取到贴图.

  4. 最好开启双面显示,不然转到后面就看不到图片了.

  5. 材质模式选择透明

  6. Rendering Pass--选择After Post-process---后处理之后.

  7. 其他的节点链接如下图

Text的着色器基本和上面的一样不过使用了ColorMask节点

  1. ColorMask节点的颜色要弄成白色.默认是黑的

  2. _Color属性,必须是暴露的.exposed.这可能是shader graph的一点小特点.

都很简单

文章参考了gamedeveloper站点里的,Fixing World-Space UI with Unity’s HDRP文章.

HDRP-World Space UI shader Unlit shader

懒得连连看的可以直接下面渠道获取