1

私は Particle を使用して Three.js で不規則な形状を描画しています。コード スニペットは次のようになります。

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 に答える