- Home /
Clip Shader not working on a few Android devices
I have a shader that is supposed to Clip images. For the materials that need to be clipped, the Clip is set to 1 and for others it is set to 0. When Clip is 0, it works fine on the Galaxy Note4. However it simply doesn't render on the Nexus 5 and OnePlusX. Shader "ClipRect" {
Properties {
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
_Alpha ("Alpha", Range(0,1)) = 1.0
_Clip ("Clip", Int) = 0
_ClipRect ("ClipRect", Vector) = (-5000, 5000, 5000, -5000) // left, top, right, bottom
}
SubShader {
Tags {
"Queue"="Transparent"
"IgnoreProjector"="True"
"DisableBatching"="True"
"ForceNoShadowCasting"="True"
"RenderType"="Transparent"
}
LOD 80
Cull Back
Lighting Off
ZWrite On
ZTest Always
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma enable_d3d11_debug_symbols
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float4 color : COLOR;
float4 texcoord : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
half2 texcoord : TEXCOORD0;
float4 clipcoord : TEXCOORD1;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float _Alpha;
int _Clip;
float4 _ClipRect; // left, top, right, bottom
float4x4 _SpriteToClip;
v2f vert (appdata_t v) {
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
o.color = v.color;
o.clipcoord = mul(_SpriteToClip, v.vertex);
return o;
}
float4 frag (v2f i) : SV_Target {
fixed4 col = tex2D(_MainTex, i.texcoord);
bool bKeep = true;
if(_Clip != 0) {
if(i.clipcoord.x < _ClipRect.x ||
i.clipcoord.x > _ClipRect.z ||
i.clipcoord.y > _ClipRect.y ||
i.clipcoord.y < _ClipRect.w) {
bKeep = false;
}
}
if(bKeep) {
col.rgb *= col.a;
col.a *= _Alpha;
} else {
discard;
}
return col;
}
ENDCG
}
}
}
It seems like the logic is right but I don't know why this would not render on some devices. Very new to shaders. Any help would be appreciated.
Your answer
![](https://koobas.hobune.stream/wayback/20220612090007im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Shader works differently on Android (OpenGL) and Editor (DX11) 0 Answers
How to force the compilation of a shader in Unity? 5 Answers
unity freeze when use normal map at secondary maps 0 Answers
UI CustomShader disappears when Android losing focus 0 Answers
Selectively drawing textures on a mesh to represent damage using a shader 0 Answers