iform sampler2D water;
				#include <transpose>
				#include <inverse>
				#include <normal_pars_frag>
				#include <tsn>
				`
			);

			water_frag = water_frag.replace(
				'#include <normal_frag>',
				`
				#include <normal_frag>
				
				vec2 coord = v_Uv;

				vec4 info;

				for (int i = 0; i < 5; i++) {
					coord += info.ba * 0.005;
					info = texture2D(water, coord);
				}

				N =  vec3(info.b, sqrt(1.0 - dot(info.ba, info.ba)), info.a);

				`
			);

			// fresnel
			water_frag = water_frag.rep