Javascript 纹理更改后重新渲染/刷新三维对象

Javascript 纹理更改后重新渲染/刷新三维对象,javascript,angularjs,three.js,Javascript,Angularjs,Three.js,我正在使用three.js在我的网站上渲染一个3D框。这是在加载.dae文件时通过Collada加载程序实现的重要提示:我正在使用AngularJS,因此我的长方体场景在视图中加载,并由控制器支持。出于这个原因,我还将这篇文章标记为Angular,以防出现视图刷新或控制器更新问题 dae文件具有对其纹理文件的引用 例如: <library_images> <image id="Texture_0_png"> <init_from>./Texture_0.png

我正在使用three.js在我的网站上渲染一个3D框。这是在加载.dae文件时通过Collada加载程序实现的重要提示:我正在使用AngularJS,因此我的长方体场景在视图中加载,并由控制器支持。出于这个原因,我还将这篇文章标记为Angular,以防出现视图刷新或控制器更新问题

dae文件具有对其纹理文件的引用

例如:

<library_images>
<image id="Texture_0_png">
<init_from>./Texture_0.png</init_from>
</image>
以下是我在更改纹理后刷新纹理的代码(请注意,这需要页面刷新):

如果添加以下内容,则会出现错误:无法设置未定义的属性'needsUpdate'

box.material.needsUpdate = true;

更新2:我越是调查这个问题,包括尝试box.needsUpdate=true;在多个位置,越像缓存问题。如何让three.js查看Collada文件引用的服务器上的纹理,而不是缓存?不需要Supdate来执行此操作,或者这不是Collada加载程序的一部分。

尝试告诉three.js在替换纹理后重新加载纹理:
model.map=three.ImageUtils.loadTexture(“./texture_0.png”)这几乎可以工作,使用它我仍然需要刷新页面以使其显示,但这比手动清除缓存要好。不管怎样,都可以使用它,这样页面就不会刷新,而只刷新对象?
model.material.needsUpdate=true
和Reender,以防您还没有。我更新到three.js,以前从未重新下载过。是否有单独的调用,或者我只是将所有threejs代码包装在一个函数中,然后运行该函数以重新加载?我正在将我当前的代码添加到我原来的帖子中。对不起,我不清楚;如果不使用requestAnimationFrame连续渲染,请提供
renderer.render(摄影机、场景)设置更新标志后的调用。
$scope.refresh3D = function () {
            box.map = THREE.ImageUtils.loadTexture("https://mywebservicestorage.net/Texture_0.png");
        };
box.material.needsUpdate = true;