Three.js 画布渲染器中的覆盖材质

Three.js 画布渲染器中的覆盖材质,three.js,Three.js,如果用户的浏览器不支持WebGL,我将返回CanvasRenderer。出于性能原因,我希望在使用CanvasRenderer时仅使用线框渲染。然而,我无法使用它。它与WebGlrenderer的配合非常好,如下所示: scene.overrideMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe: true }); 在CanvasRenderer中,这似乎没有效果,使得FireFox没有响应,因为除了最

如果用户的浏览器不支持WebGL,我将返回CanvasRenderer。出于性能原因,我希望在使用CanvasRenderer时仅使用线框渲染。然而,我无法使用它。它与WebGlrenderer的配合非常好,如下所示:

scene.overrideMaterial =  new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe: true });  
在CanvasRenderer中,这似乎没有效果,使得FireFox没有响应,因为除了最简单的模型之外,代码对于所有模型来说都太重了

之前,我通过遍历场景几何体并只覆盖“真实”材质,将所有对象材质直接替换为线框材质。这样做很有效,但会使材质和对象管理变得混乱,因为我希望模型中存在材质信息,即使它们没有渲染


是否可以将scene.OverrideMatary与画布渲染器一起使用?还是以其他方式强制线框渲染?我正在使用r54。

否,
CanvasRenderer
不支持
场景。重写材质
。我想你已经用尽了你的选择

我会小心使用
MeshBasicMaterial
作为覆盖。仅当场景仅包含网格(例如,没有线)时才执行此操作


three.js r.54

这就解释了,谢谢:我可以解决这个问题,这只是相当多的工作和更复杂的问题。另一方面,如果我在代码中手动实现覆盖,我可以避免MeshBasicMaterial的任何潜在问题(我现在只有网格,但将来可能还有线条和其他东西)。