问题描述
我使用非常大的阵列运行了一些效果,我注意到我的计算机滞后,所以我想切换到使用我的 GPU 而不是我的 cpu 来进行这些计算。
我在 React 应用程序中安装了 gpu.js,但是当我尝试创建内核时,它会引发错误。
无论我做什么或更改它总是会引发错误。
bubbles = [];
drawBubbles = () => {
const ctx = this.Canvas.getContext("2d");
ctx.strokeStyle = "white";
ctx.globalAlpha = 0.6;
if (this.bubbles.length) {
const gpu = new GPU();
// Here is where my problem lies
const kernel = gpu.createKernel(
function (bubbles) {
const i = this.thread.x;
const bubble = bubbles[i];
bubble.y -= bubble.speed;
if (bubble.y + bubble.speed * 2 < 0) {
bubble.y = this.Canvas.height + bubble.speed * 2;
bubble.x = Math.random() * this.Canvas.width;
}
if (Math.floor(Math.random() * 2) === 0) {
bubble.x += Math.random() * 6 - 2.5;
}
ctx.linewidth = bubble.speed / 2.5;
ctx.beginPath();
ctx.arc(bubble.x,bubble.y,bubble.speed * 2,2 * Math.PI);
ctx.stroke();
},{ output: [this.bubbles.length] }
);
kernel(this.bubbles);
} else {
for (let i = 0; i < 15; i++) {
this.bubbles.push({
x: Math.random() * this.Canvas.width,y: Math.random() * this.Canvas.height,speed: Math.random() * 3 + 1,});
}
}
};
我每秒运行 this.drawBubbles();
次约 60 次(以及其他一些效果,最多 3000 个或更多的数组对象和繁重的计算)
我收到一条致命的错误信息:Error: Unexpected expression on line 16,position 9: bubble.y
我一直在尝试解决这个问题,但我已经四处寻找问题的答案,但找不到。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)