This shader works in the editor but in android it gets all pink. Is there anything I can do to make it work on android?
Shader "yy/dust" {
Properties {
_MainTex ("MainTex", 2D) = "white" {}
[MaterialToggle] _pickupCh ("pickupCh", Float ) = 0
_emissive ("emissive", Float ) = 2
_texDensity ("texDensity", Float ) = 2
[MaterialToggle] _useR ("useR", Float ) = 0
[MaterialToggle] _useG ("useG", Float ) = 0
[MaterialToggle] _useB ("useB", Float ) = 0
_alphaDensity ("alphaDensity", Float ) = 1
_alphaPower ("alphaPower", Float ) = 1
_vertColorDensity ("vertColorDensity", Float ) = 1
_color ("color", Color) = (1,1,1,1)
_uvDynCorrect ("uvDynCorrect", Float ) = 1
[MaterialToggle] _haveAlpha ("haveAlpha", Float ) = 0
_depthBlend ("depthBlend", Float ) = 1
[MaterialToggle] _useDepthBlend ("useDepthBlend", Float ) = 1
}
SubShader {
Tags {
"IgnoreProjector"="True"
"Queue"="Transparent"
"RenderType"="Transparent"
}
Pass {
Name "FORWARD"
Tags {
"LightMode"="ForwardBase"
}
Blend One One
ZWrite Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#define UNITY_PASS_FORWARDBASE
#include "UnityCG.cginc"
#pragma multi_compile_fwdbase
#pragma multi_compile_fog
#pragma exclude_renderers gles3 metal d3d11_9x xbox360 xboxone ps3 ps4 psp2
#pragma target 3.0
uniform sampler2D _CameraDepthTexture;
uniform sampler2D _MainTex; uniform float4 _MainTex_ST;
uniform fixed _pickupCh;
uniform float _emissive;
uniform float _texDensity;
uniform fixed _useR;
uniform fixed _useG;
uniform fixed _useB;
uniform float _alphaDensity;
uniform float _alphaPower;
uniform float _vertColorDensity;
uniform float4 _color;
uniform float _uvDynCorrect;
uniform fixed _haveAlpha;
uniform float _depthBlend;
uniform fixed _useDepthBlend;
struct VertexInput {
float4 vertex : POSITION;
float2 texcoord0 : TEXCOORD0;
float4 vertexColor : COLOR;
};
struct VertexOutput {
float4 pos : SV_POSITION;
float2 uv0 : TEXCOORD0;
float4 vertexColor : COLOR;
float4 projPos : TEXCOORD1;
UNITY_FOG_COORDS(2)
};
VertexOutput vert (VertexInput v) {
VertexOutput o = (VertexOutput)0;
o.uv0 = v.texcoord0;
o.vertexColor = v.vertexColor;
o.pos = UnityObjectToClipPos(v.vertex );
UNITY_TRANSFER_FOG(o,o.pos);
o.projPos = ComputeScreenPos (o.pos);
COMPUTE_EYEDEPTH(o.projPos.z);
return o;
}
float4 frag(VertexOutput i) : COLOR {
float sceneZ = max(0,LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)))) - _ProjectionParams.g);
float partZ = max(0,i.projPos.z - _ProjectionParams.g);
////// Lighting:
////// Emissive:
float node_1439 = (i.vertexColor.r*_uvDynCorrect);
float node_5474_if_leA = step(node_1439,32.0);
float node_5474_if_leB = step(32.0,node_1439);
float node_335_if_leA = step(node_1439,16.0);
float node_335_if_leB = step(16.0,node_1439);
float node_9756 = 32.0;
float node_6486_if_leA = step(node_1439,node_9756);
float node_6486_if_leB = step(node_9756,node_1439);
float node_9176 = 16.0;
float node_4634_if_leA = step(node_1439,node_9176);
float node_4634_if_leB = step(node_9176,node_1439);
float node_5287 = (node_1439-node_9176);
float node_8482 = (node_1439-node_9756);
float node_6486 = lerp((node_6486_if_leA*lerp((node_4634_if_leA*node_1439)+(node_4634_if_leB*node_5287),node_5287,node_4634_if_leA*node_4634_if_leB))+(node_6486_if_leB*node_8482),node_8482,node_6486_if_leA*node_6486_if_leB);
float node_9617_if_leA = step(node_6486,12.0);
float node_9617_if_leB = step(12.0,node_6486);
float node_8029_if_leA = step(node_6486,8.0);
float node_8029_if_leB = step(8.0,node_6486);
float node_5532_if_leA = step(node_6486,4.0);
float node_5532_if_leB = step(4.0,node_6486);
float node_2748 = 2.0;
float node_5742 = 1.0;
float node_1090 = 0.0;
float2 node_2677 = ((i.uv0*0.25)+(floor(float2(node_1439,lerp((node_9617_if_leA*lerp((node_8029_if_leA*lerp((node_5532_if_leA*3.0)+(node_5532_if_leB*node_2748),node_2748,node_5532_if_leA*node_5532_if_leB))+(node_8029_if_leB*node_5742),node_5742,node_8029_if_leA*node_8029_if_leB))+(node_9617_if_leB*node_1090),node_1090,node_9617_if_leA*node_9617_if_leB)))/4.0));
float4 _MainTex_var = tex2D(_MainTex,TRANSFORM_TEX(node_2677, _MainTex));
float3 node_5708 = pow(_MainTex_var.rgb,_texDensity).rgb;
float node_516 = 0.0;
float node_5474 = lerp((node_5474_if_leA*lerp((node_335_if_leA*lerp( node_5708.r, ((lerp( node_516, node_5708.r, _useR )+lerp( node_516, node_5708.g, _useG ))+lerp( node_516, node_5708.b, _useB )), _pickupCh ))+(node_335_if_leB*node_5708.g),node_5708.g,node_335_if_leA*node_335_if_leB))+(node_5474_if_leB*node_5708.b),node_5708.b,node_5474_if_leA*node_5474_if_leB);
float3 emissive = (node_5474*_color.rgb*_emissive*(pow(i.vertexColor.a,_vertColorDensity)*(pow(lerp( node_5474, _MainTex_var.a, _haveAlpha ),_alphaDensity)*_alphaPower)*lerp( 1.0, saturate((sceneZ-partZ)/_depthBlend), _useDepthBlend )));
float3 finalColor = emissive;
fixed4 finalRGBA = fixed4(finalColor,1);
UNITY_APPLY_FOG_COLOR(i.fogCoord, finalRGBA, fixed4(0,0,0,1));
return finalRGBA;
}
ENDCG
}
}
CustomEditor "ShaderForgeMaterialInspector"
}