Shader "chicai/Circle"
{
Properties {
_Value("Value",float) = 0.5
_Controll("Vector",vector) = (0,0,0,0)
}
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex:POSITION;
fixed2 uv:TEXCOORD0;
};
struct v2f
{
float4 position:SV_POSITION;
fixed2 uv:TEXCOORD0;
};
float _Value;
half4 _Controll;
v2f vert(appdata IN)
{
v2f o = (v2f)0; //初始化 有些平台要求
o.position = UnityObjectToClipPos(IN.vertex);
o.uv = IN.uv;
return o;
}
float4 frag(v2f IN):SV_TARGET
{
//length(IN.uv.xy-0.5) 中心向四周变化
//step 中心为1 以外为0 变成纯色圆形
//return step(length(IN.uv.xy-0.5), _Value);
//边缘平滑的中心圆计算
return smoothstep(_Controll.x ,_Controll.y, length(IN.uv.xy - 0.5));
}
ENDCG
}
}
}