【问题标题】:DAE files image texture doesn't show up in Aframe when exported from Maya从 Maya 导出时,DAE 文件图像纹理不会显示在 Aframe 中
【发布时间】:2017-11-11 02:34:15
【问题描述】:

我从 Maya 导出了一个带有图像纹理的 .dae 文件。但是当那个 .dae 文件与 Aframe 一起使用时,图像纹理不会出现,您只能看到基础材质。

我可以在 Maya 中使用什么导出器来解决这个问题?

下面是 PSD 和 Aframe 中的同一个 .dae 文件:

更新:

通过脚本将模型作为 Threejs.json 注入是可行的,但有点违背了使用 AFrame 的目的。 Screenshot

【问题讨论】:

标签: textures aframe


【解决方案1】:

我认为您添加了您的 collada (dae) 模型,如 aframe 文档中所示:

<a-scene>
  <a-assets>
    <a-asset-item id="head" src="/path/to/head.dae"></a-asset-item>
  </a-assets>
  <a-entity collada-model="#head"></a-entity>
</a-scene>

要对模型进行纹理处理,您需要:
1. 在实体的材质中引用纹理。 在&lt;a-assets&gt; 中做一个img 引用:&lt;img id="texture" src="head.jpg"&gt; 然后在你的实体中声明材料:

<a-entity collada-model="#head" material="#texture"></a-entity>


2. 将你的带有纹理的模型上传到clara.io,将其转换为json(threejs)模型,并确保json文件中的引用正确,然后在&lt;a-scene&gt;上加载模型。我通过将脚本放在已注册的 组件:

var objectLoader = new THREE.ObjectLoader();
            objectLoader.load("untitled-scene.json", function ( obj ) {
                sceneEl.object3D.add( obj );
                obj.scale.set(10,1,010);
                obj.rotation.set(0,179,0);
                obj.position.set(0,0,10);
            } );

如果问题仍然存在,请提供有关您的代码的更多信息。
注意:我经常收到 .tga 纹理,请确保它是 .png 或 .jpg,如果您不使用 tga 加载器,则 .tga 将不起作用,正如 kevinngo 解释的 here。尽管如此,如果这是一个 tga 问题,则头部将是黑色的,如链接中所述。

【讨论】:

  • 您好 Piotr,感谢您的帮助。步骤 1 无效。第2步确实有效。但这是 AFrame 的一种解决方法,所以不知道该怎么想。 =)
  • 您还可以使用 A-Frame 组件加载 three.js 模型:查看 aframe-extras 包中的 json-model 和 object-model。这是一个示例:sandbox.donmccurdy.com/animation
  • 建议 (1) 很遗憾不起作用。 material 组件有时适用于 OBJ 模型,但通常根本不适用于 3D 模型。
  • 谢谢你的提示,这意味着我很幸运:)
【解决方案2】:

当我将模型从 Cinema 4D 导出到 collada 1.5 时,它没有纹理,但是当我导出 collada 1.4 时,它在 a-frame 中出现纹理!

也许这有帮助!

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 1970-01-01
    • 2018-12-02
    • 2016-02-22
    • 2019-02-07
    • 1970-01-01
    • 2019-10-18
    • 2019-03-27
    • 2017-09-01
    相关资源
    最近更新 更多