将 material 应用于 A 帧中的 collada 网格
Apply material to collada mesh in A-frame
我正在尝试将 material 应用于 A 型框架中的自定义 3d 网格(基于 Three.js),但它不起作用(即模型保持原始状态 material) 知道问题出在哪里吗?
下面是我的场景,其中 "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
Collada 模型应被视为黑盒。如果你想修改模型或其纹理,你应该在你选择的 3d 包中进行。 Collada 模型通常包含多个几何体、动画、纹理和映射(它们导入一个完整的子场景)。 aframe material 不适用,因为它无法以可预测的方式完成。哪个纹理将被替换? Aframe 需要了解作者的意图。
OBJ 之所以有效,是因为该格式描述了一个简单的几何图形,并且应用 material 可以预见地完成。
提供 Diego 答案的替代方案,将 COLLADA 模型导入场景后,您可以遍历其场景图并根据需要手动修改各个部分。这有点 hacky,但可能。
四处逛逛:
myColladaEl.getObject3D('mesh');
我正在尝试将 material 应用于 A 型框架中的自定义 3d 网格(基于 Three.js),但它不起作用(即模型保持原始状态 material) 知道问题出在哪里吗?
下面是我的场景,其中 "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
Collada 模型应被视为黑盒。如果你想修改模型或其纹理,你应该在你选择的 3d 包中进行。 Collada 模型通常包含多个几何体、动画、纹理和映射(它们导入一个完整的子场景)。 aframe material 不适用,因为它无法以可预测的方式完成。哪个纹理将被替换? Aframe 需要了解作者的意图。
OBJ 之所以有效,是因为该格式描述了一个简单的几何图形,并且应用 material 可以预见地完成。
提供 Diego 答案的替代方案,将 COLLADA 模型导入场景后,您可以遍历其场景图并根据需要手动修改各个部分。这有点 hacky,但可能。
四处逛逛:
myColladaEl.getObject3D('mesh');