0

在带有gloo后端的VisPy中,通过3D坐标绘制的线条可以通过修改

GL.glLineWidth(max(width1, 1.))

一次,完全。

有没有办法使用类似颜色的数组来给出线条的宽度/厚度?我应该修改 gloo 还是可以使用某些命令设置 Line_Width?

    VERTEX_SHADER = """
        varying vec4 v_color;
        void main(void) {
            gl_Position = $transform($to_vec4($position));
            v_color = $color;
        }
    """
#            gl_LineWidth = v_color;
#        varying vec4 v_color;

    FRAGMENT_SHADER = """
        varying vec4 v_color;
        void main() {
            gl_FragColor = v_color;
        }
    """
4

1 回答 1

0

有没有办法使用类似颜色的数组来给出线条的宽度/厚度?

我应该修改 gloo 还是可以使用某些命令设置 Line_Width?

我不确定这意味着什么。就像你提到的那样,你可以在全球范围内使用

GL.glLineWidth(width);

不幸的是,通常不支持 > 1 的线宽。通过 OpenGL ES 2.0 规范的 WebGL1 规范说最大所需大小为 1.0。在 Linux 和 Mac 上实现 WebGL 的 OpenGL 核心表示不推荐使用 > 1.0 的线宽。模拟 OpenGL ES 的 Windows 上的角度也仅支持 1.0 的线宽。有效地这意味着线宽 > 1.0 几乎不受任何地方的支持

所以基本上如果你想要线条> 1像素认为你需要用多边形制作它们

于 2020-03-03T16:13:29.693 回答