gpt4 book ai didi

javascript - 使用 Three.js 进行流式绘图

转载 作者:行者123 更新时间:2023-11-29 10:46:35 25 4
gpt4 key购买 nike

我正在寻找有关在 Three.js 中正确使用对象的指导,这将使我能够从流中读取大量数据并呈现它,而无需将数据存储在内存中在整个应用程序生命周期内。

根据我的理解,在普通的 WebGL 中,这将通过 gl_drawArray 完成,但是哪个 Three.js 对象代表这种行为?

当使用 ParticleSystem 对象时,数据被放入内存,因为我需要将所有点放入 Geometry 节点,然后再将其传递给 ParticleSystem,所以我认为这不合适。

感谢您提供的任何帮助。


编辑:为了澄清,我需要读取几百万个 x,y,z 条目并将每个条目显示为空间中的一个点。我目前使用的过程是(简而言之):

var geometry = new THREE.Geometry();

while( hasMoreData ){
var vertex = new THREE.Vector3(x,y,z);
geometry.vertices.push( vertex );
}
sphere = new THREE.ParticleSystem( geometry, shaderMaterial );
scene.add(sphere);

使用这个过程,我的内存消耗增加了大约 1GB,因为数据在构建几何对象时持续存在。有没有办法从文件中读取这些数据而不使其持久存在内存中?

最佳答案

万一这个线程不会得到更多答案,我恢复的解决方案是使用 THREE.BufferGeometry 而不是 THREE.Geometry以便使用 GPU 内存。使用这种方法,GPU 使用了大约 300MB 的额外内存,这比 RAM 中使用的 1GB 更可取。

但是,我们非常欢迎其他输入,因为与其他方法相比,GPU 性能会降低 FPS。

关于javascript - 使用 Three.js 进行流式绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18534946/

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