[osg-users] TriStripVisitor issue

Emmanuel Roche roche.emmanuel at gmail.com
Mon Nov 23 06:25:59 PST 2009


Okay,

more details on this:

the problem comes from the helper structure "VertexAttribComparitor"

in the function VertexAttribComparitor::compare(unsigned int lhs, unsigned
int rhs) we call the template array compare(unsigned int lhs, unsigned int
rhs) function, and there we just use regular comparisons:

        virtual int compare(unsigned int lhs,unsigned int rhs) const
        {
            const T& elem_lhs = (*this)[lhs];
            const T& elem_rhs = (*this)[rhs];
            if (elem_lhs<elem_rhs) return -1;
            if (elem_rhs<elem_lhs) return 1;
            return 0;
        }

here we don't take any "precision" into account at all... whereas my
vertices are given in meter units and may have a little resolution of about
0.1 millimeter !

So this implementation won't fit for my needs (and I think there is an high
chance it may not fit the needs for many other people no ?) maybe we should
add a "precision" parameter at some point, but for now I just don't have the
time to deal with this properly :-)

Cheers,
Manu.


2009/11/23 Emmanuel Roche <roche.emmanuel at gmail.com>

> Hi Robert,
>
> Actually, I've noticed that the problem doesn't come from the underlying
> tristripper library:
>
> instead, it seems that the indice array generated from my vertices is
> incorrect: I suspect that the comparison function to find if too vertices
> are the same or not is too precise in my case. Do you have a clear idea
> where this is done ? (otherwise, I will just read more code and find it...)
>
> cheers,
>
> Manu.
>
>
>
> 2009/11/23 Emmanuel Roche <roche.emmanuel at gmail.com>
>
> Actually, I also noticed that OSG v2.8.1 uses version 1.0 of the
>> tristripper library.
>>
>> As I'm quite in an hurry, I think I will re-implement my own
>> tristripvisitor with the latest version of tristripper and check if this
>> makes a difference. Will let you know what's the result of this test.
>>
>> But I believe this could really be a generic issue (it happens with all
>> the models I tested) and thus would mean many people are currently using
>> "not so well tri-stripped" geometries if they use this optimiser feature !
>> (it is the case for instance in the OSGExp export plugin for 3DS max as I've
>> noticed this issue there for the first time).
>>
>> regards,
>> Manu.
>>
>>
>>
>> 2009/11/23 Robert Osfield <robert.osfield at gmail.com>
>>
>> Hi Manu,
>>>
>>> If the tristripper doesn't connect the triangles together well then it
>>> can result on few tristrips and lots of unconnected traingles that it
>>> has to put into a single list of triangles to avoid lots of separate
>>> primitive calls.
>>>
>>> As to why your model is not being stripped well I can't say.  We've
>>> used 3rd party code to do the tri-stripping so I'm not best placed to
>>> answer the low level questions, but... the original author of the cdoe
>>> Tanguy Fautre is now an OSG user and I believe still on the list so
>>> perhaps he'll be able to chip in ;-)
>>>
>>> Robert.
>>>
>>> On Mon, Nov 23, 2009 at 11:08 AM, Emmanuel Roche
>>> <roche.emmanuel at gmail.com> wrote:
>>> > Hi everyone,
>>> >
>>> > I have a strange problem with the TryStripVisitor:
>>> >
>>> > When I use it on a model (with about 6000 triangles, described as
>>> TRIANGLES
>>> > [thus using 18000 vertices]) I get trip strip primitive sets indeed....
>>> BUT
>>> > actually I get a few TRIANGLE_STRIP primitive sets with 4 vertices in
>>> each,
>>> > and then a single big TRIANGLES primitive set with about 17950 vertices
>>> !!!!
>>> >
>>> > So, most of the model is just not stripped at all ! any idea what I
>>> could be
>>> > doing wrong ???
>>> >
>>> > Moreother, I've noticed that the geometry is then transformed as an
>>> indexed
>>> > geometry... correct me if I'm wrong but indexed geometries are slower
>>> that
>>> > simple vertices ordered arrays. If there a way to switch this or am I
>>> on my
>>> > own on this ?
>>> >
>>> > Regards,
>>> > Manu.
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > osg-users mailing list
>>> > osg-users at lists.openscenegraph.org
>>> >
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>> >
>>> >
>>> _______________________________________________
>>> osg-users mailing list
>>> osg-users at lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20091123/63c14230/attachment.htm>


More information about the osg-users mailing list