gpt4 book ai didi

javascript - 如何在 THREE.JS 中预初始化纹理

转载 作者:行者123 更新时间:2023-11-29 19:00:49 25 4
gpt4 key购买 nike

我在开始渲染和制作对象动画之前预加载和创建 Material 纹理。
但是三个 JS 仅在对象将在相机中显示时才将纹理上传到 GPU。
因此,当新对象出现在屏幕上时,由于纹理在 GPU 上发送,动画会出现抖动。问题是如何在创建纹理期间将纹理发送到 GPU 以避免在运行时发生? enter image description here将图像加载到 GPU 需要花费大量时间。

最佳答案

我的猜测是遍历对象树,将每个对象的 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) 来强制初始化纹理。

关于javascript - 如何在 THREE.JS 中预初始化纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46970420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com