aframe - 在场景加载时强制纹理上传到 GPU 的最佳方法?
问题描述
我想知道在场景加载时强制将纹理上传到 GPU 的最佳方法?我已经阅读了最佳实践中的 GPU 纹理预加载部分,但我不太确定这是否需要逐个纹理和逐个元素地完成。
这里有一个旧线程在谈论它,但到目前为止似乎还没有一个圆满的结局:(
在场景加载之前从sceneEl进行遍历是否有意义,获取每个纹理并调用document.querySelector('a-scene').renderer.setTexture2D(eachTexture, 0)
?
谢谢
解决方案
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);
};
}();
推荐阅读
- laravel - 无法在 Mac OS Catalina 上全局安装 composer
- react-native - WebRTC 在 react-native (hooks), redux - 未处理的 Promise Rejections
- swift - 有条件地附加到数组
- php - 如何在 php 中回显包含 js 文件的网站页面?
- modelica - 参数化 Modelica 库和“延迟”结构参数设置的可能性 - 第 3 部分
- python - 用于显示公式的 unicode
- performance - QTableWidget resizeRowsToContents 非常慢
- postgresql - Aurora Serverless (Postgresql) - 执行语句超时 502
- android - 构造函数中带有 onClickListener 的 RecyclerView 会导致内存泄漏吗?
- ios - 快速平移视图后面的 imageView