我注意到LineBasicMaterial THREE documentation表示在Windows系统上线宽会自动设置为1并且无法更改。
另一方面,我们有very cool example from threejs.org使用相同的THREE版本(r68),其中使用Windows系统时,当鼠标悬停在其中一条线上时,线宽从1修改为5,从5修改为1现场。
所以,我的问题是,这个参数可以被修改吗?怎么做?我试着简单地将material.linewidth设置为不同的数字,但它没有效果。
答案 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.Line
和currentIntersected.material instanceof THREE.LineBasicMaterial
在将值设置为5之后,如果我尝试获取它,它确实返回5,并且该行呈现为粗。即使在Windows上的IE浏览器中也是如此。
如果它对您不起作用,请您在jsfiddle中发布您的示例吗?
PS:你还记得调用渲染吗?