使用 Three.js 处理纹理

问题描述 投票:0回答:2

我正在尝试在 Three.js 中加载纹理后处理该纹理。 我用

加载它
var tex = THREE.ImageUtils.loadTexture("image.png");

显示效果很好。但当我尝试时:

tex.dispose();

我每次都会收到“Uncaught TypeError: Object [object Object] has no method 'dispose'”。

我错过了什么吗?

谢谢

javascript three.js webgl
2个回答
3
投票

应该可以。请参阅https://github.com/mrdoob/ Three.js/blob/master/src/textures/Texture.js#L83

但是,您可能使用的是旧版本的 Three.js,该版本仍然使用

deallocate()
..?


0
投票

参加这个聚会已经很晚了:)但是我在尝试在 ThreeJS 中使用texture.dispose()方法时看到了这篇文章,但没有成功。每次我更改场景中平面上的材质时,整体纹理计数都会不断增加,导致 IOS 在处理大型纹理时崩溃。答案是先处理平面材质上的漫反射、法线和粗糙度贴图,然后再设置新材质。 ` 私有静态 UpdatePlaneMaterial(材质:任意) { 让平面:any = LayingPatternViewer.scene.getObjectById(LayingPatternViewer.horizontalPlaneId);

    if (plane) {
        plane.material.map.dispose();
        plane.material.normalMap.dispose();
        plane.material.roughnessMap.dispose();
        plane.material = material;
        this.Animate();
    }
}`
© www.soinside.com 2019 - 2024. All rights reserved.