我正在尝试将材质应用于A帧中的自定义3d网格(基于Three.js),但它不起作用(即模型保留了它的原始材质)任何想法可能是什么问题?
在我的场景中,“ruban4”是从Blender出口的随机Collada模型。
<a-scene>
<a-assets>
<a-asset-item id="ruban" src="ruban4.dae">
</a-assets>
<a-collada-model
src="#ruban"
material="shader: flat; color: #93d400;"
position=" 10 10 0">
</a-collada-model>
</a-scene>
更新:似乎是特定于Collada,适用于.obj和.mtl
答案 0 :(得分:3)
Collada模型应视为黑盒子。如果要修改模型或其纹理,则应在所选的3d包中进行修改。 Collada模型通常包含多个几何,动画,纹理和映射(它们导入完整的子场景)。 aframe材料不适用,因为它无法以可预测的方式完成。哪种纹理会被替换? Aframe需要了解作者的意图。
OBJ的工作原理是因为格式描述了一个简单的几何体并且可以预测地应用材料。
答案 1 :(得分:2)
作为迭代的答案的替代方案,一旦将COLLADA模型导入场景,您可以遍历其场景图并手动修改单个部分(如果需要)。它有点黑客,但可能。
捅了一下:
myColladaEl.getObject3D('mesh');