[osg-users] TriStripVisitor issue
roche.emmanuel at gmail.com
Mon Nov 23 06:25:59 PST 2009
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;
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 :-)
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...)
> 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).
>> 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 ;-)
>>> 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
>>> > [thus using 18000 vertices]) I get trip strip primitive sets indeed....
>>> > actually I get a few TRIANGLE_STRIP primitive sets with 4 vertices in
>>> > 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
>>> > geometry... correct me if I'm wrong but indexed geometries are slower
>>> > 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
>>> osg-users mailing list
>>> osg-users at lists.openscenegraph.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the osg-users