Code (CSharp): inline half4 LightingStandardSpecular (SurfaceOutputStandardSpecular s, half3 viewDir, UnityGI gi) { s.Normal = normalize(s.Normal); // energy conservation half oneMinusReflectivity=0; //s.Albedo = EnergyConservationBetweenDiffuseAndSpecular (s.Albedo, s.Specular, /*out*/ oneMinusReflectivity); // shader relies on pre-multiply alpha-blend (_SrcBlend = One, _DstBlend = OneMinusSrcAlpha) // this is necessary to handle transparency in physically correct way - only diffuse component gets affected by alpha half outputAlpha; //s.Albedo = PreMultiplyAlpha (s.Albedo, s.Alpha, 1, /*out*/ outputAlpha); half4 c = UNITY_BRDF_PBS (s.Albedo, s.Specular, oneMinusReflectivity, s.Smoothness, s.Normal, viewDir, gi.light, gi.indirect); //c.rgb += UNITY_BRDF_GI (s.Albedo, s.Specular, oneMinusReflectivity, s.Smoothness, s.Normal, viewDir, s.Occlusion, gi); // c.a = outputAlpha; //c .rgb=s.Specular; return c; } inline void LightingStandardSpecular_GI ( SurfaceOutputStandardSpecular s, UnityGIInput data, inout UnityGI gi) { UNITY_GI(gi, s, data); } i not change the unity_gi,but the shadow go through two sides,how to fixed this?