Compare commits
2 Commits
8c26c5b7df
...
ef2f63dd55
Author | SHA1 | Date |
---|---|---|
ekkie | ef2f63dd55 | |
ekkie | d0d89cf367 |
|
@ -51,10 +51,16 @@
|
|||
<input type="number" id="speed" name="speed" min="-5" max="5" step="0.1" value="1">
|
||||
<br>
|
||||
<label for="pulse">Pulse</label>
|
||||
<input type="pulse" id="pulse" name="pulse" min="-5" max="5" step="0.1" value="0">
|
||||
<input type="number" id="pulse" name="pulse" min="-5" max="5" step="0.1" value="0">
|
||||
<br>
|
||||
<label for="pulsespeed">Pulse Speed</label>
|
||||
<input type="pulsespeed" id="pulsespeed" name="pulsespeed" min="-5" max="5" step="0.1" value="1">
|
||||
<input type="number" id="pulsespeed" name="pulsespeed" min="-5" max="5" step="0.1" value="1">
|
||||
<br>
|
||||
<label for="offset">Phase shift</label>
|
||||
<input type="number" id="offset" name="offset" min="0" max="1" step="0.0625" value="1">
|
||||
<br>
|
||||
<label for="offset">Supersampling</label>
|
||||
<input type="range" id="supersample" name="supersample" min="1" max="8" step="1" value="8">
|
||||
<br>
|
||||
<label for="mirror">Mirror</label>
|
||||
<input type="checkbox" id="mirror" name="mirror">
|
||||
|
@ -82,13 +88,14 @@ uniform float speed;
|
|||
uniform float pulse;
|
||||
uniform float pulsespeed;
|
||||
uniform float mirrored;
|
||||
const float aa = 8.;
|
||||
uniform float offset;
|
||||
uniform float aa;
|
||||
|
||||
void mainImage0(out vec4 fragColor, in vec2 fragCoord)
|
||||
{
|
||||
vec2 uv = (fragCoord.xy - 0.5 * iResolution.xy) / iResolution.y;
|
||||
float r = length(uv) * (1. + pulse * (pow(1. + sin(pulsespeed * iTime), 2.) - 1. ));
|
||||
float theta = mirrored * atan(uv.y, uv.x);
|
||||
float theta = mirrored * atan(uv.y, uv.x) + pi * 2. * offset;
|
||||
fragColor = vec4(
|
||||
fract(arms * theta / (2.*pi) + spiraldense * pow(r, spiraldiff) + speed * iTime) > ratio ? color1 : color2, 1.);
|
||||
}
|
||||
|
@ -96,8 +103,10 @@ void mainImage0(out vec4 fragColor, in vec2 fragCoord)
|
|||
void mainImage(out vec4 fragColor, in vec2 fragCoord)
|
||||
{
|
||||
vec4 tempColor;
|
||||
for(float i = 0.; i < aa; i++) {
|
||||
for(float j = 0.; j < aa; j++) {
|
||||
for(float i = 0.; i < 8.; i++) {
|
||||
if (i >= aa) break;
|
||||
for(float j = 0.; j < 8.; j++) {
|
||||
if (j >= aa) break;
|
||||
mainImage0(tempColor, fragCoord + vec2(i / aa, j / aa));
|
||||
fragColor += tempColor;
|
||||
}
|
||||
|
@ -132,6 +141,8 @@ var ispeed = document.getElementById("speed");
|
|||
var ipulse = document.getElementById("pulse");
|
||||
var ipulsespeed = document.getElementById("pulsespeed");
|
||||
var imirrored = document.getElementById("mirror");
|
||||
var ioffset = document.getElementById("offset");
|
||||
var isupersample = document.getElementById("supersample");
|
||||
|
||||
function updatevars() {
|
||||
data.color1 = hextorgb(icolor1.value);
|
||||
|
@ -143,6 +154,8 @@ function updatevars() {
|
|||
data.speed = parseFloat(ispeed.value);
|
||||
data.pulse = parseFloat(ipulse.value);
|
||||
data.pulsespeed = parseFloat(ipulsespeed.value);
|
||||
data.offset = parseFloat(ioffset.value);
|
||||
data.supersample = parseFloat(isupersample.value);
|
||||
data.mirrored = imirrored.checked ? -1 : 1;
|
||||
history.replaceState(null, "", "?" + encodeURIComponent(JSON.stringify(data)))
|
||||
}
|
||||
|
@ -185,6 +198,10 @@ function initScene() {
|
|||
ispeed.value = data.speed;
|
||||
if (data.pulse !== undefined)
|
||||
ipulse.value = data.pulse;
|
||||
if (data.offset !== undefined)
|
||||
ioffset.value = data.offset;
|
||||
if (data.supersample !== undefined)
|
||||
ioffset.supersample = data.supersample;
|
||||
if (data.pulsespeed !== undefined)
|
||||
ipulsespeed.value = data.pulsespeed;
|
||||
if (data.mirrored !== undefined)
|
||||
|
@ -199,6 +216,8 @@ function initScene() {
|
|||
ispeed.oninput = updatevars;
|
||||
ipulse.oninput = updatevars;
|
||||
ipulsespeed.oninput = updatevars;
|
||||
ioffset.oninput = updatevars;
|
||||
isupersample.oninput = updatevars;
|
||||
imirrored.oninput = updatevars;
|
||||
|
||||
updatevars();
|
||||
|
@ -247,6 +266,8 @@ function initScene() {
|
|||
progDraw.speed = gl.getUniformLocation(progDraw, "speed");
|
||||
progDraw.pulse = gl.getUniformLocation(progDraw, "pulse");
|
||||
progDraw.pulsespeed = gl.getUniformLocation(progDraw, "pulsespeed");
|
||||
progDraw.offset = gl.getUniformLocation(progDraw, "offset");
|
||||
progDraw.supersample = gl.getUniformLocation(progDraw, "aa");
|
||||
progDraw.mirrored = gl.getUniformLocation(progDraw, "mirrored");
|
||||
gl.useProgram(progDraw);
|
||||
|
||||
|
@ -295,6 +316,8 @@ function render(deltaMS) {
|
|||
gl.uniform1f(progDraw.speed, data.speed);
|
||||
gl.uniform1f(progDraw.pulse, data.pulse);
|
||||
gl.uniform1f(progDraw.pulsespeed, data.pulsespeed);
|
||||
gl.uniform1f(progDraw.offset, data.offset);
|
||||
gl.uniform1f(progDraw.supersample, data.supersample);
|
||||
gl.uniform1f(progDraw.mirrored, data.mirrored);
|
||||
gl.drawElements( gl.TRIANGLES, bufObj.inx.len, gl.UNSIGNED_SHORT, 0 );
|
||||
|
||||
|
|
Loading…
Reference in New Issue