Collada tristripper

Hello there;

I’d like to know if there’s a Collada 1.4 tristripper around, or if I should start writing one.


The answer is sorta.

There is a tristripper in the Refinery package, but its not the same as the conditioners distributed as samples from the COLLADA DOM distrobution. It wouldn’t be that difficult to turn it into a stand alone conditioner. If you take a simple conditioner like filename_conditioner and strip out its functionality, copy and paste in what the tristripper does. A few tweeks here and there to make it compile and you’re done.

I will make an official stand alone tristripper in a few weeks. Even though it would be relatively simple I am swamped with work for SIGGRAPH.


There is a package call refinery in COLLDAD_DOM package.
The Refinery contains a conditioner called tristripper.
There is a tristripper_1.4.cpp.
The source code is written for the graphical UI that can tristrip collada files.
The refinery GUI can run in command line mode
Let me know if this is not helpful.



It is actually very helpful, except I’m not sure I get the correct results.
After running the tristripper on a mesh, here is an example of the result:

<tristrips count="494" material="Objet_drakar_OSG">
    <input offset="0" semantic="VERTEX" source="#Objet_drakars_voile_Shape-lib-vertices"/>
    <input offset="1" semantic="NORMAL" source="#Objet_drakars_voile_Shape-lib-normals"/>
    <input offset="2" semantic="TEXCOORD" source="#Objet_drakars_voile_Shape-lib-map1"/>

1 1 1 4 4 4 0 0 0 </p>

0 0 0 4 4 4 3 3 3 </p>

4 4 4 1 1 1 4 4 4 2 2 2 </p>

As you can see, the first two

elements could be a single one (believe); plus it looks like the number of strips is very high, and the number of triangles per strip is between 1 and 2.


element is a triangle strip, isn’t it?
Did I miss something?

Hello again;

My fault, I probably misunderstood the Collada schema documentation about tristrips. After manually reading the indices, it appears that a <tristrips> element contains a single tristrip; each

element describes a triangle, except those with 4 edges which look like connections between separate strips.

Actually I don’t think that’s correct. The spec describes the “count” attribute on a <tristrips> element as “The number of triangle-strip primitives.” Of the

elements inside <tristrips>, it says “Describes the vertex attributes for an arbitrary number of connected triangles.”

So I think <tristrips> contains an arbitrary number of strips (otherwise it’d be called <tristrip> probably), where each strip is specified by a

element, which can have any number of indices to form a strip of arbitrary length.

Yes. It’s possible the tri-stripper example code is less then optimal.

I’d rather think it didn’t follow the specs and I’ll probably report that.
In the example I gave,

4 4 4 1 1 1 4 4 4 2 2 2 </p> is obviously not a tristrip primitive but a connection between two strips.

do you have the original dae and conditioned dae files?
I would like to see does it make

4 4 4 1 1 1 4 4 4 2 2 2 </p>


I’ve put the original .dae file “drakar.dae” and the collada file after the tristrip “drakar-tristrip.dae” in the drakar.rar file which I’ve put here:
(click on the “free” download button below, and enter the captcha in the edit box; couldn’t find any other way to provide you the file, sorry)

I don’t know exactly which version of the tristripper in the Collada Refinery I’ve used because I couldn’t find version information, but I believe it’s about the latest (I downloaded it on July 21st, when you suggested it).

Hey izz,

We updated the tristripper and fixed the bug that was in it. We didn’t make a whole new package so the fix is only available in the SVN.

Also we would recommend getting the latest DOM from SVN because we are unsure if a bug in the DOM also contributed to the problem you reported. But it works with the most current DOM and the updated tristripper source.