I've updated unity from 5.3 to 5.4 and the Projection/multiply shader seems to have broke in some way? The projection is very saturated and also see-through? i.e it seems to ignore to "Ignore Layers" setting. If I look at the shader, it has correctly updated _Projector to unity_Projector. Any Ideas were to begin with this? ========= Edit This is the shader, its the standard Projector multiply. It seems to be something with the Blend pass parameter? I tried all Blend options, but it doesn't seem to work correctly. If Blend is set to of, the projection looks ok, ie not saturated, but I have no ignoring of other layers, so that wont work. Code (CSharp): Shader "Projector/Multiply" { Properties { _ShadowTex ("Cookie", 2D) = "gray" {} } Subshader { Tags {"Queue"="Transparent"} Pass { ZWrite Off ColorMask RGB Blend DstColor Zero Offset -1, -1 CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct v2f { float4 uvShadow : TEXCOORD0; float4 pos : SV_POSITION; }; float4x4 unity_Projector; float4x4 unity_ProjectorClip; v2f vert (float4 vertex : POSITION) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, vertex); o.uvShadow = mul (unity_Projector, vertex); return o; } sampler2D _ShadowTex; fixed4 frag (v2f i) : SV_Target { fixed4 res = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow)); res.a = 1.0-res.a; return res; } ENDCG } } }
No, sorry, that didn't work. I did look at the options for the Blend previously and I did try them all, although I had my hopes for the one you suggested. With a fresh Unity 5.4 project, it seems to work, so there must be something else broken somewhere? It is totally ignoring "ignore layers" on projections and I have no clue how to kickstart it again? I did try to create new layers and set them to ignore. But it doesn't work.. Thanks for trying.