Hi. I just wanted to say that I found the problem. The porblem is
definitely local: it's called IDIOCY.
I forgot to call THIS function:
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
It was there all the time. I just didn't call it due to me being a
dumbass (I just forgot).
Anyways, thanks for answering. Had it not been for that I'd have
probably shelved the whole thing for a while.
Laters and, yet again, thanks.
On 2 oct, 19:47, Alejandro Castellanos
<[email protected]> wrote:
> These are actually the lines I tried after reading your post:
> -------------CODE START:
>
> import pyglet
> import math
> from pyglet.gl import *
>
> #Direct OpenGL commands to this window.
>
> window = pyglet.window.Window(200, 200);
> config = Config(double_buffer=True, depth_size=1000)
> pyglet.window.Window.__init__(window,
> config=config,
> vsync=True,
> width=window.width,
> height=window.height,
> resizable=True)
>
> -------------CODE END.
>
> The rest pretty much remains the same, the functions are pretty much
> unchanged. But alas, that does not seem to fix it. Unless I royally
> misinterpreted your post (for which I shamefully apologize) that does
> not seem to be the problem as things remain the same.
>
> I'm kinda surprised, and stumped. Do you have my exact problem when
> copying and pasting my code? 'Cause if the problem is mostly local
> then I may be royally screwed. I hope not as I was kinda jazzed at
> flexing some of my math muscle with some 3D stuff once I found my way
> around operating Opengl in pyglet.
>
> Though thanks for taking the time. It's always appreciated.
>
> On 2 oct, 19:13, Gary Herron <[email protected]> wrote:
>
> > On 10/02/2010 03:46 PM, Alejandro Castellanos wrote:
>
> > > 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.
>
> > What you describe sounds like the depth buffer isn't working. I see
> > where you enable depth testing and where you clear the depth buffer, but
> > missing is the request for a depth buffer to be allocated. If I
> > remember correctly, some implementations give you one whether or not you
> > ask for it, and some only if you explicitly ask for it. So I always
> > make it explicit. Here's a bit cut and pasted from one of my apps that
> > runs on both Windows and Linux.
>
> > config = Config(double_buffer=True, depth_size=24)
>
> > pyglet.window.Window.__init__(self,
> > config=config,
> > vsync=True,
> > width=width,
> > height=height,
> > resizable=True)
>
> > Hope that's the problem...
>
> > Gary Herron
>
> > > 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.