Calling this one Original. Let’s be honest; no one re-invents the wheel (noise functions, fbm functions) so using these tools I scripted my first weather shader. Protip: memorize everything you read on this page: http://www.shaderific.com/glsl-functions/

**note** as mentioned in other threads, you’ll need to replace the iTexture0 with a hash + noise function to operate in HiFi.

```
float noise( in vec2 x )
{
vec2 p = floor(x);
vec2 f = fract(x);
vec2 uv = p.xy + f.xy*f.xy*(3.0-2.0*f.xy);
return texture2D( iChannel0, (uv+118.4)/256.0, -100.0 ).x;
}
float fbm( vec2 p )
{
p += vec2(2.0,4.0);
float f;
f = 0.5000*noise( p ); p = p*2.02;
f += 0.2500*noise( p ); p = p*2.03;
f += 0.1250*noise( p ); p = p*2.01;
f += 0.0625*noise( p );
return f;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;
vec3 col = vec3(0.9,.9,.9);
float f = .96*noise(uv);
col *= 1.0-smoothstep(col, vec3(.9,.1,.1), vec3(f));
f = fbm(uv*3.);
col = mix(col, vec3(f), (3.*sin(0.33)) );
fragColor = vec4(col,1.0);
}
```

Due to the nature of it as a shadertoy .fs you can paste it into shadertoy and assign a noise texture to tex[0] and it will give you the above screenshot on compile.

Yes.

Direct Fragment Shader support in High Fidelity Interface is VERY new to the Alpha community.

[quote=“CountBurks, post:2 topic:7205”]

Maybe it is worth it to get together with a couple of programmers to come up with a basic ocean shader that does not drain the GPU resources by 20 FPS.[/quote] Thanks for your interest. I couldn’t AGREE more. There is another water example here:

https://alphas.highfidelity.io/t/fragment-shader-fs-marketplace-upload/7184