0

如果用户的浏览器不支持 WebGL,我会退回到 CanvasRenderer。出于性能原因,我希望在使用 CanvasRenderer 时仅渲染线框。但是我无法让 overrideMaterial 使用它。它可以很好地与 WebGLRendererer 一起工作,如下所示:

scene.overrideMaterial =  new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe: true });  

在 CanvasRenderer 中,这似乎没有任何效果,使 FireFox 无法响应,因为代码对于除了最简单的模型之外的所有模型来说都太重了。

以前,我通过遍历场景几何图形并仅覆盖“真实”材质,直接用线框材质替换了所有对象材质。这种方法有效,但会使材质和对象管理变得混乱,因为我希望模型中存在材质信息,即使它们没有被渲染。

是否可以将 scene.overrideMaterial 与 CanvasRenderer 一起使用?或者其他强制线框渲染的方式?我正在使用 r54。

4

1 回答 1

0

不,CanvasRenderer不支持scene.overrideMaterial。我认为你已经用尽了你的选择。

我会小心使用MeshBasicMaterial作为替代。仅当您的场景仅包含网格时才这样做 - 例如,没有线。

三.js r.54

于 2013-01-12T04:39:27.307 回答