shader_type spatial; render_mode blend_mix, depth_draw_opaque, cull_disabled; // Colore del filo (nero o grigio scuro) uniform vec4 albedo_color : source_color = vec4(0.1, 0.1, 0.1, 1.0); // Parametri controllati dal tuo script uniform float forza_vento = 1.0; uniform float velocita_vento = 2.0; void vertex() { // COLOR.r è la nostra "pittura". È 0 dove c'è il palo (quindi non si muove) // ed è 1.0 al centro della pancia del filo. float capacita_movimento = COLOR.r; // Creiamo un'onda fluida usando il tempo e la posizione nel mondo // così ogni filo oscilla in modo leggermente diverso dall'altro float onda_vento = sin(TIME * velocita_vento + NODE_POSITION_WORLD.x * 0.5) * forza_vento; // Spingiamo il vertice sugli assi X e Z. VERTEX.x += onda_vento * 0.1 * capacita_movimento; VERTEX.z += onda_vento * 0.05 * capacita_movimento; } void fragment() { ALBEDO = albedo_color.rgb; ROUGHNESS = 0.9; }