|
@@ -84,6 +84,10 @@ varying vec3 wPosition;
|
|
|
#ifdef LIGHTMAP
|
|
|
uniform sampler2D m_LightMap;
|
|
|
#endif
|
|
|
+
|
|
|
+#ifdef AO_STRENGTH
|
|
|
+ uniform float m_AoStrength;
|
|
|
+#endif
|
|
|
|
|
|
#if defined(NORMALMAP) || defined(PARALLAXMAP)
|
|
|
uniform sampler2D m_NormalMap;
|
|
@@ -237,6 +241,12 @@ void main(){
|
|
|
ao = aoRoughnessMetallicValue.rrr;
|
|
|
#endif
|
|
|
|
|
|
+ #ifdef AO_STRENGTH
|
|
|
+ ao = 1.0 + m_AoStrength * (ao - 1.0);
|
|
|
+ // sanity check
|
|
|
+ ao = clamp(ao, 0.0, 1.0);
|
|
|
+ #endif
|
|
|
+
|
|
|
float ndotv = max( dot( normal, viewDir ),0.0);
|
|
|
for( int i = 0;i < NB_LIGHTS; i+=3){
|
|
|
vec4 lightColor = g_LightData[i];
|