- Home /
Shader with lightmap works fine in editor but failed on Android devices
Hi, I've write a simple shader with lightmap which works fine in editor, but when published to Android devices, no lightmap effect shows at all. This only happens in Unity5.0.0f4 and Unity5.0.1f1, however when tested with Unity4.6.3f1, everything works fine.
Here is the shade code:
// Upgrade NOTE: commented out 'float4 unity_LightmapST', a built-in variable
// Upgrade NOTE: commented out 'sampler2D unity_Lightmap', a built-in variable
// Upgrade NOTE: replaced tex2D unity_Lightmap with UNITY_SAMPLE_TEX2D
// 普通自发光材质
Shader "Custom/x1945/normal/unlit" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
Lighting Off
Fog { Mode Linear}
Pass
{
CGPROGRAM
#include "UnityCG.cginc"
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fog
#pragma multi_compile LIGHTMAP_ON LIGHTMAP_OFF
uniform sampler2D _MainTex;
uniform float4 _MainTex_ST;
// sampler2D unity_Lightmap;
// float4 unity_LightmapST;
struct v2f
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
#ifdef LIGHTMAP_ON
float2 uv1 : TEXCOORD1;
#endif
UNITY_FOG_COORDS (2)
};
struct appdata_input
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
#ifdef LIGHTMAP_ON
float2 texcoord1 : TEXCOORD1;
#endif
};
v2f vert (appdata_input input)
{
v2f o;
o.vertex = mul (UNITY_MATRIX_MVP, input.vertex);
o.uv = TRANSFORM_TEX (input.texcoord, _MainTex);
#ifndef LIGHTMAP_OFF
o.uv1 = input.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
#endif
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : COLOR
{
fixed4 texColor = tex2D (_MainTex, i.uv);
#ifndef LIGHTMAP_OFF
texColor.rgb *= DecodeLightmap (UNITY_SAMPLE_TEX2D (unity_Lightmap, i.uv1));
#endif
UNITY_APPLY_FOG (i.fogCoord, texColor);
return texColor;
}
ENDCG
}
}
FallBack Off
}
Is there anything wrong with the shader?
Hi there,
I'm currently facing the exact same problem with a similar shader deployed on Android. Did you manage to find a solution to this by any chance ?
The unity doc for custom shader using lightmaps is inexistant, so I'm having hard time to know if those unity_Lightmap built in variable are not being used properly.
Thanks for the help.
Your answer

Follow this Question
Related Questions
Can I blend Lightmap opacity? 1 Answer
Have Ambient Light Setting Affect Lightmapped objects? 0 Answers
How to export baked lightmap for use with Unlit Texture? 0 Answers
Make game start looking nice 1 Answer
Lightmap options in a custom shader 0 Answers