Hi, I have created a very simple shader, and a material based on the shader. Then I have assigned the new material to a sprite. But the material/shader adds a unintended boarder to sprite, like on below picture. The upper object contains my new material, the lower object contains defaul material/shader for sprite (and it is ok) My shader: Code (CSharp): Shader "Hidden/NewImageEffectShader" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { // No culling or depth Cull Off ZWrite Off ZTest Always Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } sampler2D _MainTex; fixed4 frag (v2f i) : SV_Target { fixed4 col = tex2D(_MainTex, i.uv); return col; } ENDCG } } } What I am doing wrong?
My first question is what are you looking to do? That shader is the default image effect shader that gets created in the inspector, which isn’t intended to be used on sprites, or really anything that exists as a renderer component in the scene. You should probably start with a sprite shader. However the main issue is that by default a sprite shader uses alpha blending, and that shader does not. https://docs.unity3d.com/Manual/SL-Blend.html
It is only simple shader to show my problem with diffrent shader that I wrote (dynamic hanging of colors based on texture colors + normal maps). Thanks for your help