2017-03-09 7 views
1

Aフレームでの加算ブレンドを有効にする最も簡単な方法は何ですか? THREE.MeshStandardMaterialにはblendingのプロパティがありますが、これはAフレームのmaterialコンポーネントによって公開されていません。Aフレームでの加算ブレンドを有効にする方法?

エンティティの素材を取得してこのプロパティを自分で設定するには、カスタムコンポーネントを作成する必要がありますか?この共通の要件はすでに食料調達されているはずですか?

答えて

3

私は先に行って、このために私自身のブレンドモードコンポーネントを作成:

AFRAME.registerComponent('blendmode', { 
    schema: { 
    mode: {default: 'AdditiveBlending'} //Available Modes are: var blendings = [ "NoBlending", "NormalBlending", "AdditiveBlending", "SubtractiveBlending", "MultiplyBlending" ]; 
    }, 

    dependencies: ['material'], 

    update: function() { 
    // entity data 
    var el = this.el; 
    var data = this.data; 

     if (el.components.hasOwnProperty("material")) { 
      var mat = el.components.material.material; 
      mat.blending = THREE[data.mode]; 
     } 
    } 
}); 
+1

ニースソリューションを!このような短いコンポーネントは一般的に私がやったことですが、おそらく 'blending'オプションをサポートするPRの価値があります。また、エンティティが既に 'material'コンポーネントを持っていない場合、その' dependencies'エントリはそれを追加します(A-Frame 0.5.0のように)。 –

+1

その周りには 'el.getObject3D( 'mesh')。material'があります。また、' object3dset'イベントを待ち受けて、メッシュがモデルからロードされたことを知ることができます。 –