Javascript 如何使用gl.lineWidth()

Javascript 如何使用gl.lineWidth(),javascript,graphics,webgl,Javascript,Graphics,Webgl,其他一切都在顺利进行,界线正在划定。它似乎忽略了gl.lineWidth()调用。还有什么我需要做的吗 gl.lineWidth(17); gl.drawArrays(this.drawMode,0,totalVertices); 有没有可能我过于简化了?它可能需要知道我为哪一行指定宽度吗 gl.lineWidth()在常见的现代浏览器中不起作用。这个 相应的和关闭,因为不会修复和 WebGL规范现在定义了gl.lineWidth()没有 再更改线宽。如果你需要其他宽度的线条

其他一切都在顺利进行,界线正在划定。它似乎忽略了gl.lineWidth()调用。还有什么我需要做的吗

    gl.lineWidth(17);
    gl.drawArrays(this.drawMode,0,totalVertices);
有没有可能我过于简化了?它可能需要知道我为哪一行指定宽度吗

gl.lineWidth()
在常见的现代浏览器中不起作用。这个 相应的和关闭,因为不会修复和 WebGL规范现在定义了gl.lineWidth()没有 再更改线宽。如果你需要其他宽度的线条 比1px,考虑绘制窄条三角形。-
因为在不支持绘制宽度超过1像素的线条的窗口上。

需要注意的是,根据WebGL规范,使用
gl.lineWidth
和1.0以外的任何宽度都不能保证工作。WebGL基于OpenGL ES 2.0(WebGL2基于OpenGL ES 3.0)。说

第3.5节

支持的最大线宽必须至少为1

或者换句话说,不需要支撑宽度>1.0。OpenGL ES 2.0/WebGL1也是如此

要找出一行支持的最小和最大宽度,您应该调用
gl.getParameter(gl.ALIASED\u line\u width\u RANGE)
,它返回一个由2个数字组成的数组。第一个数字是支持的最小宽度,第二个数字是支持的最大宽度。两者都允许为1.0

因此,您确实不应该使用
gl.lineWidth
,因为您的用户可能无法获得除1.0以外的任何宽度

也就是说,有一段时间,一些实现支持线宽>1.0。这在2017年1月WebGL2发布时发生了很大变化。WebGL2,至少在Mac和Linux上是在OpenGL3.3的核心配置文件之上实现的。摘自附录E

E.2.1已弃用但仍受支持的功能 以下功能已弃用,但仍存在于核心配置文件中。 他们 可以从OpenGL的未来版本中删除,,并以兼容的方式删除 实现核心配置文件的上下文。

  • 宽线-大于1.0的线宽值将生成无效的_值错误
浏览器不会从OpenGL规范生成错误,因为OpenGL ES规范不需要错误,但是限制仍然存在,因为下面的驱动程序不支持它们


如果你想画大于1的线,你需要。

我在Firefox和Chrome上测试过,但都不起作用。WebGL规范没有改变。它总是说最小线宽和最大线宽可以是1.0。此外,WebGL的某些实现的1.0行限制不仅仅是DirectX