Note that there are some explanatory texts on larger screens.

plurals
  1. POFinding the bounding box (axially aligned) of a parametric range of a 3D NURBS surface
    text
    copied!<p>I'll apologize in advance in case this is obvious; I've been unable to find the right terms to put into Google. </p> <p>What I want to do is to find a bounding volume (AABB is good enough) for an arbitrary parametric range over a trimmed NURBS surface. For instance, (u,v) between (0.1,0.2) and (0.4,0.6). </p> <p>EDIT: If it helps, it would be fine for me if the method confined the parametric region entirely within a bounding region as defined in the paragraph below. I am interested in sub-dividing those regions. </p> <p>I got started thinking about this after reading this paragraph from this paper ( <a href="http://www.cs.utah.edu/~shirley/papers/raynurbs.pdf" rel="nofollow noreferrer">http://www.cs.utah.edu/~shirley/papers/raynurbs.pdf</a> ), which explains how to create a tree of bounding volumes with a depth relative to the degree of the surface:</p> <pre><code>The convex hull property of B-spline surfaces guarantees that the surface is contained in the convex hull of its control mesh. As a result, any convex objects which bound the mesh will bound the underlying surface. We can actually make a stronger claim; because we closed the knot intervals in the last section [made the multiplicity of the internal knots k − 1], each nonempty interval [ui; ui+1) [vj; vj+1) corresponds to a surface patch which is completely contained in the convex hull of its corresponding mesh points. Thus, if we produce bounding volumes for each of these intervals, we will have completely enclosed the surface. We form the tree by sorting the volumes according tothe axis direction which has greatest extent across the bounding volumes, splitting the data in half, and repeating the process. </code></pre> <p>Thanks! Sean</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload