首页 > 解决方案 > 在场景加载时强制纹理上传到 GPU 的最佳方法?

问题描述

我想知道在场景加载时强制将纹理上传到 GPU 的最佳方法?我已经阅读了最佳实践中的 GPU 纹理预加载部分,但我不太确定这是否需要逐个纹理和逐个元素地完成。

这里有一个旧线程在谈论它,但到目前为止似乎还没有一个圆满的结局:(

在场景加载之前从sceneEl进行遍历是否有意义,获取每个纹理并调用document.querySelector('a-scene').renderer.setTexture2D(eachTexture, 0)

谢谢

标签: aframe

解决方案


setTexture2D自 r103 起不再存在。你可以改用这样的东西

  const forceTextureInitialization = function() {
    const material = new THREE.MeshBasicMaterial();
    const geometry = new THREE.PlaneBufferGeometry();
    const scene = new THREE.Scene();
    scene.add(new THREE.Mesh(geometry, material));
    const camera = new THREE.Camera();

    return function forceTextureInitialization(texture) {
      material.map = texture;
      renderer.render(scene, camera);
    };
  }();

推荐阅读