diff --git a/src/webgl/ShaderGenerator.js b/src/webgl/ShaderGenerator.js index 722689cff0..d029ed44ef 100644 --- a/src/webgl/ShaderGenerator.js +++ b/src/webgl/ShaderGenerator.js @@ -9,6 +9,7 @@ import { ancestor } from 'acorn-walk'; import escodegen from 'escodegen'; function shadergenerator(p5, fn) { + let GLOBAL_SHADER; let BRANCH; @@ -1618,7 +1619,19 @@ function shadergenerator(p5, fn) { } } }) + // Alias GLSL's mix function as lerp in p5.strands + // Bridging p5.js lerp and GLSL mix for consistency in shader expressions + const originalLerp = fn.lerp; + fn.lerp = function (...args) { + if (GLOBAL_SHADER?.isGenerating) { + return this.mix(...args); // Use mix inside p5.strands + } else { + return originalLerp.apply(this, args); // Fallback to normal p5.js lerp + } + }; } + + export default shadergenerator;