3

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

考虑:

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

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

这里的工作示例

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

4

1 回答 1

2

更新:似乎在 P5 中(虽然不在处理中), tint()实际上只对p5.Image对象起作用。p5.Image因此,一种解决方法是从屏幕外图形缓冲区创建一个用于从缓冲区get()中抓取像素(返回图像)。令人困惑的是,参考文章get()也使用了图像,因此很难理解实际发生的情况。

一个更新(工作)的例子是here

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

(解决这个问题的功劳归功于Ian

于 2017-05-18T15:11:02.660 回答