28 lines
968 B
Plaintext
28 lines
968 B
Plaintext
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;
|
|
} |