1

我在 Three.js 中使用 Particle 绘制不规则形状,代码片段如下:

var hearts = function(context){

context.globalAlpha = 0.5;
var x = 0, y = 0;
context.scale(0.1, -0.1); // Scale so canvas render can redraw within bounds
context.beginPath();
context.bezierCurveTo(x + 2.5, y + 2.5, x + 2.0, y, x, y);
context.bezierCurveTo(x - 3.0, y, x - 3.0, y + 3.5, x - 3.0, y + 3.5);
...
context.closePath();
context.lineWidth = 0.1; //0.05
context.stroke();
}

var material = new THREE.ParticleCanvasMaterial({

program: heart,
blending: THREE.AdditiveBlending
});

 material.color.setRGB(255, 0, 0);  
 var particle = new THREE.Particle(material);

我想要做的是正确选择不规则形状,我的问题是,如果我以这种方式绘制形状,我怎样才能获得每个像素的颜色,以便我可以在挑选算法中使用

谢谢。

4

1 回答 1

0

你看过 toDataURL() 吗?

我在我的 three.js 逻辑中使用它来从浏览器中抓取并保存画布。从这个来看:

http://www.patrick-wied.at/blog/how-to-create-transparency-in-images-with-html5canvas

在我看来, toDataURL() 也可用于查看每个像素的 RGB 和 A,如果需要更改它们并将其写回可见帧缓冲区。

于 2014-01-19T03:15:32.200 回答