我正在使用三个.js中的WebGLRenderer,我无法清除画布。基本上,我有一个方法,不断向场景添加另一个对象,但在添加之前清除子项。例如
group = new THREE.Object3D();
function add(object){
group.children = [];//clears the group children first
group.add(object);
}
我认为这会让它清楚,但我错了。我习惯于为我做这件事。有谁知道我应该如何清除WebGL画布?
答案 0 :(得分:0)
清除画布和清除场景图的子树是两件事。
假设您的GC.heap_dump
被命名为.hprof
,renderer.clear()
可以清除画布。
清除场景图的子树可以通过THREE.WebGLRenderer
或(在现代JavaScript中)renderer
完成。不建议仅为group.remove.apply(group, group.children)
分配一个新数组,因为这会使内部混乱。使用group.remove(...group.children)
添加并使用group.children
删除。