Give-LIFE-Cybers/Materials/Chica.gdshader
2025-04-07 20:16:09 -06:00

39 lines
1.1 KiB
Text

shader_type spatial;
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx;
uniform sampler2D diffuse_texture;
uniform sampler2D normal_map: hint_normal;
uniform float normal_scale : hint_range(-16.0, 16.0);
uniform sampler2D mask_map;
uniform sampler2D paint_map;
uniform vec3 paint_color_r : source_color;
uniform vec3 paint_color_g: source_color;
uniform vec3 paint_color_b: source_color;
uniform vec3 paint_color_a: source_color;
void fragment() {
vec2 uv = UV;
vec4 base_color = texture(diffuse_texture, uv);
vec4 paint = texture(paint_map, uv);
vec4 masks = texture(mask_map, uv);
// Mix base with paint colors by channels
vec3 paint_result = base_color.rgb;
paint_result = mix(paint_result, paint_color_r, paint.r);
paint_result = mix(paint_result, paint_color_g, paint.g);
paint_result = mix(paint_result, paint_color_b, paint.b);
paint_result = mix(paint_result, paint_color_a, paint.a);
ALBEDO = paint_result;
EMISSION = paint_result * masks.b;
ROUGHNESS = masks.g;
METALLIC = masks.r;
NORMAL_MAP = texture(normal_map, uv).rgb;
NORMAL_MAP_DEPTH = normal_scale;
}