Browse Source

Merge pull request #1027 from bpay/ambient-normals

Allow normals on shadowed surfaces
Luis Anton Rebollo 10 years ago
parent
commit
84d072f25c

+ 1 - 0
Templates/Empty/game/shaders/common/lighting.hlsl

@@ -36,6 +36,7 @@ uniform float4 inLightColor[4];
 #endif
 
 uniform float4 ambient;
+#define ambientCameraFactor 0.3
 uniform float specularPower;
 uniform float4 specularColor;
 

+ 1 - 1
Templates/Empty/game/shaders/common/lighting/advanced/vectorLightP.hlsl

@@ -202,7 +202,7 @@ float4 main( FarFrustumQuadConnectP IN,
                                     
    float Sat_NL_Att = saturate( dotNL * shadowed ) * lightBrightness;
    float3 lightColorOut = lightMapParams.rgb * lightColor.rgb;
-   float4 addToResult = lightAmbient;
+   float4 addToResult = (lightAmbient * (1 - ambientCameraFactor)) + ( lightAmbient * ambientCameraFactor * saturate(dot(normalize(-IN.vsEyeRay), normal)) );
 
    // TODO: This needs to be removed when lightmapping is disabled
    // as its extra work per-pixel on dynamic lit scenes.

+ 1 - 0
Templates/Full/game/shaders/common/lighting.hlsl

@@ -36,6 +36,7 @@ uniform float4 inLightColor[4];
 #endif
 
 uniform float4 ambient;
+#define ambientCameraFactor 0.3
 uniform float specularPower;
 uniform float4 specularColor;
 

+ 1 - 1
Templates/Full/game/shaders/common/lighting/advanced/vectorLightP.hlsl

@@ -202,7 +202,7 @@ float4 main( FarFrustumQuadConnectP IN,
                                     
    float Sat_NL_Att = saturate( dotNL * shadowed ) * lightBrightness;
    float3 lightColorOut = lightMapParams.rgb * lightColor.rgb;
-   float4 addToResult = lightAmbient;
+   float4 addToResult = (lightAmbient * (1 - ambientCameraFactor)) + ( lightAmbient * ambientCameraFactor * saturate(dot(normalize(-IN.vsEyeRay), normal)) );
 
    // TODO: This needs to be removed when lightmapping is disabled
    // as its extra work per-pixel on dynamic lit scenes.