0

How to combine Rational B-spline Surfaces into one or fewer? How do metrics such as tolerance, u/v degree, u/v span influence the final result, if any?

enter image description here

June Wang
  • 499
  • 2
  • 6
  • 20

1 Answers1

1

In general, there is no way to create a single rational B-spline surface as the exact merge result of the 4 input rational B-spline surfaces. So, you will have to settle with an approximation. Consequently, there is no need for this approximating surface to be rational. The approximation schemes typically are divided into two categories:

1) Given degree and number of spans in U and V directions, try to find the "best fit" surface to the 4 surfaces. Typically, the max deviation between the output surface and the input surfaces are also computed so that users will know how well this surface fit the input.

2) Given degree in U and V directions and a tolerance value, try to find the "best fit" surface to the 4 surfaces where the max deviation between the output and the input is smaller than the input tolerance value.

The 2nd approach will normally use the algorithm for the 1st approach and iterate over the number of spans in U/V direction to determine the optimum number of spans. Therefore, typically it will take a lot longer of time when compared with the 1st approach.

fang
  • 3,473
  • 1
  • 13
  • 19
  • Thanks. What can we do if the set of patches to be merged has an outer boundary of more than 4 sides, with only G0 continuity (so with angled vertices)? For instance, say that the outer boundary of the set of patches to be merged is an hexagon. How to choose the pairs of sides that will be approximated by a unique side in the new patch? – June Wang Jun 09 '20 at 11:47
  • When the input surfaces form a "region" with more than 4 outer edges, the typical way to merge them is to create a single surface that is big enough to cover the entire region, then trim the surface back to the outer edges. The final output will be a trimmed B-spline surface. This is a common problem in CAD. You can google "N-sided hole" or "N-sided surface" to gain more information. – fang Jun 09 '20 at 17:55
  • Could you please recommend some literature for the 1st approach? I found some papers in Matrix Representation to merge surfaces. – June Wang Jun 23 '20 at 16:07
  • 1
    Just google "Least Square B-spline surface fitting" and you shall find plenty of articles online. . – fang Jun 24 '20 at 01:16
  • The Least Square B-spline Surface Fitting methods I found online are mostly fitting B-splines to point clouds. Do we take points from B-spline merged then minimize the error to a new B-spline given degree and number of spans in U/V direction? Or did you mean something else? – June Wang Jul 10 '20 at 04:28
  • Yes. That is what I meant. The challenge in this approach resides in the step of figuring out the connectivity information between the points that are sampled from different surfaces that might have different u/v orientation. – fang Jul 10 '20 at 17:12
  • Thank you for clarification. What's the difference between fitting a non-rational B-spline(tensor product) surface and fitting a rational B-spline surface? I noticed that the merged surface is still rational in Alias, but most papers use non-rational B-spline to fit. – June Wang Jul 10 '20 at 17:51
  • Rational B-spline curves/surfaces are typically used only when we want to represent circular/elliptical arcs or cylindrical/spherical surfaces exactly. In the context of surface fitting, since error is inevitably introduced, fitting a non-rational or a rational B-spline does not make much difference. It is possible though that after fitting with a non-rational B-spline, the control point's weights are further adjusted to reduce the fitting error, thus producing a rational B-spline surface eventually. – fang Jul 10 '20 at 20:03
  • I think I got it mixed up. The rational B-spline surface (type 128 in .iges format) is the multivariate tensor product B-spline surface with 2 basis function. When weights are 1, it is the non-rational B-spline surface you're referring to right? – June Wang Jul 12 '20 at 06:49
  • Yes. But a B-spline surface (rational or not) is "bivariate" only, not "multivariate". – fang Jul 12 '20 at 07:13
  • Got it, thanks. Another question, do the sampled points have to be gridded? What if they're not? – June Wang Jul 13 '20 at 02:25
  • As long as you can find the parameter for every point for the LS fitting, there is no requirements for the points to be gridded. – fang Jul 13 '20 at 19:08
  • I figured out the connectivity information, but I'm lost. The parameter for ever point means their (x,y,z) -(u,v) right? If we fit those ungridded data (scattered data), what do we need the connectivity information for? – June Wang Aug 26 '20 at 06:56
  • Connectivitiy information between points i(such as requiring points to be gridded) for computing the (u,v) value for each point. As long as you have the (u, v) value for each point, you can fit those points by a B-spline surface. – fang Aug 26 '20 at 17:19
  • Do you mean we conformal map the patches(subdomain) to be merged to a common uv-domain then use the (u,v) values from there? or the (u,v) values from subdomain? – June Wang Aug 27 '20 at 01:03
  • Yes. All (u,v) values need to be based on a common uv-domain. – fang Aug 28 '20 at 19:05