THREE.js线宽矛盾

时间:2014-09-05 10:01:40

标签: javascript three.js width line

我注意到LineBasicMaterial THREE documentation表示在Windows系统上线宽会自动设置为1并且无法更改。

另一方面,我们有very cool example from threejs.org使用相同的THREE版本(r68),其中使用Windows系统时,当鼠标悬停在其中一条线上时,线宽从1修改为5,从5修改为1现场。

所以,我的问题是,这个参数可以被修改吗?怎么做?我试着简单地将material.linewidth设置为不同的数字,但它没有效果。

2 个答案:

答案 0 :(得分:4)

您关联的示例使用支持CanvasRenderer的{​​{1}}(而不是WebGLRenderer)。然而,lineWidth必须依赖WebGL实现提供的内容。

在Windows上,Chrome和Firefox默认使用ANGLE(DirectX上的某个层),支持WebGLRenderer。但是,Windows上的Firefox可以切换到OpenGL,然后(取决于视频卡驱动程序){@ 1}} 可以支持

(Chrome有一个命令行选项可以将其切换到OpenGL模式,但这不再是支持或功能配置,它只是在启动时挂起......你不需要费心去尝试。)

答案 1 :(得分:0)

我猜那里的文档已经过时了。因为您链接的示例确实设置了:

currentIntersected.material.linewidth = 5;

其中currentIntersected instanceof THREE.LinecurrentIntersected.material instanceof THREE.LineBasicMaterial

在将值设置为5之后,如果我尝试获取它,它确实返回5,并且该行呈现为粗。即使在Windows上的IE浏览器中也是如此。

如果它对您不起作用,请您在jsfiddle中发布您的示例吗?

PS:你还记得调用渲染吗?