28 lines
1.1 KiB
Plaintext
28 lines
1.1 KiB
Plaintext
shader_type spatial;
|
|
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
|
|
|
|
uniform sampler2D main_texture : source_color;
|
|
// On passe en vec2 pour ajuster X et Y indépendamment
|
|
uniform vec2 main_uv_scale = vec2(1.0, 1.0);
|
|
|
|
uniform sampler2D secondary_texture : source_color;
|
|
uniform vec2 secondary_uv_scale = vec2(1.0, 1.0);
|
|
|
|
uniform sampler2D blend_noise : source_color;
|
|
|
|
void fragment() {
|
|
// Multiplie l'UV par le vector 2D (ex: scale.x sur UV.x, scale.y sur UV.y)
|
|
vec2 main_uv = UV * main_uv_scale;
|
|
vec4 main_albedo = texture(main_texture, main_uv);
|
|
|
|
vec2 secondary_uv = UV * secondary_uv_scale;
|
|
vec4 secondary_albedo = texture(secondary_texture, secondary_uv);
|
|
|
|
vec4 blend_noise_texture = texture(blend_noise, UV);
|
|
|
|
vec3 final_albedo = mix(main_albedo.rgb, secondary_albedo.rgb, blend_noise_texture.rgb);
|
|
|
|
// Note : Votre conversion RGB -> HSV -> RGB était neutre (faisait un aller-retour sans modificateur).
|
|
// On peut assigner directement pour simplifier et optimiser les performances :
|
|
ALBEDO = final_albedo;
|
|
} |