vec4 FragmentShader(VertexOut vertex, Field <vec4> F, PeriodicField <vec4> Noise) { vec4 f = F[Here]; vec4 n = Noise[Here]; return(Noise[Noise[f.xy + n.xy].xy + f.zw]); }
vec4 FragmentShader(VertexOut vertex, Field <vec4> PreviousLevel, PeriodicField <vec4> Noise) { vec4 TL = PreviousLevel[Here], TR = PreviousLevel[RightOne], BL = PreviousLevel[UpOne], BR = PreviousLevel[UpRight]; // Aggregate 4 cells into the containing supercell return(Noise[Noise[Noise[Noise[TL.xy].xy + TR.xy].xy + BL.xy].xy + BR.xy]); }
vec4 FragmentShader(VertexOut vertex, Field <data> Data, PeriodicField <vec4> Noise) { data d = Data[Here]; if (selected(d)) { set_select_state(ref d, SelectState.Selected_Show); } else { set_select_state(ref d, SelectState.NotSelected_NoShow); } //d.prior_direction_and_select = 0; //d = data.Nothing; vec4 n = Noise[Here]; return(Noise[Noise[d.xy + n.xy].xy + d.zw]); }
vec4 FragmentShader(VertexOut vertex, PeriodicField <vec4> Random, [Dir.Vals] float dir) { return(Random[dir_to_vec(dir)]); }
vec4 FragmentShader(VertexOut vertex, PeriodicField <vec4> Field) { return(Field[Here]); }
vec4 FragmentShader(VertexOut vertex, PeriodicField <vec4> Random) { vec4 val = Random[RightOne]; return(vec(val.y, val.z, val.w, val.x)); }