如何在 aframe-v1.1.0.min 中使用 collada 模型

Posted

技术标签:

【中文标题】如何在 aframe-v1.1.0.min 中使用 collada 模型【英文标题】:How to use a collada model with aframe-v1.1.0.min 【发布时间】:2021-05-17 15:40:27 【问题描述】:

自 2018 年以来,我一直在使用 a-frame 向我工作的导演展示我的场景图。我为我的对象使用了 colladas 文件,一切都很好,我的纹理 如我所愿。但是自从 webxr (aframe-v1.1.0.min) 出现后就不能再使用了 collada 我已经尝试过 Gltf 文件,但它太重且不能令人满意。所以我想知道如何将 collada 放回 a-frame scipts。我试过:“collada-model-legacy.js” 在另一个文件夹中使用“ColladaLoader.js”,但它不起作用。你有解决方案吗? 谢谢

【问题讨论】:

glTF 现在是推荐的格式。您可以使用github.com/KhronosGroup/COLLADA2GLTF 轻松转换 感谢您的回答,但 collada 对我来说不仅仅是一种格式,它在图形和艺术上更有趣,特别是对于颜色和材料的亚光面,我不需要动画。 gltf太重太亮而且有很多锯齿(即使启用了抗锯齿)我真的很想保留collada,真的没有办法吗???提前谢谢你 COLLADA 不适合实时应用程序,而是 3D 应用程序的交换格式。 glTF 旨在快速解析引擎的负载。与 2D 图像的类比是 COLLADA 是 PSD 而 glTF 是 PNG。 glTF 应该比 COLLADA 更轻。 glTF 没有规定锯齿和亮度。也许您加载模型或照亮场景的方式会影响模型的外观。值得为这些问题打开单独的问题。祝你好运 谢谢。我理解,你可能是对的,但让我坚持。我用 collada 开发了很长时间的工作流程,现在它是垃圾。 Collada 对我来说已经足够了,我想保留它。请给我一种继续使用 webxr 和 a-frame 的方法。提前谢谢你 【参考方案1】:

您可以使用 three.js 存储库中的任何加载器 - 也可以使用 ColladaLoader。

您可以创建一个包装器组件,该组件将使用threejs loader并将模型添加到场景中:

AFRAME.registerComponent("foo", 
  init: function() 
    const el = this.el;
    // create a loader
    const loader = new THREE.ColladaLoader();
    // load the model
    loader.load("MODEL_URL", function(model) 
      el.object3D.add(collada.scene);
    )
  
)

一个简单的例子是this component(查看静态和动画collada模型here)

【讨论】:

谢谢,非常感谢。我将能够继续使用 collada 与美妙的 a 框架,但这不会阻止我继续探索承诺的 gltf 格式。再次感谢...

以上是关于如何在 aframe-v1.1.0.min 中使用 collada 模型的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中怎么安装angularjs

如何在你的库中使用 Spring-Data 以及如何在你的项目中使用这个库?

如何在发布管道中使用输出变量

如何在android中使用WCF服务?

如何在 Fragment l 中使用 WebView? [关闭]

如何在 Eclipse 中使用命令行