#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); }