Imagination PowerVR SDK Blog

tristripping in POD plugins


#1

i have a number of wf obj files that i’m outputting via maya and the POD plugin.

all the objects are made up of triangles.

one object is 86 faces and produces a series of 11 triangle strips (8 are 18 triangles long and the 3 remaining are 1, 2, and 3 triangles each respectively).  examining the object, i see no reason the short triangle strips aren’t all stripped together.  but that’s the GOOD example.

the bad example is an object that is 432 triangles which produces a series of 397 triangle strips (mostly length 1, but some length 2 and i think i saw a length 3 in there, too).

my question is, what should i expect from the triangle stripper in the POD plugin?  in the first example, clearly there is SOME triangle stripping going on.  but the second case suggests it’s not the strongest routine on the planet.  is stripping left up to the user?  are there guidelines for effective stripping that are available?  like what’s the optimum length or what’s the minimum length threshhold before a triangle mesh is better?





#2

The first case is a normal case where it tries to create strips as long as possible (up to a certain limit) and the routine caps the holes left at the end with smaller strips.





The second case looks like a case of split vertices. This could be caused by wrong normal smoothing, face mapping or a special creation of the geometry. Vertices that do not share all the data cannot be properly stripped regardless of sharing the same position.





I hope that helps.


#3

lemme see just how unshared my vertices are.  could be something silly the obj export is doing.



#4

if i export a single planar convex polygon with 12 sides, shouldn’t i expect to see a single strip as the result?  right now i’m getting 10 strips of 1 triangle each.


#5

As Gordon said, please check your geometry. Are the vertices shared between triangles?





Having the triangles in different “smooth groups” or if they have non-continuous texture-mapping across the polygons can both cause vertices to be split into multiple vertices during export as they are different per triangle.





Two triangles cannot be joined in a strip if they do not share two vertices.





If you can find no problem, please email us the “single planar convex polygon with 12 sides” file (source file, not the exported POD).





Thanks,


Aaron.






#6

I too am having problems with the TriStriper in the POD plugins. If I create a simple plane in Maya (2 triangles) and export it with Index’d TriStripping enabled I end up with two tri strips in the POD file.

I’ve written out the binary representation of the POD file and the first and last vertex are identical:

Code:

            x         y        z        u        v      rgba
Index 0: a5e6fec2 a0738242 00000000 00000000 9e03033f 00000000
Index 1: a5e6fe42 a07382c2 00000000 0000803f 00000000 00000000
Index 2: a5e6fe42 a0738242 00000000 0000803f 9e03033f 00000000
Index 3: a5e6fec2 a07382c2 00000000 00000000 00000000 00000000
Index 4: a5e6fec2 a0738242 00000000 00000000 9e03033f 00000000

Strip 1: 0 1 2
Strip 2: 3 1 4


Now I'm only exporting Vertices, Texture Coords and Colours. Does the tri stripper still check values that its not exporting (The normals seem fine though anyway)?

Thanks



#7

We’ve tried to reproduce this problem here with a similar export, but haven’t had the same trouble. Can you send us the file (to devtech@imgtec.com)? Which version of the exporter are you using and what exact settings have you applied?


#8

The second case Bike Trials looks like a case of split vertices. This could Bike Trial Seller be

caused by wrong normal smoothing, face mapping or a special creation of

the geometry. Vertices that do not share all the Bike Store data cannot be

properly stripped regardless of sharing the Bike Shop same position.





I hope that helps.