5 "uniform float uSwayAmt;"
12 "vec3 compute_sway( vec3 pos )"
14 "vec4 sines = vec4( sin(uTime + pos.x)*1.0,"
15 "sin(uTime*1.2 + pos.z*2.0)*1.1,"
16 "sin(uTime*2.33)*0.5,"
17 "sin(uTime*0.6 + pos.x*0.3)*1.3 );"
19 "vec3 offset = vec3( sines.x+sines.y*sines.w, 0.0, sines.x+sines.z );"
20 "return pos + offset*a_colour.r*uSwayAmt;"
25 "vec3 swaypos = compute_sway( a_co );"
26 "gl_Position = uPv * vec4(uMdl * vec4(swaypos,1.0), 1.0 );"
29 "aNorm = normalize(mat3(uMdl) * a_norm);"
36 "uniform sampler2D uTexMain;"
37 "uniform sampler2D uTexGradients;"
39 /*Include*/ SHADER_VALUE_NOISE_3D
48 "vec4 colour = vec4(1.0,0.0,0.5,1.0);"
49 "vec4 diffuse = texture( uTexMain, aUv );"
53 "colour = vec4(aNorm * 0.5 + 0.5, 1.0);"
61 "float light = dot(aNorm, vec3(0.2,0.8,0.1));"
62 "vec3 grid3 = fract(aCo);"
64 "colour = vec4(vec3(light)*(1.0-grid3*0.3),1.0);"
68 "colour = vec4( aUv, 0.0, 1.0 );"
72 "if( diffuse.a < 0.45 ) discard;"
77 "float r1 = fractalNoise(aCo);"
78 "colour = vec4( vec3(r1), 1.0 );"
82 "if( diffuse.a < 0.2 ) discard;"
83 "float lighting = 1.0 - aColour.g*0.8;"
85 "float light1 = max(0.0,dot(-vec3(0.5,-0.8,0.25), aNorm));"
86 "float light2 = max(0.0,dot(-vec3(-0.8,0.5,-0.25), aNorm));"
87 "vec3 lt = vec3(0.2,0.2,0.2 ) + "
88 "vec3(1.0,1.0,0.9)*light1 + "
89 "vec3(0.1,0.3,0.4 )*light2;"
92 "colour = vec4(vec3(pow(lighting,1.6)*(diffuse.r*0.7+0.5)),1.0);"
93 "colour = vec4(colour.rgb*lt,1.0);"
95 "vec2 gradUV = vec2(lighting*1.9,aColour.b*0.8);"
96 "vec4 gradient_sample = texture( uTexGradients, gradUV );"
97 "colour = colour*gradient_sample;"
101 "if( diffuse.a < 0.45 ) discard;"
102 "float light = 1.0 - aColour.g;"
103 "light = pow(light,1.6)*(diffuse.r*0.7+0.5);"
104 "float r1 = fractalNoise(aCo*0.01);"
106 "vec2 gradUV = vec2(light*1.9,r1+aColour.b);"
107 "vec4 gradient_sample = texture( uTexGradients, gradUV );"
108 "colour = gradient_sample*light;"
111 "FragColor = colour;"