次のように、プログラム関数を使用して、パーティクルがキャンバスを介して球状オブジェクトにレンダリングされる作業用の threejs の例があります。
var material = new THREE.ParticleCanvasMaterial( {
color: 0xffffff,
program: function ( context ) {
context.beginPath();
context.arc( 0, 0, 1, 0, PI2, true );
context.closePath();
context.fill();
}
} );
for ( var i = 0; i < 1000; i ++ ) {
particle = new THREE.Particle( material );
particle.position.x = Math.random() * 2 - 1;
particle.position.y = Math.random() * 2 - 1;
particle.position.z = Math.random() * 2 - 1;
particle.position.normalize();
particle.position.multiplyScalar( Math.random() * 10 + 600 );
initParticle( particle, i * 10 );
scene.add( particle );
}
ただし、もう少し速く実行するために webGL レンダラーに切り替えたいのですが、プログラム オプションがありません。map を使用する必要があるようですが、方法がわかりません。このコードを調整して webGL レンダラーで同じことを達成する方法について、誰もがアイデアを持っています。