Hi, I've been away from Pyglet for a while and now that time allows
I'm back again, trying some Opengl stuff. I've been following some
tutorials online (the NeHe ones) but I found something rather odd:

I'm trying to draw a pyramid with no base and I make it spin around
the Y axis, and everything seems just fine except for the fact that
the drawing of the faces seems rather odd, appearing superimposed over
each other, from the last one to the first one. The pyramid spins just
fine but it all just looks weird.

I've tried drawing the individual faces individually, and then they
seem just fine. Everything goes out the window when I try to draw them
all in the same scene, though.

The faces have different colors so maybe that's it, but the problem is
that I can't see where I'm going wrong.

Code is Below:

---------------------------------------------------------------------------
CODE START:

import pyglet
import math
from pyglet.gl import *

#Direct OpenGL commands to this window.
#window = pyglet.window.Window(resizable=True)
window = pyglet.window.Window(200, 200, resizable=True);

def ReSizeGLScene(width, height):
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0,width/height,0.1,100.0);
    glMatrixMode(GL_MODELVIEW);

def InitGL():
    glShadeModel(GL_SMOOTH);
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClearDepth(1.0);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    return True

def PyramidExmpl():
    glBegin(GL_TRIANGLES);#Drawing using triangles
    #DRAWING FRONT FACE.
    glColor3f(1.0,0.0,0.0);#---------------------------RED
    glVertex3f(0.0,1.0,0.0);#Top
    glVertex3f(-1.0,-1.0,1.0);#Bottom Left
    glVertex3f(1.0,-1.0,1.0);#Bottom Right
    #DRAWING RIGHT FACE.
    glColor3f(0.0,0.0,1.0);#---------------------------BLUE
    glVertex3f(0.0,1.0, 0.0);#Top
    glVertex3f(1.0,-1.0,1.0);#Bottom Left
    glVertex3f(1.0,-1.0,-1.0);#Bottom Right
    #DRAWING BACK FACE.
    glColor3f(0.0,1.0,0.0);#---------------------------GREEN
    glVertex3f(0.0,1.0,0.0);#Top
    glVertex3f(1.0,-1.0,-1.0);#Bottom Left
    glVertex3f(-1.0,-1.0,-1.0);#Bottom Right
    #DRAWING LEFT FACE.
    glColor3f(1.0,1.0,0.0);#---------------------------YELLOW
    glVertex3f(0.0,1.0,0.0);#Top
    glVertex3f(-1.0,-1.0,-1.0);#Bottom Left
    glVertex3f(-1.0,-1.0,1.0);#Bottom Right
    glEnd();#Finished Drawing The Pyramid

#----------------------------------
#----------------------------------

class Rots(object):
    def __init__(self):
        self.tri = 0
        self.quad = 0

def DrawGLScene(rtri,rquad):
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);#Clear The
Screen And The Depth Buffer

    glLoadIdentity();#Reset The Current Modelview Matrix
    glTranslatef(-1.5,0.0,-6.0);        #Move Left 1.5 Units And Into The
Screen 6.0.
    glRotatef(rtri,0.0,1.0,0.0);#Rotate The Triangle On The Y axis
( NEW )
    PyramidExmpl()

"Defino un objeto que guarda unas variables r.tri y r.quad"
"para que puedan ser accesadas desde adentro de una funcion."
#----------------------------------Definiendo mis variables globales.
r=Rots()#En este objeto guardo los valores de mis variables globales.
r.tri=0.0
r.quad=0.0
#----------------------------------
def sumadorangulos(dt):#Es la funcion que se encarga de sumarles
valores.
    r.tri = r.tri+2.0
    if r.tri >= 360:
        r.tri=0

@window.event
def on_draw():
    DrawGLScene(r.tri,r.quad)
    ReSizeGLScene(window.width, window.height)

pyglet.clock.schedule_interval(sumadorangulos, 1.0/60.0)#lo que hecha
a andar el sumador.

pyglet.app.run()
---------------------------------------------------------------------------
CODE END.

Sadly I can't really tell where my mistake is.

Anyways, any help would be greatly appreciated. Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.

Reply via email to