1

これが明白な場合に備えて、事前に謝罪します。Google に入力する適切な用語が見つかりませんでした。

私がやりたいことは、トリミングされた NURBS サーフェス上の任意のパラメトリック範囲のバウンディング ボリューム (AABB で十分です) を見つけることです。たとえば、(u,v) は (0.1,0.2) と (0.4,0.6) の間です。

編集:それが役立つ場合は、以下の段落で定義されているように、メソッドがパラメトリック領域を完全に境界領域内に閉じ込めていれば問題ありません。私はそれらの地域を細分化することに興味があります。

この論文 ( http://www.cs.utah.edu/~shirley/papers/raynurbs.pdf ) のこの段落を読んだ後、私はこれについて考え始めました。表面の程度に:

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.

ありがとう!ショーン

4

1 に答える 1

1

関心のあるパラメーター範囲のみをカバーする小さな NURBS サーフェスをスライスする必要があります。あなたの例を使用すると、u パラメーターが 0.1 から 0.4 の間の領域にいることを意味します。そのパラメータのスプラインの次数を Pu とします (3 次スプラインは Pu = 3 です)。u=0.1 と u=0.4 に位置する次数 Pu のノットを取得するには、「ノット挿入」(Google 検索用語があります) を実行する必要があります。 v パラメータで同じことを行い、0.2 と 0.6 で次数 Pv のノットを取得します。ノット挿入のプロセスは、制御点の配列を変更 (および追加) します。少し簿記が必要ですが、挿入されたノット間で分離したばかりのパラメータ パッチでサーフェスを決定する control_points を見つけることができます。次に、凸状のプロパティは、サーフェスがこれらの制御点によって境界付けられていることを示します。

このような操作に使用するのが好きな NURBS リファレンスは、Les Piegl と Wayne Tiller による「The NURBS Book」です。

于 2010-02-23T17:40:10.183 に答える