Hi Matthias, Praveen,

as one of the original implementors of the NURBS support, I feel I should 
clarify some of our design decisions. :-)

On Wed, 21 Jun 2006, Matthias Stiller wrote:

>>> OpenSG has support for NURBS but it is not comparable with the 
>>> tesselators of Optimizer. The reason is that there is no real support 
>>> for topologic reconstruction (instead some rendering based concept 
>>> called fat borders has been used) which makes it completely unusable 
>>> for us and many other users I have talked to in the past, simply 
>>> because geometry is not only used for rendering, but also for 
>>> collision detection and other purposes wherenon-closed gaps can not be 
>>> tolerated.
>> Hmm... This part seems more complex to handle. I wonder how much work 
>> it would be to replicate similar functionality in OpenSG.
> Well our hope was that this functionality would have been within the 
> NURBS framework and there was some kind of topologic reconstruction in 
> early works (called sewing) but due to unknown reasons the implementors 
> choose to continue with a rendering based approach. But since it's free 
> I can't complain, can I ?

We abandoned the sewing approach mainly because no matter what methods we 
tried (and we tried some) it never worked well for all models. Usually it 
handled some models quite well and didn't work at all for other models. I 
know some people dislike the Fat Borders approach, but it works reasonably 
well for rendering. It's also used in our GPU NURBS framework which seems 
to be quite popular, despite not even having an explicit mesh. :-)

As for collision detection, I think it's actually possible to use the 
OpenSG generated meshes even though they're not crackfree, because you 
still get guaranteed geometric precision in model space (which is not 
trivial to achieve).

> In general writing a topologic reconstruction is not that easy and 
> regarding tesselation strategies there more than the one used in 
> Optimizer.

AFAIK topological reconstruction of arbitrary NURBS models is still an 
open question. I'm not an Optimizer expert by any means so feel free to 
correct me here but I don't think Optimizer's one pass/two pass 
reconstruction methods work that well in bad cases (e.g. non-manifold 
topology). Actually the description of their two pass method sounds rather 
similar to our seam-graph approach, which I know didn't work in all cases 
(and we spent a _lot_ of effort on that one).

Also AFAICS Optimizer more or less tessellates into a grid which may or 
may not be what you want, plus I really don't think it guarantees you a 
completely gapfree mesh (even inside one topology).

Anyway, if you want to tackle writing your own sewing-method, the best 
approach would probably be writing some kind of "sewing-Action". However, 
even if you have some kind of topological information this is far from 
trivial, consider e.g. two adjacent surfaces which are both trimmed on the 
joint side with differently parameterized curves: you're basically out of 
luck... (and this is not an uncommon scenario in industrial models that 
I've seen so far.)

> If OpenSG would have a tesselator comparable to the one of 
> Optimizer/Performer ... well ... killer toolkit.

I definitely agree with you on that one. :) There's a couple things in 
retrospect we should have done differently, but it's almost always the 
case with research projects I think...


Just my 0.02 euros,

        Akos


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to