如果用户的浏览器不支持 WebGL,我会退回到 CanvasRenderer。出于性能原因,我希望在使用 CanvasRenderer 时仅渲染线框。但是我无法让 overrideMaterial 使用它。它可以很好地与 WebGLRendererer 一起工作,如下所示:
scene.overrideMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe: true });
在 CanvasRenderer 中,这似乎没有任何效果,使 FireFox 无法响应,因为代码对于除了最简单的模型之外的所有模型来说都太重了。
以前,我通过遍历场景几何图形并仅覆盖“真实”材质,直接用线框材质替换了所有对象材质。这种方法有效,但会使材质和对象管理变得混乱,因为我希望模型中存在材质信息,即使它们没有被渲染。
是否可以将 scene.overrideMaterial 与 CanvasRenderer 一起使用?或者其他强制线框渲染的方式?我正在使用 r54。