createCanvas(600, 600, WEBGL)
_renderer.GL.getExtension('OES_standard_derivatives')
waterShader = createShader(...waterShaderSource())
fbo = new Framebuffer(window)
blurShader = createShader(vert, frag)
const time = millis()/1000
const eyeZ = (height/2) / tan(PI/6)
perspective(PI/3, width/height, near, far)
const blurIntensity = 0.0025
drawingContext.disable(drawingContext.DEPTH_TEST)
beginShape(TRIANGLE_STRIP)
vertex(-width/2, -height/2)
vertex(width/2, -height/2)
vertex(-width/2, height/8)
vertex(width/2, height/8)
drawingContext.enable(drawingContext.DEPTH_TEST)
translate(0, -700, -3000)
ambientLight(color('#809db0'))
directionalLight(186, 221, 245, -0.5, -.4, -0.5)
pointLight(200, 200, 200, width/2, -height, -5800)
pointLight(100, 20, 20, -width/2, -height*0.8, -5800)
specularMaterial('#4b6b94')
waterShader.setUniform('time', time)
plane(100*width, 100*width)
_renderer.getTexture(fbo.depth).setInterpolation(
blurShader.setUniform('uImg', fbo.color)
blurShader.setUniform('uDepth', fbo.depth)
blurShader.setUniform('uSize', [width, height])
blurShader.setUniform('uIntensity', blurIntensity)
blurShader.setUniform('uNumSamples', 25)
blurShader.setUniform('uTargetZ', targetDepth)
blurShader.setUniform('uNear', near)
blurShader.setUniform('uFar', far)
rect(0, 0, width, -height)