canvas+webgl实现三维shader驱动的音乐立体空间效果代码
代码语言:html
所属分类:三维
代码描述:canvas+webgl实现三维shader驱动的音乐立体空间效果代码,可拖动旋转切换视角,墙上流体动画。
代码标签: canvas webgl 三维 shader 驱动 音乐 立体 空间
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
</head>
<body>
<script >
const choose = a => a[Math.floor(Math.random() * a.length)];
const speeds = [.8];
const resont = [.9];
const volmns = [1];
const options = {
volume: choose(volmns),
resonance: choose(resont),
speed: choose(speeds) };
let shaderTime = 0;
let pan = 0;
const Composer = () => {
let context,
main, verb, bus, compressor;
const trigger = Object.freeze({
trig: function () {
let prev = 0;
let t = false;
return function (val) {
t = prev < 0 && val >= 0;
prev = val;
return t;
};
},
change: function () {
let prev = 0;
let t = false;
return function (val) {
t = prev != val;
prev = val;
return t;
};
},
pulse: function (threshold) {
let prev = 0;
let t = false;
return function (b) {
if (b) prev++;
if (prev == threshold) {
t = true;
prev = 0;
} else {t = false;}
return t;
};
},
skip: function (n) {
let count = n;
return function (b) {
return count++ % n == 0;
};
} });
const lowTrig = trigger.trig();
const highTrig = trigger.trig();
const bassTrig = trigger.trig();
const lowChanged = trigger.change();
const bassChanged = trigger.change();
const highChanged = trigger.change();
const roots = [21, 23, 24, 26, 28,.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0