Sid Chou
Sid Chou

Reputation: 131

GLSL vec2 use as array in float?

im trying to make something on shader toy: https://www.shadertoy.com/view/wsffDN
(original ref: https://www.shadertoy.com/view/3dtSD7) bufferA line 18

i want to know why uv was declared as uv

vec2 uv = (fragCoord.xy - iResolution.xy*.5) / iResolution.y;

, but this line

sceneColor = vec3((uv[0] + stagger) / initpack + 0.05*0., -0, 0.05);

uv[0] is used as a float

how does this work, and what uv's value become?

Upvotes: 2

Views: 1520

Answers (1)

Nicol Bolas
Nicol Bolas

Reputation: 473407

It is perfectly legal to access the components of any vec type (or mat type for that matter) with array syntax. You can even use a non-constant array index (well, depending on the GLSL version, but 1.30+ versions allow it). uv[0] does exactly what it looks like: access the first element of the vector.

Upvotes: 3

Related Questions