diff --git a/index.html b/index.html index 9512cd6..6fee23d 100644 --- a/index.html +++ b/index.html @@ -48,7 +48,7 @@ }, cycleSpeed: 0.05, cycleStyle: "cycleFasterWhenDimmed", - fade: true, + brightnessThreshold: 0, fallSpeed: 0.05, font: fonts.coptic, glyphEdgeCrop: 0.0, @@ -75,7 +75,7 @@ }, cycleSpeed: 0.02, cycleStyle: "cycleFasterWhenDimmed", - fade: true, + brightnessThreshold: 0, fallSpeed: 2.0, font: fonts.gothic, glyphEdgeCrop: 0.0, @@ -102,7 +102,7 @@ }, cycleSpeed: 1, cycleStyle: "cycleFasterWhenDimmed", - fade: true, + brightnessThreshold: 0, fallSpeed: 1, font: fonts.matrixcode, glyphEdgeCrop: 0.0, @@ -141,7 +141,7 @@ }, cycleSpeed: 0.4, cycleStyle: "cycleRandomly", - fade: false, + brightnessThreshold: 0.6375, fallSpeed: 0.6, font: fonts.matrixcode, glyphEdgeCrop: 0.15, @@ -185,7 +185,7 @@ const slant = parseFloat(getParam(["slant", "angle"], version.slant)) * Math.PI / 180; const glyphEdgeCrop = parseFloat(getParam("encroach", version.glyphEdgeCrop)); const glyphHeightToWidth = parseFloat(getParam("stretch", version.glyphHeightToWidth)); - const fade = getParam("fade", version.fade).toString() == "true"; + const brightnessThreshold = getParam("brightnessThreshold", version.brightnessThreshold); const effect = getParam("effect", "plain"); @@ -204,7 +204,7 @@ const matrixRenderer = makeMatrixRenderer(renderer, { animationSpeed, fallSpeed, cycleSpeed, cycleStyle: version.cycleStyle, - fade, + brightnessThreshold, fontTexture, glyphSequenceLength: version.font.sequenceLength, glyphEdgeCrop, diff --git a/js/MatrixRenderer.js b/js/MatrixRenderer.js index f785abb..ef15a50 100644 --- a/js/MatrixRenderer.js +++ b/js/MatrixRenderer.js @@ -11,7 +11,7 @@ const makeMatrixRenderer = (renderer, { slant, glyphHeightToWidth, glyphEdgeCrop, - fade, + brightnessThreshold, showComputationTexture, raindropLength, cycleStyle @@ -131,7 +131,7 @@ const glyphVariable = gpuCompute.addVariable( ); gpuCompute.setVariableDependencies( glyphVariable, [ glyphVariable ] ); - const brightnessChangeBias = fade ? (animationSpeed * fallSpeed) == 0 ? 1 : Math.min(1, Math.abs(animationSpeed * fallSpeed)) : 1; + const brightnessChangeBias = (brightnessThreshold <= 0) ? (animationSpeed * fallSpeed) == 0 ? 1 : Math.min(1, Math.abs(animationSpeed * fallSpeed)) : 1; Object.assign(glyphVariable.material.uniforms, { time: { type: "f", value: 0 }, deltaTime: { type: "f", value: 0.01 }, @@ -244,9 +244,9 @@ const glyphVariable = gpuCompute.addVariable( // Unpack the values from the font texture float brightness = glyph.r; - #ifndef fade + #ifdef brightnessThreshold if (brightness < -1.0) { discard; return; } - if (brightness > 0.65) { + if (brightness > brightnessThreshold) { brightness *= 2.0; } else { brightness = 0.25; @@ -283,8 +283,8 @@ const glyphVariable = gpuCompute.addVariable( mesh.material.defines.isPolar = 1.0; } - if (fade) { - mesh.material.defines.fade = 1.0; + if (brightnessThreshold > 0) { + mesh.material.defines.brightnessThreshold = brightnessThreshold; } if (showComputationTexture) {