NURBS カーブと NURBS サーフェスは従来の製図の世界には存在していませんでした。これらはコンピュータを使った 3D モデリングのために特別に作成されました。カーブとサーフェスは 3D モデリング スペース内の輪郭線やシェイプを表します。それらは数学的に構築されています。
NURBS の数学的理論は複雑です。ここでは、NURBS の概念の一部を紹介するだけにとどめますが、これによって、これから作成するもの、また NURBS が持つ機能の意味を理解できるようになります。NURBS モデリングに関する数学的理論およびアルゴリズムの総合的な説明については、Les Piegl、Wayne Tiller 共著『The NURBS Book』(New York: Springer 社、1997 年第 2 版)を参照してください。
NURBS は Non-Uniform Rational B-Splines (不均等有理 B-スプライン)の略です。具体的には、次のとおりです。
ライン ツールなどのシェイプ ツールを使用して作成したシェイプ カーブは、ベジェ カーブです。このカーブは特別な B-スプラインです。
NURBS の不均等プロパティは重要な点を提起します。NURBS オブジェクトは数学的に生成されるので、それらが表示される 3D ジオメトリ スペースに加えてパラメータ スペースも持っています。特にノットと呼ばれる値の配列は、カーブやサーフェス上にあるコントロール頂点(CV)の影響範囲を明示します。ノットは 3D スペースでは見ることができませんし、それらを直接操作することもできません。しかし、ときにはノットの動作が NURBS オブジェクトの目に見える部分に影響します。このトピックでは、そうした場合について述べています。カーブの場合、パラメータ スペースは 1 次元です。カーブが幾何学的には 3D スペース内に存在する場合でも、位相的には単一の U 次元しか持っていません。サーフェスは U と V と呼ばれる 2 つの次元をパラメータ スペース内に持っています。
NURBS カーブおよびサーフェスは、標準のジオメトリ アファイン変換(変換)や、パース投影によっても変更しない重要なプロパティを持ちます。CV はオブジェクトをローカルに制御します。CV を移動したり、CV の重みを変更しても、近隣の CV 以外にはオブジェクトのどの部分にも影響しません([ソフト選択](Soft Selection)ロールアウトを使ってこのプロパティを無効にできます)。また、CV に接続するコントロール ラティスでサーフェスが囲まれます。これは凸型外郭アトリビュートとして知られるプロパティです。
すべてのカーブは次数を持ちます。カーブの次数はそれを表すために使用される方程式の最上位指数です。一次方程式は次数 1、二次方程式は次数 2 です。NURBS カーブは一般的に三次方程式で示され、次数は 3 です。さらに高い次数も可能ですが、通常は必要ありません。
また、カーブは連続性も持ちます。連続カーブは間断がありません。さまざまな連続性レベルがあります。角または尖点を持つカーブは C 0 連続です。つまり、そのカーブは連続していますが、尖点のところでは、微分係数が存在しません。そのような尖点を持っていなくても、その曲率が変化するカーブは、C 1 連続です。その微分係数にも連続性がありますが、二次微分係数は連続していません。中断されない、一定の曲率を持つカーブは、C 2 連続です。その微分係数は一次係数も二次係数も連続しています。
カーブの連続性のレベル:
左: C 0 。最上部に角度がついています。
中央: C 1 。半円が、その半円よりも半径の小さい半円と、最上部で結合しています。
右: C 2 。ほとんど変わりませんが、右側は半円ではなく、左側とブレンドしています。
カーブはもっと高いレベルの連続性を持つこともできます。しかし、コンピュータのモデリングでは、これらの 3 レベルで十分です。通常は、C 2 レベルの連続したカーブとこれより連続性の高いカーブは、目で見て区別できません。
連続性と次数は関連しています。次数 3 の方程式は C 2 の連続カーブを生成します。より高い次数のカーブが一般的に NURBS モデリングでは必要とされていないのは、このためです。より高い次数のカーブは計算能力面でも安定していませんので、それらの使用は推奨しません。
NURBS カーブの異なるセグメントは異なる連続性レベルを持っています。特に、複数の CV を同じ位置かたいへん近い位置に置くと、連続性レベルが減少します。2 つの同一 CV は曲率を大きくします。3 つの一致した CV はそのカーブ内に角のある尖点を作成します。NURBS カーブのこの特性は、多重度として知られています。結局、追加される 1 つまたは複数の CV はそのカーブの付近でそれぞれの影響力を結び付けます。
多重度の効果: 左側の頂点に 3 つの CV があります。右側の頂点に 2 つの CV があります。
これらの CV の 1 つを他から引き離すと、そのカーブの連続性レベルが再び増加します。多重度は CV を融合した場合にも適用されます。融合された CV は曲率を高めるか、カーブ内に尖点を作成します。CV の融合を解除して 1 つの CV を他から引き離すと、再びその効果がなくなります。
次数、連続性、多重度は、NURBS のカーブだけではなくサーフェスにも適用されます。
NURBS カーブの「リファイン」は、CV を追加するのと同じ意味です。リファインによってそのカーブのシェイプ全体を、より細かく制御できます。NURBS カーブをリファインしても、3ds Max が元の曲率を保持しています。すなわち、カーブのシェイプは変わりませんが、隣接する CV は追加した CV から遠ざかります。これは多重度のためです。近隣の CV が移動しない場合、CV を追加すると曲率が大きくなります。これを回避するには、まずカーブをリファインしてから、新規に追加した CV を変換するか、重みを調整してカーブを変更します。
NURBS カーブをリファイン
NURBS サーフェスは本質的に NURBS カーブと同じプロパティを持っています。そのプロパティは、1 次元パラメータ スペースから 2 次元に拡張されたものです。
NURBS カーブまたはサーフェスをリファインするときに、パラメータ設定を行う方がよいでしょう。パラメータ設定を行うことでパラメータ スペースが調整されるため、カーブまたはサーフェスをビューポートで編集したときに動作が良くなります。パラメータ設定には 2 種類の方法があります。
コード長のパラメータ設定では、各カーブ セグメントの長さの平方根に基づいてパラメータ スペース内のノットの間隔が決められます。
均等のパラメータ設定では、ノットの間隔が均等です。均等ノット ベクトルには、編集したときにカーブまたはサーフェスがローカルでしか変化しないという利点があります。
CV カーブおよび CV サーフェス サブオブジェクトでは、カーブまたはサーフェスを編集したとき常に自動的にパラメータ設定を行うよう選択できます。
CV カーブおよび CV サーフェスと同じように、ポイント カーブおよびポイント サーフェスを操作できます。これらのオブジェクトを制御するポイントは、そのカーブやサーフェス上に存在するように制限されています。コントロール ラティスも重みコントロールもありません。これは、より単純なインタフェースで作業がしやすくなっています。また、ポイントに基づいたオブジェクトによって、従属ポイント、すなわち制限されたポイントに基づくカーブを作図できるようになります。そしてこれらのカーブを使って従属サーフェスを作図できます。
ポイント カーブやポイント サーフェスを CV カーブや CV サーフェスに対するインタフェースとして考えることができます。完全に定義された NURBS オブジェクトのインタフェースということです。カーブやサーフェスの基礎をなす描写も、やはり CV を使って作図されます。
ポイント カーブやポイント サーフェスをそれ自体のポイントに依存するものとして考えることもできます。[カーブを変換](Convert Curve)ボタンを使ってポイント カーブやサーフェスを CV 形式に変換できます。その逆も可能です。