Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#import "Common/ShaderLib/Lighting.glsllib"

uniform float m_Shininess;
#ifdef SPECULARMAP
uniform sampler2D m_SpecularMap;
#endif

varying vec4 AmbientSum;
varying vec4 DiffuseSum;
Expand Down Expand Up @@ -615,6 +618,20 @@ void main(){
#endif


//-----------------------
// read shininess or specularColor from specularMap
//-----------------------
vec4 specularColor = vec4(1.0);
float finalShininessValue = m_Shininess;
#ifdef SPECULARMAP
vec4 specularMapColor = texture2D(m_SpecularMap, texCoord);
#ifdef USE_SPECULARMAP_AS_SHININESS
finalShininessValue = specularMapColor.r; //assumes that specularMap is a gray-scale reflectivity/shininess map
#else
specularColor = specularMapColor;
#endif
#endif

//-----------------------
// lighting calculations
//-----------------------
Expand Down Expand Up @@ -646,9 +663,9 @@ void main(){
vec3 viewDir = normalize(-vPos.xyz);
#endif

vec2 light = computeLighting(normal, viewDir, lightDir.xyz, lightDir.w * spotFallOff, m_Shininess);
vec2 light = computeLighting(normal, viewDir, lightDir.xyz, lightDir.w * spotFallOff, finalShininessValue);
gl_FragColor.rgb += DiffuseSum.rgb * lightColor.rgb * diffuseColor.rgb * vec3(light.x) +
SpecularSum.rgb * vec3(light.y);
SpecularSum.rgb * specularColor.rgb * vec3(light.y);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ MaterialDef Terrain Lighting {
DIFFUSEMAP_11_SCALE : DiffuseMap_11_scale

USE_ALPHA : useDiffuseAlpha
USE_SPECULARMAP_AS_SHININESS : useSpecularMapAsShininess
}
}

Expand Down
Loading