在纯 AS3 中,我有一个像素弯曲器和一个大位图。pixelbender 可以使用距离参数进行配置,以仅影响位图的一小部分区域。问题是像素弯曲器正在整个位图上执行。仅更新位图受影响区域的最佳方法是什么?
鉴于此配置:
shader.data.image.input = referenceBitmap.bitmapData; // 300x200
shader.data.position = [150,100];
shader.data.distance = [20];
以下不起作用:
new ShaderJob(shader,
bitmap.bitmapData.getPixels(
new Rectangle(particle.x -10,
particle.y -10,
20,
20))).start();
我可以创建一个临时数组来保存计算值,然后将它们复制回 bitmapData 数组。虽然我希望着色器直接更新 bitmapData 像素并且仅在受影响的区域上。
以下工作,但着色器在整个 300x200 位图上运行:
new ShaderJob(shader, bitmap.bitmapData).start();
有什么建议么?
编辑:过滤器将不起作用,因为有 3 个输入图像