p5

时间:2017-05-17 20:33:49

标签: rendering processing p5.js tint pgraphics

我试图在p5中更改屏幕外图形缓冲区的不透明度,但无法弄清楚。

考虑:

var pg = createGraphics(...)
var image = loadImage(...)

tint(255, 50)
image(image, 0, 0) <----- this works
image(pg, 0, 0)    <----- but this doesn't

working example here

tint(255, x) 应该保持着色不变并将不透明度设置为x,但似乎没有效果。在图像上工作正常,但是......我错过了什么?

1 个答案:

答案 0 :(得分:1)

更新:好像在P5中(尽管不在Processing中),tint()确实实际上只适用于p5.Image个对象。因此,解决方法是使用p5.Image从屏幕外图形缓冲区创建get()以从缓冲区中获取像素(返回图像)。令人困惑的是,get()的参考文章也使用了图片,因此很难理解实际发生的事情。

更新(工作)的示例是here

重申一下,这个值得做的原因是将复杂的形状(如文本)仅一次渲染到缓冲区,然后根据需要绘制/操作该缓冲区。这大大减少了CPU负载并加快了草图速度。

(将这个问题归结为Ian