From 074b53ae8d6d07ee98430d6653721957da6ea7e2 Mon Sep 17 00:00:00 2001 From: Daniel Barber Date: Thu, 25 Jun 2020 22:42:37 -0400 Subject: [PATCH] Add Plasmatron post --- content/blog/2020-06-25-plasmatron/index.md | 88 ++++++++++++++++++ .../2020-06-25-plasmatron/plasmatron.frag | 49 ++++++++++ .../blog/2020-06-25-plasmatron/plasmatron.jpg | Bin 0 -> 55473 bytes 3 files changed, 137 insertions(+) create mode 100644 content/blog/2020-06-25-plasmatron/index.md create mode 100644 content/blog/2020-06-25-plasmatron/plasmatron.frag create mode 100644 content/blog/2020-06-25-plasmatron/plasmatron.jpg diff --git a/content/blog/2020-06-25-plasmatron/index.md b/content/blog/2020-06-25-plasmatron/index.md new file mode 100644 index 00000000..a17dbd47 --- /dev/null +++ b/content/blog/2020-06-25-plasmatron/index.md @@ -0,0 +1,88 @@ +--- +title: Plasmatron Shader +layout: post +categories: +- shaders +- webgl +- demoscene +- effects +date: '2020-06-25' +image: plasmatron.jpg +--- + +I've been interested in computer graphics for as long as I can remember. The +reason I started programming at all was because I wanted to make things happen +on the screen. + +Recently I've been playing around with fragment shaders. Fragment shaders are +tiny programs that run on the GPU and compute the colour of individual pixels +(fragments). They do this incredibly quickly because the GPU has a large number +of simple processing cores, often numbering in the hundreds or thousands, to +enable massive parallelisation. + + + +Shaders are written in a language called GLSL, or OpenGL Shader Language. It's +pretty similar to C. Here is a simple plasma shader I wrote a few years ago: + +```glsl +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +const float PI = 3.14159265; + +void main() { + float width = u_resolution.x; + float height = u_resolution.y; + + float scale = (width + height) / 2.0; + + float time = u_time * 0.3; + + // calculate the centre of the circular sines + vec2 center = vec2((width / 2.0) + sin(time) * (width / 1.5), + (height / 2.0) + cos(time) * (height / 1.5)); + + float distance = length(gl_FragCoord.xy - center); + + // circular plasmas sines + float circ = (sin(distance / (scale / 7.6) + sin(time * 1.1) * 5.0) + 1.25) + + (sin(distance / (scale / 11.5) - sin(time * 1.1) * 6.0) + 1.25); + + // x and y plasma sines + float xval = (sin(gl_FragCoord.x / (scale / 6.5) + sin(time * 1.1) * 4.5) + 1.25) + + (sin(gl_FragCoord.x / (scale / 9.2) - sin(time * 1.1) * 5.5) + 1.25); + + float yval = (sin(gl_FragCoord.y / (scale / 6.8) + sin(time * 1.1) * 4.75) + 1.25) + + (sin(gl_FragCoord.y / (scale / 12.5) - sin(time * 1.1) * 5.75) + 1.25); + + // add the values together for the pixel + float tval = circ + xval + yval / 3.0; + + // work out the colour + vec3 color = vec3((cos(PI * tval / 4.0 + time * 3.0) + 1.0) / 2.0, + (sin(PI * tval / 3.5 + time * 3.0) + 1.0) / 2.5, + (sin(PI * tval / 2.0 + time * 3.0) + 2.0) / 8.0); + + // set the fragment colour + gl_FragColor = vec4(color, 1.0); +} +``` + +WebGL makes it possible to embed shaders directly into web pages, so I can show +you the result of the code above in realtime! + +
+ +
+ +If you want to see the kind of things that are possible with fragment shaders, +you should check out [Shadertoy](https://www.shadertoy.com/). There are some +incredibly impressive creations on there! + + diff --git a/content/blog/2020-06-25-plasmatron/plasmatron.frag b/content/blog/2020-06-25-plasmatron/plasmatron.frag new file mode 100644 index 00000000..8ba6cc31 --- /dev/null +++ b/content/blog/2020-06-25-plasmatron/plasmatron.frag @@ -0,0 +1,49 @@ +// Author: Daniel Barber +// Title: Plasmatron + +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +const float PI = 3.14159265; + +void main() { + float width = u_resolution.x; + float height = u_resolution.y; + + float scale = (width + height) / 2.0; + + float time = u_time * 0.3; + + // calculate the centre of the circular sines + vec2 center = vec2((width / 2.0) + sin(time) * (width / 1.5), + (height / 2.0) + cos(time) * (height / 1.5)); + + float distance = length(gl_FragCoord.xy - center); + + // circular plasmas sines + float circ = (sin(distance / (scale / 7.6) + sin(time * 1.1) * 5.0) + 1.25) + + (sin(distance / (scale / 11.5) - sin(time * 1.1) * 6.0) + 1.25); + + // x and y plasma sines + float xval = (sin(gl_FragCoord.x / (scale / 6.5) + sin(time * 1.1) * 4.5) + 1.25) + + (sin(gl_FragCoord.x / (scale / 9.2) - sin(time * 1.1) * 5.5) + 1.25); + + float yval = (sin(gl_FragCoord.y / (scale / 6.8) + sin(time * 1.1) * 4.75) + 1.25) + + (sin(gl_FragCoord.y / (scale / 12.5) - sin(time * 1.1) * 5.75) + 1.25); + + // add the values together for the pixel + float tval = circ + xval + yval / 3.0; + + // work out the colour + vec3 color = vec3((cos(PI * tval / 4.0 + time * 3.0) + 1.0) / 2.0, + (sin(PI * tval / 3.5 + time * 3.0) + 1.0) / 2.5, + (sin(PI * tval / 2.0 + time * 3.0) + 2.0) / 8.0); + + // set the fragment colour + gl_FragColor = vec4(color, 1.0); +} diff --git a/content/blog/2020-06-25-plasmatron/plasmatron.jpg b/content/blog/2020-06-25-plasmatron/plasmatron.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1359631bfcbab1d30f38657686d7ffca6d5b7cdf GIT binary patch literal 55473 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¨ViA9`5SPQKT-3Qs&P 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 literal 0 HcmV?d00001