我正在尝试在P5.js中制作旧电视静态效果,虽然我能够使效果正常工作,但帧率相当低。
我的方法如下:
虽然我得到了性能提升,但仍无法达到我想要的每秒30帧。有更好的方法吗?
唯一能获得合理性能的方法是通过以下代码用小正方形填充屏幕:
我的方法如下:
- 循环遍历每个像素
- 将描边设置为随机值
- 调用point()函数绘制像素
const SCREEN_WIDTH = 480
const SCREEN_HEIGHT = 480
var ScreenBuffer;
function setup(){
createCanvas(SCREEN_WIDTH, SCREEN_HEIGHT);
ScreenBuffer = createGraphics(SCREEN_WIDTH,SCREEN_HEIGHT);
}
function draw(){
paintBuffer();
image(ScreenBuffer,0,0);
}
function paintBuffer(){
console.log("Painting Buffer")
for(var x = 0; x< SCREEN_WIDTH; x++){
for(var y = 0; y< SCREEN_HEIGHT; y++){
ScreenBuffer.stroke(Math.random() * 255)
ScreenBuffer.point(x,y)
}
}
}
虽然我得到了性能提升,但仍无法达到我想要的每秒30帧。有更好的方法吗?
唯一能获得合理性能的方法是通过以下代码用小正方形填充屏幕:
for(var x = 0; x< SCREEN_WIDTH-10; x+=10){
for(var y = 0; y< SCREEN_HEIGHT-10; y+=10){
//ScreenBuffer.stroke(Math.random() * 255)
//ScreenBuffer.point(x,y)
ScreenBuffer.fill(Math.random() * 255);
ScreenBuffer.noStroke()
ScreenBuffer.rect(x,y,10,10)
}
}
但我真的很想要一个像素效果 - 最好是填满整个屏幕。