It seems like the built-in reflective shaders don’t take into account ambient lighting. I’m curious if there’s a specific reason this isn’t done by default. Seems like ambient should always be assumed part of the lighting calculation.
I rewrote the Reflective Diffuse shader to this, and this gives the desired effect:
Shader "Reflective/Diffuse With Ambient" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_ReflectColor ("Reflection Color", Color) = (1,1,1,0.5)
_MainTex ("Base (RGB) RefStrength (A)", 2D) = "white" {}
_Cube ("Reflection Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }
}
SubShader {
LOD 200
Tags { "RenderType"="Opaque" }
Pass {
Blend AppSrcAdd AppDstAdd
Tags {"LightMode" = "PixelOrNone"}
Color [_PPLAmbient]
SetTexture [_MainTex] {constantColor [_Color] Combine texture * primary DOUBLE, constant}
}
UsePass "Reflective/VertexLit/BASE"
UsePass "Diffuse/PPL"
}
FallBack "Reflective/VertexLit", 1
}
Edit: Killed the main texture alpha influencing the alpha component of the ambient pass.