from gletools.gl import * window = pyglet.window.Window() texture = Texture(256, 256, filter=GL_LINEAR) framebuffer = Framebuffer() framebuffer.textures[0] = texture screen = Screen(0, 0, texture.width, texture.height) projection = Projection(0, 0, window.width, window.height) program = ShaderProgram( FragmentShader(''' uniform vec3 seed_vector; float nice_noise1(vec2 co){ return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453); } void main(){ gl_FragColor = vec4( nice_noise1(gl_TexCoord[0].xy * seed_vector.x), nice_noise1(gl_TexCoord[0].xy * seed_vector.y), nice_noise1(gl_TexCoord[0].xy * seed_vector.z), 0 ); }''') ) from random import random program.vars.seed_vector = [random() for _ in xrange(3)] rotation = 0.0 def quad(min=0.0, max=1.0): glBegin(GL_QUADS) glTexCoord2f(1.0, 1.0) glVertex3f(max, max, 0.0)
from contextlib import nested import pyglet from gletools import ShaderProgram, FragmentShader, Texture, Framebuffer, Projection, Screen from gletools.gl import * window = pyglet.window.Window() texture = Texture(64, 64, filter=GL_LINEAR) screen = Screen(0, 0, texture.width, texture.height) projection = Projection(0, 0, window.width, window.height) framebuffer = Framebuffer() framebuffer.textures[0] = texture program = ShaderProgram( FragmentShader(''' uniform float size; void main(){ vec4 vec = vec4(gl_FragCoord.x-size/2.0, gl_FragCoord.y-size/2.0, 0.0, 1.0) / size; gl_FragColor = (normalize(vec) + 1.0) / 2.0; }''')) program.vars.size = 64.0 rotation = 0.0 def quad(min=0.0, max=1.0): glBegin(GL_QUADS) glTexCoord2f(1.0, 1.0) glVertex3f(max, max, 0.0) glTexCoord2f(1.0, 0.0) glVertex3f(max, min, 0.0) glTexCoord2f(0.0, 0.0) glVertex3f(min, min, 0.0) glTexCoord2f(0.0, 1.0)
blur = ShaderProgram( depth_shader, FragmentShader.open('shader.frag'), ) blur.vars.width = float(window.width) blur.vars.height = float(window.height) blur.vars.texture = Sampler2D(GL_TEXTURE0) blur.vars.depthmap = Sampler2D(GL_TEXTURE1) depth = ShaderProgram( depth_shader, FragmentShader(''' varying float depth; uniform sampler2D texture; void main(){ vec4 color = texture2D(texture, gl_TexCoord[0].st); gl_FragData[0] = color; gl_FragData[1] = color; gl_FragData[2] = vec4(depth, depth, depth, 1.0); } '''), ) rotation = 0.0 def quad(left, right, top, bottom): glBegin(GL_QUADS) glTexCoord2f(1.0, 1.0) glVertex3f(right, top, 0.0) glTexCoord2f(1.0, 0.0) glVertex3f(right, bottom, 0.0)