diff options
Diffstat (limited to 'src/shader.frag')
-rw-r--r-- | src/shader.frag | 73 |
1 files changed, 70 insertions, 3 deletions
diff --git a/src/shader.frag b/src/shader.frag index 3f76290..075c2ae 100644 --- a/src/shader.frag +++ b/src/shader.frag @@ -12,10 +12,77 @@ layout(binding = 0) uniform UniformBufferObject { mat4 view; mat4 proj; vec2 resolution; + float time; + float dt; } ubo; void main() { - //outColor = vec4(fragColor * texture(texSampler, fragTexCoord).rgb, 1.0); - outColor = texture(texSampler, fragTexCoord); - //outColor = vec4(fragColor ,1); + float pulse = sin(ubo.time * .2) * .5 + .5; + outColor = vec4(fragColor * texture(texSampler, fragTexCoord).rgb * pulse, 1.0); + //outColor = texture(texSampler, fragTexCoord); +// float repeat = 10; +// float f = mod(ubo.time, repeat); +// if (f < repeat / 2) { +// outColor = vec4(fragColor * radians(f) ,1); +// } else { +// outColor = vec4(fragColor * radians(1 - f) ,1); +// } +// //outColor = (vec4(1) * ubo.model + vec4(1)) * vec4(texture(texSampler, fragTexCoord).rgb * fragColor, 1.0); } + +// float noise(vec2 p) { +// return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453); +// } + +// float smoothNoise(vec2 p) { +// vec2 i = floor(p); +// vec2 f = fract(p); +// vec2 u = f * f * (3.0 - 2.0 * f); +// return mix(mix(noise(i + vec2(0.0, 0.0)), noise(i + vec2(1.0, 0.0)), u.x), +// mix(noise(i + vec2(0.0, 1.0)), noise(i + vec2(1.0, 1.0)), u.x), u.y); +// } + +// float fbm(vec2 p) { +// float value = 0.0; +// float amplitude = 0.5; +// for (int i = 0; i < 6; i++) { +// value += amplitude * smoothNoise(p); +// p *= 2.0; +// amplitude *= 0.5; +// } +// return value; +// } + +// void main() { +// vec2 uv = gl_FragCoord.xy / ubo.resolution.xy; +// vec2 p = uv * 2.0 - vec2(1.0); +// float n = fbm(p * 5.0 - vec2(0.0, ubo.time * 2.0)); +// outColor = vec4(n, n * 0.5, 0.0, 1.0) * vec4(texture(texSampler, fragTexCoord).rgb, 1.0); +// } + +// void main() { + +// // Calculate a pulsating factor based on sine wave +// float pulse = sin(ubo.time * 2.0) * 0.5 + 0.5; + +// // Set the color using the pulse factor +// outColor = vec4(pulse, 0.0, 1.0 - pulse, .5); +// } + +// void main() { +// vec2 uv = gl_FragCoord.xy / ubo.resolution; +// vec2 center = uv - 0.5; + +// float angle = ubo.time; +// float cosA = cos(angle); +// float sinA = sin(angle); + +// vec2 rotated = vec2( +// center.x * cosA - center.y * sinA, +// center.x * sinA + center.y * cosA +// ); + +// float pattern = step(0.5, mod(rotated.x * 10.0, 1.0)) * step(0.5, mod(rotated.y * 10.0, 1.0)); + +// outColor = vec4(vec3(pattern), 1.0); +// } |