28 lines
775 B
GLSL
28 lines
775 B
GLSL
#import "Common/ShaderLib/GLSLCompat.glsllib"
|
|
|
|
uniform vec4 m_Diffuse;
|
|
uniform sampler2D m_BarkMap;
|
|
uniform bool m_HasBarkMap;
|
|
uniform vec3 m_LightDir;
|
|
uniform vec3 m_SunColor;
|
|
uniform vec3 m_AmbientColor;
|
|
uniform float m_Wetness;
|
|
|
|
in vec2 texCoord;
|
|
in vec3 worldNormal;
|
|
|
|
void main() {
|
|
vec3 n = normalize(worldNormal);
|
|
|
|
vec3 baseColor = m_HasBarkMap
|
|
? texture2D(m_BarkMap, texCoord).rgb * m_Diffuse.rgb
|
|
: m_Diffuse.rgb;
|
|
|
|
float diff = max(dot(n, normalize(m_LightDir)), 0.0);
|
|
vec3 light = clamp(m_AmbientColor + m_SunColor * diff, 0.0, 1.0);
|
|
|
|
baseColor *= (1.0 - 0.18 * m_Wetness);
|
|
float shine = pow(diff, 12.0) * m_Wetness * 0.30;
|
|
gl_FragColor = vec4(baseColor * light + vec3(shine), m_Diffuse.a);
|
|
}
|