Thread: [PyOpenGL-Users] VBOs question
Brought to you by:
mcfletch
From: Duong D. <dan...@gm...> - 2010-05-14 17:44:05
|
Hi there, I'm rendering a scene consisting of multiple VBO objects. I basically did the following in my callback function. But only the very last object in the list shows up. Am I missing something? Any help will be greatly appreciated!! Thanks, D class vboObjects: def __init__(arg): self.vertex_vboId self.normal_vboId self.index_vboId self.count ....generate ids, register data into OpenGL def updatePositionsInScene(): ..... def GLcallBack(): update positions of all vbo objects for all vbo objects: glPushMatrix() glTranslatef(new position) glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_INDEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo.vertex_vboId); glVertexPointer( 3, GL_FLOAT, 0, None ); glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo.normal_vboId); glNormalPointer(GL_FLOAT, 0,None); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, vbo.index_vboId); glColorPointer(3,GL_FLOAT, 0, None); glDrawElements(GL_TRIANGLES, vbo.count, GL_UNSIGNED_SHORT, None); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_INDEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); glPopMatrix() glutSwapBuffers() return True |
From: Ian M. <geo...@gm...> - 2010-05-14 20:36:27
|
Hi, This code looks fine to me. Someone else had this exact same problem, and the issue turned out to be that glClear(...) was being called every time an object was drawn--just in case, have you done anything of that sort in your source? Ian |
From: Duong D. <dan...@gm...> - 2010-05-15 15:45:56
|
Hi again, I actually tried the same code on other distros (Ubuntu with Intel GPU and Gentoo with ATI GPU), my scene was rendered fine there. Only on the first one (Fedora 12, Nvidia Quadro FX580, proprietary drivers), that I had the problem. Is there any known distro/graphics card specific issues? Thanks again! D On Fri, May 14, 2010 at 10:36 PM, Ian Mallett <geo...@gm...> wrote: > Hi, > > This code looks fine to me. > > Someone else had this exact same problem, and the issue turned out to be > that glClear(...) was being called every time an object was drawn--just in > case, have you done anything of that sort in your source? > > Ian > |
From: Duong D. <dan...@gm...> - 2010-05-17 11:07:19
|
Well, the problem turned out to be not related with OpenGL . It's was a math library that produces different result on Fedora (I dont' know how), I ended up with doing something like glTranslatef(nan,nan,nan) glRotate(0.0,nan,nan,nan) If only pyopengl or OpenGL raise an error or at least a warning on that :( On Sat, May 15, 2010 at 5:45 PM, Duong Dang <dan...@gm...> wrote: > Hi again, > > I actually tried the same code on other distros (Ubuntu with Intel GPU and > Gentoo with ATI GPU), my scene was rendered fine there. > > Only on the first one (Fedora 12, Nvidia Quadro FX580, proprietary > drivers), that I had the problem. Is there any known distro/graphics card > specific issues? Thanks again! > > D > > > On Fri, May 14, 2010 at 10:36 PM, Ian Mallett <geo...@gm...>wrote: > >> Hi, >> >> This code looks fine to me. >> >> Someone else had this exact same problem, and the issue turned out to be >> that glClear(...) was being called every time an object was drawn--just in >> case, have you done anything of that sort in your source? >> >> Ian >> > > |
From: Alejandro S. <as...@gm...> - 2010-05-17 16:04:15
|
Hello Duong, On Mon, May 17, 2010 at 8:07 AM, Duong Dang <dan...@gm...> wrote: > Well, the problem turned out to be not related with OpenGL . > > It's was a math library that produces different result on Fedora (I dont' > know how), I ended up with doing something like > > glTranslatef(nan,nan,nan) > glRotate(0.0,nan,nan,nan) > > If only pyopengl or OpenGL raise an error or at least a warning on that :( > > This might be slightly off-topic for this list, but could this be related to the GCC version differences? I find it very strange to believe that some code that works fine when compiled and ran under Ubuntu produces nan's when compiled and ran under Fedora... Alternatively, are you recompiling for each platform or producing an static binary and moving it from one platform to the other. Alejandro.- > > On Sat, May 15, 2010 at 5:45 PM, Duong Dang <dan...@gm...> wrote: > >> Hi again, >> >> I actually tried the same code on other distros (Ubuntu with Intel GPU and >> Gentoo with ATI GPU), my scene was rendered fine there. >> >> Only on the first one (Fedora 12, Nvidia Quadro FX580, proprietary >> drivers), that I had the problem. Is there any known distro/graphics card >> specific issues? Thanks again! >> >> D >> >> >> On Fri, May 14, 2010 at 10:36 PM, Ian Mallett <geo...@gm...>wrote: >> >>> Hi, >>> >>> This code looks fine to me. >>> >>> Someone else had this exact same problem, and the issue turned out to be >>> that glClear(...) was being called every time an object was drawn--just in >>> case, have you done anything of that sort in your source? >>> >>> Ian >>> >> >> > > > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > PyOpenGL Homepage > http://pyopengl.sourceforge.net > _______________________________________________ > PyOpenGL-Users mailing list > PyO...@li... > https://lists.sourceforge.net/lists/listinfo/pyopengl-users > > -- Alejandro Segovia Azapian Director, Algorithmia: Visualization & Acceleration http://web.algorithmia.net |