from pyglet.gl import * from wfobject import * from shader import * myshader = Shader([''' #version 130 varying vec4 color; void main() { gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex; gl_TexCoord[0] = gl_Vertex; color = gl_FrontMaterial.diffuse * dot(gl_LightSource[0].position.xyz, gl_NormalMatrix*gl_Normal); } '''], [''' #version 130 in vec4 color; uniform sampler2D colorMap; void main(void) { if (texture2D(colorMap, gl_TexCoord[0].xy).r > 0.33) gl_FragColor = color; else discard; } ''']) window = pyglet.window.Window() tex = pyglet.image.load('noise.png').get_mipmapped_texture() glEnable(GL_DEPTH_TEST) glEnable(GL_LIGHTING) glEnable(GL_LIGHT0) cow = WFObject('cow.obj') @window.event def on_draw(): glClearColor(0,0,1,0) glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(-6,6,-6,6,-6,6) glMatrixMode(GL_MODELVIEW) glRotatef(1,0,1,0) glEnable(GL_TEXTURE_2D) glBindTexture(GL_TEXTURE_2D, tex.id) myshader.bind() cow.draw() myshader.unbind() @window.event def on_key_press(key,modifiers): pass def update(dt): pass pyglet.clock.schedule_interval(update,1/30.0) pyglet.app.run()