学习到如果需要显示一个圆型的图片,需要自己来写shader,这里是我学习写的第一个shader。
以后会边学习边将写的shader记录下来,也可以不断补充自己学习能力。
Shader "Custom/Circle2" {
Properties{
_Color("Color", Color) = (1,0,0,0)
}
SubShader{
Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True" }
Pass{
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _Color; // low precision type is usually enough for colors
struct fragmentInput {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
fragmentInput vert(appdata_base v)
{
fragmentInput o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = v.texcoord.xy - fixed2(0.5,0.5);
return o;
}
fixed4 frag(fragmentInput i) : SV_Target{
float distance = sqrt(pow(i.uv.x, 2) + pow(i.uv.y,2));
if (distance > 0.5f) {
if (distance < 0.51f) {
return fixed4(_Color.r* distance, _Color.g* distance, _Color.b* distance, 0.6f);
}
else {
return fixed4(0, 0, 0, 0);
}
}
else {
return fixed4(_Color.r * distance, _Color.g * distance, _Color.b * distance,1);
}
}
ENDCG
}
}
}
0 条评论。