Hi forum,
So I had this little alpha mask shader that I liked very much to display a procedural map in-game. Here is the view from the editor.
The problem is that, once the game is built, the exact same scene launched from the executable looks like this, as if the whole map image was disabled :
I don’t know what was lost upon build, and have no idea how to fix it… The shader was force-included in the graphic settings just in case, but to no avail.
Just in case here is the script of the shader, it works perfectly fine from the editor.
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// Unlit alpha-blended shader.
// - no lighting
// - no lightmap support
// - no per-material color
Shader "Custom/AlphaMask (Ben Silvis perso)" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_AlphaTex ("Alpha mask (R)", 2D) = "white" {}
_Ratio("Ratio", Range(0,1)) = 1
}
SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 100
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
};
sampler2D _MainTex;
sampler2D _AlphaTex;
float4 _MainTex_ST;
float _Ratio;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.texcoord);
fixed4 col2 = tex2D(_AlphaTex, i.texcoord);
return fixed4(col.r, col.g, col.b, col.a*(1-_Ratio)+ col.a*col2.a*_Ratio);
}
ENDCG
}
}
}
//https://bensilvis.com/unity3d-unlit-alpha-mask-shader/
