ThreeJS .dae 不加载纹理

Posted

技术标签:

【中文标题】ThreeJS .dae 不加载纹理【英文标题】:ThreeJS .dae Not loading textures 【发布时间】:2016-03-05 13:23:22 【问题描述】:
<library_images>
    <image id="ID9">
        <init_from>
            ./textures/Seats_Lvl2b_2k.jpg
        </init_from>
    </image>

在通过 ThreeJS 网站为 Collada 提供的默认皮肤示例中,我看到这应该保存我的图像,然后 for 循环会将它们打印出来,但是它们不会显示我的 .dae 文件中的纹理,它会导致我的 DAE 文件加载在浏览器中,但没有应用纹理。

skin = collada.skins[ 0 ];

如果我打印出来:

skin = collada.dae['images'];

日志显示:

日志中的其他警告是:

THREE.MeshPhongMaterial:“漫反射”不是该材质的属性。 11: ColladaLoader.js:3020 未处理的 Sampler2D 道具:instance_image three.min.js:381 THREE.MeshPhongMaterial: 'diffuse' 不是该材质的属性。

所有图像都相对放置在服务器上。

欢迎咨询

【问题讨论】:

我通过加载将 FBX 转换为 JSON 和支持的工具来进一步实现这一点,但是图像永远不会针对 json 文件加载。我现在使用 threeJS 的 Dev 分支进行最新构建 【参考方案1】:

如果您可以分享 COLLADA 模型,您可以获得更具体的建议,但如果没有这些建议,我建议您转换为 FBX 或 glTF 并分别使用 FBXLoader 或 glTFLoader。

【讨论】:

以上是关于ThreeJS .dae 不加载纹理的主要内容,如果未能解决你的问题,请参考以下文章

Threejs - 导入 collada 模型在 Chrome Android 上看起来很有趣,纹理未正确加载

ThreeJS-纹理加载进度(十四)

ThreeJS 不显示 dae 3D 模型

如何使用threejs将fabricjs加载为obj的纹理

ThreeJS——创建纹理贴图

ThreeJS - 洗掉的纹理