我预先加载和创建材料纹理,然后开始渲染和动画的对象。
但三个JS上传纹理到GPU时,只有对象将在相机中显示。
因此,当新对象出现在屏幕上时,动画就会因为纹理发送到GPU上而被抓取。问题是如何在创建纹理时将纹理发送到GPU,以避免运行时的纹理?

将图像加载到GPU需要很长时间。
发布于 2017-10-27 09:58:06
我的猜测是遍历对象树,将每个对象的frustumCulled标志设置为false,调用renderer.render(scene, ...)一次,然后将标志恢复为true (或其他标志)。
function setAllCulled(obj, culled) {
obj.frustumCulled = culled;
obj.children.forEach(child => setAllCulled(child, culled));
}
setAllCulled(scene, false);
renderer.render(scene, camera);
setAllCulled(scene, true);您也可以调用renderer.setTexture2D(texture, 0)来强制初始化纹理。
https://stackoverflow.com/questions/46970420
复制相似问题