gpt4 book ai didi

Three.js scene.remove vs.visible=false

转载 作者:行者123 更新时间:2023-12-04 20:38:27 25 4
gpt4 key购买 nike

如果我从场景中 remove() 一个 Object3D,它不会被渲染,但它会保留在内存中。如果我将该对象的可见属性设置为 false,它将不会被呈现,但它会保留在内存中。有什么不同?

上下文:当我有很多复杂的网格时,我遇到了性能问题。任何时候只需要一个可见。其他的通常用visible = false 隐藏。

最佳答案

好吧,不同之处在于,当您移除场景中的对象时,它会从场景中移除,即不再存在于那里的 child 之中。而当它只是设置为不可见时,它仍然保留在场景数据结构中,并且可以用于计算,例如向它旋转一些其他对象。

但是是的,渲染最终没有区别,两者都是从绘图中省略该对象的方法。

一个实际有用的区别是,如果您需要隐藏和显示大量对象,设置可见标志是快速而轻松的,而操纵场景则是一个稍微复杂一些的繁重操作。因此,暂时隐藏您知道很快会再次显示的对象,配置可见性标志并移除您可能不再带回来的对象是一个好主意,最好将其从场景中移除。或者实际上,如果您需要它进行计算,例如向它旋转某些东西(并且它本身可能会在某些层次结构中移动)。

为了真正释放内存,您需要从场景中删除对象,但也要处理它正在使用的数据,例如freeing memory in three.js

关于Three.js scene.remove vs.visible=false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909383/

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