shader_type spatial; render_mode specular_disabled; // Opaque vertex-painted models: alpha is a clothing mask, never transparency. uniform vec4 coat_color : source_color = vec4(1.0); uniform float profession_tint : hint_range(0.0, 1.0) = 0.0; uniform vec3 shadow_color : source_color = vec3(0.55, 0.64, 0.70); uniform float band_softness : hint_range(0.005, 0.2) = 0.045; void fragment() { ALBEDO = mix(COLOR.rgb, COLOR.rgb * coat_color.rgb * 1.6, COLOR.a * profession_tint); ROUGHNESS = 1.0; SPECULAR = 0.0; } void light() { float diffuse = dot(NORMAL, LIGHT); float mid = smoothstep(-0.15 - band_softness, -0.15 + band_softness, diffuse); float sun = smoothstep(0.50 - band_softness, 0.50 + band_softness, diffuse); vec3 tone = mix(shadow_color * 0.36, vec3(0.70), mid); tone = mix(tone, vec3(1.0, 0.97, 0.87), sun); DIFFUSE_LIGHT += tone * ATTENUATION * LIGHT_COLOR / PI; }