Thanks for the reply =) I've "solved" my problem by bypassing it. MD2 stores vertex data in 2 formats. -The first in a straight vertex lists -The second an "optimised opengl command list".
The optimised OGL command list was "optimised" back then. MD2 is from Quake 2, so ~1998. Which is when I had a Monster 3D voodoo 1 with 4mb VRam =P. This is old thinking and the state changes that are caused by constantly switching between GL_FAN and GL_TRIANGLES are far slower than just throwing vertices at the graphics card. So I "solved" my problem by just using the straight vertex lists. That said, if anyone has any info on how to use shared vertex data with multiple sets of indicies, I'd love to hear it because I'm sure I'll run into this problem down the track again. Cheers, Adam On Apr 15, 5:26 am, Nathan <[email protected]> wrote: > I would love to answer your question. Unfortunately I'm an OpenGL newbie > and don't know the answer(s). Thought I'd just let you know that at least > someone is reading. :-) > > Have you considered reading the Pyglet source code to see what it is doing > in VertexList, IndexedVertexList, and Batch to see if you could get your > answer that way? > > ~ Nathan > > > > > > > > On Saturday, March 31, 2012, AdamGriffiths wrote: > > bump? > > > On Mar 25, 4:18 pm, AdamGriffiths > > <[email protected]<javascript:;>> > > wrote: > > > Hi all, > > > > I'm working on a python framework that sits ontop of pyglet. > >https://github.com/adamlwgriffiths/PyGLy > > > > My modern opengl knowledge is limited and I'm trying to find the best > > > way to render meshes. The best example of what I'm working on > > > optimising is my implementation of Wavefront OBJ meshes. > > > > My current implementation uses a single display list and simply makes > > > opengl calls (glVertex3f, etc). > >https://github.com/adamlwgriffiths/PyGLy/blob/master/pygly/mesh/obj_m... > > > > This works and is flexible, but the number of calls from python -> c/ > > > opengl causes the load time to increase. > > > My MD2 loader parses the MD2 file almost instantly, but pushing into > > > OGL takes around 10 seconds using the same method as my OBJ > > > implementation. > > > > It looks like the obvious optimisation would be to batch up the > > > vertices into a VertexList / IndexedVertexList with the appropriate > > > format specified and do a few pyglet / opengl calls rather than the > > > hundreds that I'm doing currently. > > > > My problem comes with the usage of multiple groups of primitives > > > within the 1 set of vertices. Ie, multiple tri fans would share > > > vertices. > > > I'm not sure how to create multiple lists of indices without > > > duplicating the vertices. > > > As most of the tri fan groups have only about 3 - 5 vertices, this > > > would be a massive waste. > > > > Even better would be to use Pyglet's Batch, that way different index > > > groups can use different textures, which I will have to do to support > > > the OBJ format properly. > > > > So my questions are: > > > Can I specify multiple groups of indices in an IndexedVertexList? If > > > so, how? > > > Can I do this with a Pyglet Batch object? If so, how? > > > > Hope my question makes sense. Apologise if this is an obvious > > > question, but I'm very much 'example driven' and I'm having trouble > > > finding one that matches my problem. > > > Thanks for your time and help =) > > > > Cheers, > > > Adam > > > -- > > 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]<javascript:;> > > . > > To unsubscribe from this group, send email to > > [email protected] <javascript:;>. > > For more options, visit this group at > >http://groups.google.com/group/pyglet-users?hl=en. -- 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.
