我有一个带有许多高质量纹理的模型,并尽力降低总内存使用量。 我尝试的其中一件事是,把mipmap从GPU中删除,以释放纹理数据从共同RAM中读取。这样做时,该模型仍然使用已上传的mipmaps纹理进行渲染。所以这很好,但内存根本不下降。
material.mipmaps.length = 0;
所以我的问题是:ThreeJS所保留的mipmaps是否有参考,垃圾收集器无法释放内存。还是纹理被webGL本身引用,这似乎有点奇怪,因为webGL让我想到纹理总是在专用内存中使用,因此必须复制。如果webGL在RAM中保留对原始纹理的引用,那么在具有独立图形卡和共享公共RAM的笔记本电脑上,webGL的行为是否会有所不同。如果有人能够解释一下ThreeJS/webGL中纹理引用的情况,我将非常高兴。