Rhino: 連続性と次数

複数のサーフェス間に滑らかなブレンド面を生成する必要がある場合に使用されるコマンドに、BlendSrfコマンドとBlendCrvコマンドがあります。前者は、サーフェス間に直接ブレンド面を作成。後者はサーフェスのエッジ間に、ブレンドカーブを生成し、それに沿って、2レールスイープもしくは、ネットワークサーフェスでブレンドを作成することになります。
ここで、知っておくと良い知識は、カーブ・サーフェスの次数と、連続性の概念です。


まず上図のような2本の直線間にブレンドカーブを作成してみましょう。ブレンドカーブを滑らかに接続するオプションは、接線連続(G1連続)、曲率連続(G2連続)、3次連続(G3連続)、4次連続(G4連続)の4種類があります。接線連続は図のように接線方向が参照する直線と同じ方向に合せるために、生成されるブレンドカーブの端部から2番目の制御点が直線の延長上に配置されるように、3次で4ポイントのカーブが生成されます。


曲率連続は端部から3番目の制御点が直線の延長上に配置されるように、5次6ポイントのカーブが生成されます。同様に、3次連続では、7次8ポイント、4次連続では、9次10ポイントのカーブが生成されます。


このとき、生成されたカーブと元の直線の連続性を、GConコマンドで調べてみる3次連続以上でブレンドカーブを生成してもG2連続と出ます。
では、何故、BlendCrvコマンドは、直線間でも曲率連続以上のカーブを生成しようとするのでしょうか?これは対象が直線でなく内部で曲率連続を持つ3次以上の自由曲線に対応するためと考えてよいでしょう。
曲率連続以上を保つためにはカーブ間の端部から3番目以降の制御点の位置関係を制御する必要があります。つまり対象が5次までのカーブに対応するためと考えて良いでしょう。ちなみにBlendCrvコマンドが3次、4次連続にに対応するようになったのは、Rhinoのバージョン4.0からです。
サーフェスに適用しても同様のことが言えます。

下図は、U方向が5次で、V方向がそれぞれ1,2,3,5次の次数をもつサーフェス間にBlendSrfコマンドを適用した例です。2次までのサーフェスには、接線連続面のみ作成されます。ブレンドサーフェスではサーフェス生成時に、スライダーでブレンド面の膨らみが調整出来ます。一般的に人の目は、数学的な連続性が、曲率連続になるとそれ以上、次数を上げても滑らかさの度合いの区別はつかないと言われています。また、次数を上げても連続性が数学的に保証されるだけで、視覚的に見ておかしく見えるケースも発生します。よほど特殊なケースを除いて、曲率連続まで十分でしょう。一番右のブレンド面は、5次のサーフェス間に曲率連続でブレンド面を生成した例です。

同様のブレンド面を、BlendSrfコマンドを使用せず、BlendCrvコマンドで行った場合はどうなるでしょうか?まずエッジ間にカーブを生成し、そこに”Sweep2”コマンドもしくは、”NetWorkSrf”コマンドでブレンド面を生成します。この場合、これらのコマンドオプションは、曲率連続までとなります。
特に”NetWorkSrf”コマンドは、生成するサーフェスは参照するカーブの次数によらず、全て3次で生成しますので曲率連続以上で作成することは出来ません。

モデリングを行う際に、連続性を上げれば上げるほど、形状の制御が難しくなります。例えば、下記の例は、2つのカーブ間に、それぞれ接線連続と曲率連続でブレンドカーブを生成した例ですが、コントロールされていない曲率連続よりもコントロールされた接線連続のほうが美しく見える場合があります。コマンドで制御出来る連続性はあくまで数学的な定義の連続性であって必ずしも美しい形状を造形するものではありませんので、用途に合せて使用すると良いでしょう。