> We would probably use bounding box tree intersection rather than
> bezier patch approximations, but the ideas may be useful.

Today I go on reading papers on marching algorithms as well as using bounding 
boxes, and read the existing code in BRL-CAD. Algorithms have been implemented 
to create surface trees already (which contains a tree hierarchy of bounding 
boxes), so I think it would be much easier to implement surface-surface 
intersection in this way (compared to the marching algorithm). The first step 
is to generate two surface trees and calculate the intersections of bounding 
boxes with existing APIs, and then fitting an intersection curve using the 
method describe in the paper below (Section 6.1):
http://kingkong.me.berkeley.edu/~adarsh/Papers/TVCG09.pdf

> One concern with the subdividsion approach alone is apparently
> performance - this paper offers a hybrid approach but unfortunately I
> don't see a copy online:
> http://www.sciencedirect.com/science/article/pii/0167839687900203

> Abstractly, the idea of some sort of "hybrid" approach appeals to me,
> since that's essentially what we do with our raytracing (use the
> bounding boxes to quickly narrow down to the regions of interest, then
> do the harder calculations).

Sorry I cannot find these paper on the Internet any way, so could you please 
tell me briefly about this "hybrid" approach? Or send me a copy of this paper 
(if you have an electronic version)?

> If we can narrow down potential intersection curves to a set of
> bounding boxes that bound near-planar sub-regions of the NURBS
> surface, we may be able to identify searching techniques within those
> local, well-behaved regions that would characterize them for us.  If
> we go that route, the first step is to build routines that will
> "intelligently" identify that set of bounding boxes.  Our existing
> surface trees probably have enough information, and you might be able
> to build two surface trees for the candidate surfaces and find the
> intersecting leaf bbox sets as a first step.  Our surface tree design
> needs a re-think though, so feel free to implement your own version
> that suits the needs of this problem if the existing one isn't good
> enough.


The existing surface tree is really very useful after some tests on it. Thanks 
a lot for the information you gave me. But I don't really understand what you 
mean by "intelligently identify the bboxes". Do you mean using smart algorithms 
to speed up the calculation of the intersections? (Do not use brute force 
O(N^2) calculations, using the information in the hierarchy to reduce 
calculation). I think getting the intersections of bounding boxes would not be 
much a problem (but performance still needs to be cared about), and the next 
step is to fitting an intersection NURBS curve, as discussed in the paper 
above. Any suggestions?

> One possibility is to "build up" the missing functionality, starting
> from curve/curve - most of the papers seem to deal with Bezier curves,
> but perhaps those techniques would be adaptable to NURBS curves - for
> example,


Curve-curve intersections (as well as curve-surface intersections) can also be 
calculated using sub-division algorithms (provided the curve-tree and 
surface-tree). So my idea is to focus on the surface-surface intersections, but 
once I need curve-curve or curve-surface intersections, I can add functions to 
implement them, and call these functions.


Cheers!
Wu
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to