2012-09-09 9 views
12

私は、粒子の不透明度を飛行機からの距離の関数として変化させようとしています。three.js - 個々の粒子の不透明度を調整する

This issueは私の問題を説明しており、1年前の回答は本質的にでした。「あなたはできません」です。不透明度は明らかに要素のパラメータではなく、個々の粒子の不透明度は不可能です。

何か変更がありましたか、これを達成する方法はありますか?個々の粒子の着色が可能な場合、私はこれが手の届かないところではないと思います。

乾杯

答えて

23

ParticleSystemPointsに、その後PointCloud名前に変更されています。

はい、ポイントクラウドを作成し、各パーティクルの色のアルファ値を動的に変更できます。

three.jsでは、ポイントクラウドの素材を、各パーティクルの目的のアルファ値に等しい属性を持つShaderMaterialに設定することで、これを行うことができます。 http://jsfiddle.net/8mrH7/266/

ShaderMaterials場合は、頂点シェーダとフラグメントシェーダは、ここでは、ダイナミックアルファでポイントクラウドを実装本当に簡単フィドルは、あなたに新しいです。

EDIT:更新フィドル

three.js r.84

+1

ありがとう!次のように私の現在の材料である: \t \t pMaterial =新しいTHREE.ParticleBasicMaterial({ \t \t \tサイズ:0.2、 \t \t \tマップ:THREE.ImageUtils.loadTexture( \t \t \t \t「画像/ particle.png 「 \t \t \t)、 \t \t \tブレンド:THREE.AdditiveBlending、 \t、 \t \t \t透明真:真、 \t \t \t depthWrite:0 \t vertexColorsを偽、//必要? \t \t}); このアプローチでは、どのようにして添加剤ブレンドテクスチャを維持できますか? – user593062

+0

アルファはこの例ではもう動作しません。私は何かが変わったはずだと思います。 –

+1

さて、固定しました。 ShaderMaterialで "transparent:true"を設定するだけでした。 http://jsfiddle.net/yfSwK/27/ –

関連する問題