您的位置:首页 > 移动开发 > Unity3D

Unity3d《Shader篇》绘制圆角图片

2015-06-19 16:24 483 查看
Pass
{
CGPROGRAM
// Upgrade NOTE: excluded shader from OpenGL ES 2.0 because it does not contain a surface program or both vertex and fragment programs.
#pragma exclude_renderers gles

#pragma fragment frag
#include "UnityCG.cginc"

sampler2D _MainTex;
float4 _MainColor;
float _RoundRadius;

struct texCoord
{
float2 inputTexCoord : TEXCOORD0;
};

float4 frag(texCoord input) : COLOR
{
float x = input.inputTexCoord.x;
float y = input.inputTexCoord.y;
float4 col = tex2D(_MainTex,input.inputTexCoord)*_MainColor;

float radius = _RoundRadius;

if(x<radius && y<radius)
{
if(pow(x-radius,2)+pow(y-radius,2)>radius*radius)
{
discard;
}
}
else if(x>1-radius && y>1-radius)
{
if(pow(x-(1-radius),2)+pow(y-(1-radius),2)>radius*radius)
{
discard;
}
}
else if(x<radius && y>1-radius)
{
if(pow(x-radius,2)+pow(y-(1-radius),2)>radius*radius)
{
discard;
}
}

else if(x>1-radius && y<radius)
{
if(pow(x-(1-radius),2)+pow(y-radius,2)>radius*radius)
{
discard;
}
}

return col;
}

ENDCG
}


效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: