1
在A型框中啓用添加劑混合的最簡單方法是什麼?我看到THREE.MeshStandardMaterial
有一個blending
屬性,看起來像我所需要的,但它不會被A-Frame material
組件暴露。如何啓用A幀中的添加劑混合?
我是否必須編寫自定義組件來獲取實體的材質並自己設置此屬性?似乎這個共同的要求應該已經被照顧到了?
在A型框中啓用添加劑混合的最簡單方法是什麼?我看到THREE.MeshStandardMaterial
有一個blending
屬性,看起來像我所需要的,但它不會被A-Frame material
組件暴露。如何啓用A幀中的添加劑混合?
我是否必須編寫自定義組件來獲取實體的材質並自己設置此屬性?似乎這個共同的要求應該已經被照顧到了?
我繼續創造了這個我自己的混合模式組成:
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];
}
}
});
很好的解決方案!像這樣的短元件通常是我所做的,但也許值得PR支持'blending'選項。還要注意,如果實體不*已經有一個'material'組件,那麼這個'dependencies'條目將會添加它(如我認爲的A-Frame 0.5.0)。 –
圍繞它的一種方法是'el.getObject3D('mesh')。material',或者偵聽'object3dset'事件以知道網格何時從模型中加載。 –