- Home /
Custom shader works in Unity but broken on ios/android
I am using a shader (that uses transparency) that samples from a texture radially to produce concentric circles on a quad. In the Unity preview, and exporting to standalone mac/windows apps, a quad that is coloured with the shader looks fine. However, on android or iphone devices, the shader is a uniform semi-transparent washed-out white colour. Any clues as to how to get it working would be much appreciated. The shader script is the following
Shader "Custom/RadialRings" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Transparent" "Queue"="Transparent" "IgnoreProjector"="True" "ForceNoShadowCasting"="True"}
LOD 200
Lighting Off
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vs
#pragma fragment fs
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_ST;
struct v2f {
float4 position : SV_POSITION;
float2 uv : TEXCOORD0;
};
v2f vs(appdata_base v) {
v2f o;
o.position = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = v.texcoord - 0.5f;
return o;
}
fixed4 fs(v2f i) : COLOR {
float bloatFactor = 2.5;
//float radialFunction = bloat/(log(1-length(i.uv))+bloat);
//float radialFunction = -3f*(pow(length(i.uv),2.3));
//float radialFunction = -10f * pow(10,bloatFactor*1.2f*length(i.uv)-bloatFactor);
float radialFunction = -length(i.uv);//-10f * pow(10,bloatFactor*1.2f*length(i.uv)-bloatFactor);
float2 radialLookup = float2(radialFunction, 0.0f);
return tex2D(_MainTex, TRANSFORM_TEX(radialLookup, _MainTex));
}
ENDCG
}
}
FallBack "Diffuse"
}
Comment
Your answer
Follow this Question
Related Questions
Why is shader behavior different between Android and iOS? 1 Answer
Radial Blur for Android/iOS 0 Answers
My shader works on desktop, but black screen on Android. 0 Answers
Mobile problems with reflective/vertexlit shader. 0 Answers
Wand Magic Tool 0 Answers