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()
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()
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()))
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()
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()
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
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)
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()
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),
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
def load_program(): return pyshaders.from_string(read_file("shader04.vert"), [])