传统shader如何改写成Shader Graph实战

流行URP进入项目后,很多之前好的shader不能怎么办?大部分系统不能升级怎么办?只有一个办法了,就是改写,怎么改写呢?如下:
Shader “Effects/Frozen” {
Properties {
_Color (“Color”, Color) = (1,1,1,1)
_MainTex (“Ice ® Overlay (GB) Texture”, 2D) = “white” {}
_CutOut (“Cutout”, Range (0, 1)) = 0.3
}

SubShader {
Tags {“Queue”=“Transparent” “IgnoreProjector”=“True” “RenderType”=“Transperent”}
LOD 250

CGPROGRAM
#pragma surface surf Lambert alpha

sampler2D _MainTex;
sampler2D _BumpMap;
fixed4 _Color;
float _CutOut;

struct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
o.Alpha = _CutOut > (1-tex.b) ? tex.g : saturate(tex.g - (1 - _CutOut));
o.Albedo = tex.r * _Color*3 + 0.5;

}
ENDCG
}

Fallback “Diffuse”
}

这是一个冰冻消融的shader,如何改呢?
传统shader如何改写成Shader Graph实战_第1张图片
传统shader如何改写成Shader Graph实战_第2张图片
注意属性要用reference不是面板的名字,这样程序里就可以跟之前的一样控制消融了。

你可能感兴趣的:(Shader,游戏开发,unity)