动态改变外部加载Collada文件中的Three.js纹理

Dynamically Change Three.js texture in externally loaded Collada file

本文关键字:Three js 纹理 文件 改变 外部 加载 Collada 动态      更新时间:2023-09-26

我使用three.js collada加载器导入一个带有纹理(.png)图像的.dae文件。我需要用新的纹理覆盖。png文件,并使用画布元素创建此纹理,导出为。png格式。如果我清除缓存,它将改变纹理(我将导出的"新"。png纹理命名为与。dae文件中引用的原始。png纹理相同的文件名)。

我如何确保新的纹理被识别/渲染而不让用户清除他们的缓存?示例:用户创建了一个新的纹理,它被导出到原始纹理上,用户点击按钮渲染框后collada文件重新渲染

一旦你有一个Javascript图像对象在内存中,不管来源如何,你可以通过.image属性将它分配给你的对象的"材料"纹理。你需要让thres .js知道如何修改绑定。例如,如果您有一个名为img的新图像和一个名为mesh的网格,其典型材质为:

mesh.material.map.image = img;
mesh.material.map.needsUpdate = true;

就可以了。不需要将DOM元素以。png格式发送到磁盘,只需使用它。