放射状 NURBS

NURBS とは Non-Uniform Rational B-Spline の略です。NURBS は非常に一般的な曲線と面のクラスです。NURBS の詳細については、本書の範囲を超えていますので、『The NURBS Book, Second Edition』 (Les Piegl、Wayne Tiller 共著、Springer-Verlag、ISBN 3-540-61545-8) を参照してください。

放射状 NURBS 面は、一連の重み付けされたコントロール ポイントによって定義されます。これらのコントロール ポイントは、原点から始まり、XZ 平面上の +Y 方向に向かう 1 本の曲線を定義します。この曲線が定義されたら、Z 軸を中心に曲線を 360 度完全に回転させることで、回転像が形成されます。スプライン面と異なり、NURBS 曲線は実際には、最初と最後以外のコントロール ポイントを通りません。以下の例でこの状態を説明します。

各コントロール ポイントには正の y 座標、z 座標 (正でも負でもかまいません)、重み w があります。最初の点は常に y = 0 および z = 0 (ユーザーはこの点を変更できず、コントロール ポイント 0 として定義されている) なので、曲線は面の原点となる頂点から開始されます。それ以降の各コントロール ポイントは、1 から必要な最大数までの番号が割り当てられ、+Y 方向へ外側に向けて分布します。スプライン フィッティングで数値安定性を得るために、隣接する各コントロール ポイントの y 値の間には 1.0E-3 レンズ ユニット以上の間隔を確保する必要があります。結像光学系の設計では波面収差が重要な数値尺度になります。この方法で作成した面を使用して結像光学系を設計する場合は、コントロール ポイント 1 の z 座標をゼロに設定し、コントロール ポイント 1 の y 座標を、コントロール ポイント 2 の y 座標に対してごく小さい値に設定します (その結果、作成する曲線上で重要になる最初の点はコントロール ポイント 2 になります)。このような処理とすることにより、原点付近で面の形状に不連続性が発生して誤った波面収差が得られる可能性を排除できます。



最初は、重みはすべて 1.0 に設定します。重みを大きくするほど、曲線が実際のコントロール ポイントに近づきます。重みを小さくすると、コントロール ポイントの近くに曲線が配置されるようにする制約が緩くなります。NURBS 曲線の重みの影響については、前述の参考文献を参照してください。

定義された最後の点の y 値は、面の半径クリア アパチャーの最大値を決定します。一般的にこの値は、変数ではなく、固定値にする必要があります。曲線の定義された領域内で面と交差しない光線は、「光線ミス」エラーで終了します。

NURBS 記述の利点は、任意の形状の定義と追跡を高い信頼性で実行できることです。多項式では記述できない特異な非球面補正は、NURBS としてモデル化できます。

NURBS 記述の欠点は、光線追跡が非常に低速であることと、曲線のコントロール ポイントと重みの適切な開始値を見つけるのが非常に困難な場合があることです。

この面では、パラメータ列を使用しません。

放射状 NURBS 面のパラメータ定義

パラメータ番号 定義
13 コントロール ポイントの数。最低でも 4 つのポイントが必要で、60 個を超えることはできません。
14 コントロール ポイント 1 の y 座標
15 コントロール ポイント 1 の z 座標 (サグ)
16 コントロール ポイント 1 の w (重み) 値
3n+11 コントロール ポイント n の y 座標
3n+12 コントロール ポイント n の z 座標 (サグ)
3n+13 コントロール ポイント n の w (重み) 値

次へ :