加载collada纹理时如何调用函数? (三.js)

Posted

技术标签:

【中文标题】加载collada纹理时如何调用函数? (三.js)【英文标题】:How to call a function, when collada textures were loaded? (Three.js) 【发布时间】:2012-07-24 22:22:31 【问题描述】:
loader.load( 'path/to/collada.dae', function ( collada ) 
  // This function is called, when collada were loaded.

);

但是当纹理被加载时如何调用函数呢?

【问题讨论】:

【参考方案1】:

ColladaLoader 类使用 THREE.ImageUtils 在line 3087 上加载纹理。 ImageUtils 类has the ability 用于在图片加载时提供回调,但 ColladaLoader 不使用它。

您可以通过遍历 collada 场景来寻找图像来创建解决方法。这是live demo。相关代码为:

THREE.SceneUtils.traverseHierarchy( dae.scene, function (object) 
    if (object.material && object.material.map) 
        object.material.map.image.onload = function() 
            console.log('image loaded');
            object.material.map.needsUpdate = true;
        ;
    
);

这会在加载每个纹理时将“图像加载”打印到控制台。

【讨论】:

以上是关于加载collada纹理时如何调用函数? (三.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 THREE.js 向 collada 文件 (.dae) 添加纹理?

如何在 Three.js 中用 ShaderMaterial 替换 Collada 导入的纹理?

无法使用 Three.js 加载从搅拌机导出的纹理 Collada

三个.js Collada 纹理未加载

更改 Three.js collada 对象的纹理和颜色

三JS colladaLoader 可以加载ZAE文件吗?