清除WebGL画布,Three.JS

4
我正在使用three.js中的WebGLRenderer,但无法清除画布。基本上,我有一个方法,在将另一个对象添加到场景之前,会清除现有对象的子元素。例如:
group = new THREE.Object3D();

function add(object){
    group.children = [];//clears the group children first
    group.add(object);
}

我以为这会让它变得清晰,但我错了。我习惯于canvasrendering替我完成这项工作。有人知道我应该如何清除WebGL画布吗?


请查看http://threejs.org/docs/#Reference/Renderers/WebGLRenderer,寻找`.clear()`函数。 - Dragan Okanovic
我一直在使用,但无济于事。 - mjkaufer
group.remove(group.children); - IceCreamYou
1个回答

2
清除画布和清除场景图的子树是两回事。
清除画布可以通过renderer.clear()来完成,假设您的THREE.WebGLRenderer命名为renderer
清除场景图的子树可以通过group.remove.apply(group, group.children)或(在现代JavaScript中)group.remove(...group.children)来完成。不建议仅将一个新数组分配给group.children,因为这会干扰内部操作。使用group.add(object)进行添加,使用group.remove(object)进行删除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接