コード例 #1
0
def start():
    window = pyglet.window.Window(resizable=True)
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    batch = pyglet.graphics.Batch()

    batch.add(
        4, pyglet.gl.GL_QUADS, None,
        ("0g2f", quad(0.3, 0.4)),
        ("1g3f", RED + BLUE + GREEN + YELLOW)
    )

    batch.add(
        3, pyglet.gl.GL_TRIANGLES, None,
        ("0g2f", triangle(-0.2, 0)),
        ("1g3f", CYAN + YELLOW + PURPLE)
    )

    t = 0

    def update(dt):
        nonlocal t
        t += dt

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        batch.draw()
コード例 #2
0
def start():
    window = pyglet.window.Window(resizable=True)
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    pattern = pyglet.image.CheckerImagePattern((255, 0, 0, 255),
                                               (0, 0, 255, 255))
    tex = pattern.create_image(64, 64).get_texture()
    textured = pyglet.graphics.TextureGroup(tex)

    pattern2 = pyglet.image.CheckerImagePattern()
    tex2 = pattern2.create_image(64, 64).get_texture()
    textured2 = pyglet.graphics.TextureGroup(tex2)

    batch = pyglet.graphics.Batch()

    batch.add(4, pyglet.gl.GL_QUADS, textured, ("0g2f", quad(0.3, 0.4)),
              ("1g2f", (0, 0, 2, 0, 2, 2, 0, 2)))

    batch.add(4, pyglet.gl.GL_QUADS, textured2, ("0g2f", quad(-0.2, 0)),
              ("1g2f", (0, 0, 2, 0, 2, 2, 0, 2)))

    t = 0

    def update(dt):
        nonlocal t
        t += dt

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        batch.draw()
コード例 #3
0
    def prep_program_and_buffers(self):
        self.prog = from_string(verts='''
                #version 300 es
                precision mediump float;
                uniform mat4 Mvp;
                layout(location = 0) in vec3 in_position;
                layout(location = 1) in vec4 in_color;
                out vec4 color;
                void main() {
                    gl_Position = Mvp * vec4(in_position, 1.0);
                    color = in_color;
                }
            ''',
                                frags='''
                #version 300 es
                precision mediump float;
                uniform mat4 Mvp;
                in vec4 color;
                out vec4 f_color;
                void main() {
                    f_color = color;
                }
            ''')

        self.num_pts = 1000
        verts = np.random.random((self.num_pts, 3))
        colors = np.random.random((self.num_pts, 4))
        # MgNf = layout location M, N floats.
        self.vertex_info = pyglet.graphics.vertex_list(
            self.num_pts, ('0g3f', verts.ravel()), ('1g4f', colors.ravel()))
コード例 #4
0
def start():
    window = pyglet.window.Window(resizable=True)
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    pattern = pyglet.image.CheckerImagePattern()
    tex = pattern.create_image(64, 64).get_texture()
    textured = pyglet.graphics.TextureGroup(tex)

    batch = pyglet.graphics.Batch()

    batch.add(4, pyglet.gl.GL_QUADS, textured, ("0g2f", quad(0, 0)),
              ("1g2f", (0, 0, 2, 0, 2, 2, 0, 2)))

    t = 0

    def update(dt):
        nonlocal t
        m = glm.mat4(1)
        m = glm.rotate(m, t, (0, 0, 1))
        shader.uniforms.model = m
        t += dt

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        batch.draw()
コード例 #5
0
def start():
    window = pyglet.window.Window(resizable=True)
    pyglet.gl.glEnable(pyglet.gl.GL_DEPTH_TEST)
    pyshaders.transpose_matrices(False)
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    view = glm.lookAt(
        glm.vec3(1.2, 1.2, 1.2),
        glm.vec3(0, 0, 0),
        glm.vec3(0, 0, 1),
    )

    proj = glm.perspective(glm.radians(45), 800/600, 1, 10)

    pattern = pyglet.image.CheckerImagePattern()
    tex = pattern.create_image(64, 64).get_texture()
    textured = pyglet.graphics.TextureGroup(tex)

    batch = pyglet.graphics.Batch()

    batch.add(
        36, pyglet.gl.GL_TRIANGLES, textured,
        ("0g3f", cube(0, 0, 0)),
        ("1g2f", (0, 2, 0, 0, 2, 0, 0, 2, 2, 2, 2, 0) * 6)
    )

    t = 0

    def update(dt):
        nonlocal t
        m = glm.mat4(1)
        m = glm.rotate(m, t, (0, 0, 1))
        shader.uniforms.model = m
        shader.uniforms.view = view
        shader.uniforms.proj = proj

        t += dt

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        batch.draw()
コード例 #6
0
    def change_shader(self, shader_file):
        sf = open(shader_file)
        frag_shader = sf.read()

        self.shader_program.use()
        self.shader_program.clear()
        # del self.shader_program
        # self.shader_program = pyshaders.from_files_names(vert, shader_file)
        try:
            self.shader_program = pyshaders.from_string(
                vert_shader, frag_shader)
            self.shader_program.use()
        except pyshaders.ShaderCompilationError:
            print(f"error compiling shader {shader_file}")
            return False

        self.change_res(self.width, self.height)
        return True
コード例 #7
0
def start():
    window = pyglet.window.Window()
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    tri = pyglet.graphics.vertex_list(3, ("0g2f", triangle()),
                                      ("1g3f", (1, 0, 0, 0, 1, 0, 0, 0, 1)))

    t = 0

    def update(dt):
        nonlocal t
        t += dt

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        tri.draw(pyglet.gl.GL_TRIANGLES)
コード例 #8
0
ファイル: triangle.py プロジェクト: hpointu/opengl-playground
def start():
    window = pyglet.window.Window()
    shader = pyshaders.from_string(vert, frag)
    shader.use()

    tri = pyglet.graphics.vertex_list(3, ("v2f", triangle()))
    fps = pyglet.clock.ClockDisplay()

    t = 0

    def update(dt):
        nonlocal t
        t += dt
        shader.uniforms.color = (math.cos(t), math.sin(t), 0.5)

    pyglet.clock.schedule(update)

    @window.event()
    def on_draw():
        window.clear()
        tri.draw(pyglet.gl.GL_TRIANGLES)
        fps.draw()
コード例 #9
0
layout(location = 0)in vec2 vert;

void main()
{
  gl_Position = vec4(vert, 1, 1);
}
"""

# Window creation
window = pyglet.window.Window(visible=True,
                              width=300,
                              height=300,
                              resizable=True)

#Shader creation
shader = pyshaders.from_string(vert, frag)
shader.use()

#Triangle creation
tris = pyglet.graphics.vertex_list(
    3,
    ('v2f', (0.0, 0.95, 0.95, -0.95, -0.95, -0.95)),
)

#Uniform colors
color_map = {
    key._0: (1.0, 1.0, 1.0),
    key._1: (1.0, 0.0, 0.0),
    key._2: (0.0, 1.0, 0.0),
    key._3: (0.0, 0.0, 1.0),
    key._4: (1.0, 1.0, 0.0),
コード例 #10
0
ファイル: heightmap.py プロジェクト: Butternubbs/rat_game
    float ypos = gl_ModelViewMatrix[1].w;
    vec3 fogColor = vec3(0.005, 0.005, 0.009) * min(distToCamera, 100);
    if(depth < 0){
        fogColor = vec3(0.005*depth, 0.0025*depth, 0.001*depth) * (min(distToCamera, 100/(-depth)) + 6);
    }
    float fac = max(100 - distToCamera, 0.0)/100;
    gl_FragColor = vec4(vec3(texture2D(tex, uv))*diff*fac+fogColor, texture2D(tex, uv)[3]);
    
}
'''

thing1 = 5.0
thing2 = 5.0

try:
    program = pyshaders.from_string(vert, frag)
    entprogram = pyshaders.from_string(entvert, frag)
except pyshaders.ShaderCompilationError as e:
    print(e.logs)
print(program.uniforms)

# Function to find equation of plane. 
def equation_plane(x1, y1, z1, x2, y2, z2, x3, y3, z3):  
    a1 = x2 - x1 
    b1 = y2 - y1 
    c1 = z2 - z1 
    a2 = x3 - x1 
    b2 = y3 - y1 
    c2 = z3 - z1 
    a = b1 * c2 - b2 * c1 
    b = a2 * c1 - a1 * c2 
コード例 #11
0
def load_program():
    return pyshaders.from_string(read_file("shader04.vert"), [])