Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pyglet
- from pyglet.gl import *
- from OpenGL.GL.shaders import *
- t = pyglet.window.Window(height=500, width=500, caption="Oi")
- glEnable(GL_DEPTH_TEST)
- glEnable(GL_LIGHTING)
- glEnable(GL_LIGHT0)
- rodar = 0
- v = b"""
- #version 330 core
- layout (location = 0) in vec3 aPos;
- out vec4 vertexColor;
- void main()
- {
- gl_Position = vec4(aPos, 1.0);
- vertexColor = vec4(0.5, 0.0, 0.0, 1.0);
- }
- """
- f = b"""
- #version 330 core
- out vec4 FragColor;
- in vec4 vertexColor;
- void main()
- {
- FragColor = vertexColor;
- }
- """
- shader = compileProgram(compileShader(v, GL_VERTEX_SHADER),compileShader(f, GL_FRAGMENT_SHADER))
- @t.event
- def on_draw():
- global rodar
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
- glMatrixMode(GL_PROJECTION)
- glLoadIdentity()
- gluPerspective(45, 1, 0.1, 2000)
- glMatrixMode(GL_MODELVIEW)
- glLoadIdentity()
- gluLookAt(0,0,25,0,0,-1,0,1,0)
- glPushMatrix()
- glLightfv(GL_LIGHT0, GL_AMBIENT, (GLfloat*4)(.4,.4,.4,1))
- glLightfv(GL_LIGHT0, GL_DIFFUSE, (GLfloat*4)(1,0,0,1))
- glLightfv(GL_LIGHT0, GL_SPECULAR, (GLfloat*4)(0,0,0,1))
- glLightfv(GL_LIGHT0, GL_POSITION, (GLfloat*4)(50,0,0,1))
- glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, (GLfloat*3)(-40,0,0))
- glPopMatrix()
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (GLfloat*4)(.6,.1,.1,1))
- glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (GLfloat*4)(.7,.7,.7,1))
- glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, (GLfloat*1)(1))
- # shader
- glUseProgram(shader)
- # cubo
- rodar+=1
- glPushMatrix()
- glRotatef(rodar, .8, .5, 0)
- glBegin(GL_POLYGON)
- glNormal3f(0,1,0)
- glVertex3f(2,2,2)
- glVertex3f(2,2,-2)
- glVertex3f(-2,2,-2)
- glVertex3f(-2,2,2)
- glEnd()
- glBegin(GL_POLYGON)
- glNormal3f(0,-1,0)
- glVertex3f(2,-2,2)
- glVertex3f(2,-2,-2)
- glVertex3f(-2,-2,-2)
- glVertex3f(-2,-2,2)
- glEnd()
- glBegin(GL_POLYGON)
- glNormal3f(1,0,0)
- glVertex3f(2,-2,2)
- glVertex3f(2,-2,-2)
- glVertex3f(2,2,-2)
- glVertex3f(2,2,2)
- glEnd()
- glBegin(GL_POLYGON)
- glNormal3f(-1,0,0)
- glVertex3f(-2,-2,2)
- glVertex3f(-2,-2,-2)
- glVertex3f(-2,2,-2)
- glVertex3f(-2,2,2)
- glEnd()
- glBegin(GL_POLYGON)
- glNormal3f(0,0,1)
- glVertex3f(2,-2,2)
- glVertex3f(-2,-2,2)
- glVertex3f(-2,2,2)
- glVertex3f(2,2,2)
- glEnd()
- glBegin(GL_POLYGON)
- glNormal3f(0,0,-1)
- glVertex3f(2,-2,-2)
- glVertex3f(-2,-2,-2)
- glVertex3f(-2,2,-2)
- glVertex3f(2,2,-2)
- glEnd()
- glPopMatrix()
- # parede do lado
- glBegin(GL_POLYGON)
- glNormal3f(1,0,0)
- glVertex3f(-5,-6,6)
- glVertex3f(-5,-6,-6)
- glVertex3f(-5,6,-6)
- glVertex3f(-5,6,6)
- glEnd()
- def SRO(dt):
- on_draw()
- pyglet.clock.schedule_interval(SRO, 1/60)
- pyglet.app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement