Возможно ли контролировать Line_Width отдельных строк в глоссарии (webgl в Python)? - PullRequest
0 голосов
/ 03 марта 2020

В VisPy с Gloo Backend, линии, нарисованные через 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;
        }
    """

1 Ответ

0 голосов
/ 03 марта 2020

Есть ли какой-нибудь способ задать ширину / толщину линии, используя цвета массива?

нет

Должен ли я изменить ГЛО или установить Line_Width с какой-нибудь командой?

Я не уверен, что это значит. Как вы упомянули, вы можете выделить строку глобально с помощью

GL.glLineWidth(width);

К сожалению, ширина линии> 1 в общем случае не поддерживается. WebGL1 spe c через OpenGL ES 2.0 spe c говорит, что максимальный требуемый размер равен 1,0. Ядро OpenGL, в котором реализованы WebGL на Linux и Ma c, говорит, что ширина линий> 1,0 устарела. Угол на Windows, под которым эмулируется OpenGL ES, также поддерживает ширину линии только 1,0. Фактически это означает, что ширина линии> 1,0 практически нигде не поддерживается

Поэтому, если вы хотите, чтобы линии> 1 пиксель, вам нужно сделать их из полигонов

...