パーティクルシステムとラインがあります。 color配列を作成し、VertexColorsをtrueに設定することで、ラインの各頂点とエッジの色を簡単に設定できます。 私の質問は、a)不透明度b)パーティクルシステム/ラインの各頂点/エッジのサイズを個別に調整するにはどうすればよいですか。
ありがとう!
ゼナ
私も知りたいです。
geometry.colors
は、頂点を1つずつマッピングする配列です。 したがって、 geometry.vertices[ 1 ]
の色を変更する場合は、 geometry.colors[ 1 ]
を変更する必要があります。
こんにちはmrdoob。
shape.colors [1]はThree.colorになります。 楽しく色を変えることはできますが、私が知る限り、不透明度の値はそこに保存されていません。 では、どのようにして単一の頂点/線の不透明度を変更できますか?
ええとああ...
これを簡単に行うことはできません。不透明度は要素ごとではなく、マテリアルごとに指定されます。 少し前にColor
からアルファを削除しました。
考えられる1つの方法は、カスタム属性とカスタムMeshShaderMaterial
することです。ここでは、4成分の色を使用します。
サイズについても同じですが、現在、デフォルトの属性とマテリアルを使用して、パーティクルごとまたはラインごとにサイズを変更する方法はありません。 サイズに別の属性ストリームが必要になり、これを使用するカスタムマテリアルが必要になります。
Color
からアルファを削除することにした理由を思い出せません...
私も覚えていません、私はこれを見つけることができました:
https://github.com/mrdoob/three.js/commit/dc6e335dc9f7f38f1c79a5a6c112019d6fcce69d
アルファ付きの16進色が問題を引き起こしていたようです。 さて、アセットパイプラインの依存関係が増えると、さらに苦痛になると思います。
頂点ごとに不透明度を指定できると、パーティクルシステムを実行するのに非常に役立ちます。
将来のリリースでこれをサポートする計画はありますか?
ここでの技術的な難しさはわかりません。 直感的には、 geometry.opacityValues
ようなものを持つことは、これをサポートするための下位互換性があり、邪魔にならない方法のようです。 頂点の色の場合と同様に、必要がない場合や問題が発生する場合は、このサポートを無効にするグローバルpointsMaterial.vertexOpacityValues
フラグを使用することもできます。
@quyinカスタムShaderMaterial
やりたいことができます。 ヘルプが必要な場合は、stackoverflowを参照してください。
@WestLangleyなるほど。 情報をありがとう!
一方で、これがJSで実行できれば、特に私を含め、シェーダー言語に慣れていない人にとっては素晴らしいことです。 でも同じように感謝します!
最も参考になるコメント
@WestLangleyなるほど。 情報をありがとう!
一方で、これがJSで実行できれば、特に私を含め、シェーダー言語に慣れていない人にとっては素晴らしいことです。 でも同じように感謝します!