24 lines
889 B
Plaintext
24 lines
889 B
Plaintext
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;
|
|
}
|