diff --git a/index.html b/index.html
index 35ea10e..05a4dd8 100644
--- a/index.html
+++ b/index.html
@@ -50,7 +50,7 @@
time: f32,
unionSmoothness: f32,
ringVariation: f32,
- control2: f32,
+ rotationSpeed: f32,
};
@group(2) @binding(0) var uAttributes: DensityUniformAttribute;
@@ -98,7 +98,7 @@
d += opIntersection(dot(helix, hs * ws.xz), d);
p = ws.yzx;
- // p = rotateAxisAngle(vec3f(1, 1, 0), 0.5 * uAttributes.time) * p;
+ p = rotateAxisAngle(vec3f(1, 1, 1), uAttributes.rotationSpeed * uAttributes.time) * p;
d = opSmoothUnion(
d,
@@ -223,9 +223,11 @@
const uiParams = {
unionSmoothness: 0.5,
ringVariation: 0.0,
+ rotationSpeed: 0.0,
};
pane.addBinding(uiParams, 'unionSmoothness', {min:0.0, max:0.95});
- pane.addBinding(uiParams, 'ringVariation', {min:0, max:2.0});
+ pane.addBinding(uiParams, 'ringVariation', {min:0.0, max:2.0});
+ pane.addBinding(uiParams, 'rotationSpeed', {min:0.0, max:1.0});
// -- Density function bind group & uniform.
@@ -705,12 +707,14 @@
function frame() {
const tick = Date.now() / 1000.0;
const dt = tick - lastTick;
+ const elapsedTime = tick - firstTick;
lastTick = tick;
const densityAtttribs = new Float32Array([
- tick - firstTick,
+ elapsedTime,
uiParams.unionSmoothness,
uiParams.ringVariation,
+ uiParams.rotationSpeed,
]);
device.queue.writeBuffer(density_uniformBuffer, 0, densityAtttribs.buffer, densityAtttribs.byteOffset, densityAtttribs.byteLength);