2017-03-09 1 views
1

A- 프레임에서 첨가제 혼합을 활성화하는 가장 쉬운 방법은 무엇입니까? THREE.MeshStandardMaterial에는 내가 필요로하는 것처럼 보이는 blending 속성이 있지만 A 프레임 material 구성 요소에 의해 노출되지 않습니다.A-Frame에서 Additive Blending을 활성화하는 방법은 무엇입니까?

엔티티의 소재를 가져오고이 속성을 직접 설정하려면 사용자 지정 구성 요소를 작성해야합니까? 이 일반적인 요구 사항이 이미 준비되어 있어야하는 것 같습니다.

답변

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' 이벤트를 수신하는 것입니다. –

관련 문제