pip install vispy
python
import numpy as np
from vispy import app, gloo
vertex_shader = """
attribute vec2 a_position;
uniform float u_scale;
void main (void)
{
gl_Position = vec4(a_position * u_scale, 0.0, 1.0);
}
"""
fragment_shader = """
void main()
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
"""
class Canvas(app.Canvas):
def __init__(self):
app.Canvas.__init__(self, size=(400, 400), title='VisPy Canvas')
self.program = gloo.Program(vertex_shader, fragment_shader)
self.program['a_position'] = (-0.5, -0.5), (-0.5, 0.5), (0.5, -0.5), (0.5, 0.5)
self.program['u_scale'] = 1.0
def on_draw(self, event):
gloo.clear(color=True, depth=True)
self.program.draw('triangle_strip')
canvas = Canvas()
canvas.show()
app.run()
python
import numpy as np
from vispy import app, gloo
n = 100000000
x = np.random.rand(n).astype(np.float32)
y = np.random.rand(n).astype(np.float32)
vertex_shader = """
attribute vec2 a_position;
void main (void)
{
gl_Position = vec4(a_position, 0.0, 1.0);
}
"""
fragment_shader = """
void main()
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
"""
class Canvas(app.Canvas):
def __init__(self):
app.Canvas.__init__(self, size=(800, 800), title='VisPy Canvas')
self.program = gloo.Program(vertex_shader, fragment_shader)
self.program['a_position'] = np.column_stack((x, y))
def on_draw(self, event):
gloo.clear(color=True, depth=True)
self.program.draw('points')
canvas = Canvas()
canvas.show()
app.run()