曲線

こんにちは。
AMDlabの藤井です。
暖かくなってきましたね^^

今回は、CGの基礎として、曲線の話です。
かなり重い話題なので、触りの紹介だけします。
正直そんなに気にしなくても、曲線の作成はできます。
ただ作りこんでいくうちに気になってくることがあるので。

そもそも曲線とは、点と点の間を補完した線のことで、その補完方法により違いがあります。
一概に曲線と言っても、モデリングにおいて用いる基本的な曲線として、パラメトリック曲線があります。
文字通り、あるパラメータを設けて、それを動かすことで曲線を作成するわけです。
多項式で定義され、少ないデータで綺麗な曲線が作れます。

パラメトリック曲線の中にも色々な曲線がありますが、まず知っておくべきは下記の3つです。
①ベジェ曲線
②Bスプライン曲線
③NURBS曲線

①ベジェ曲線
まずベジェとは開発者の名前です。
・制御点を動かすと、曲線全体に影響を与える。
・トリムやフィレット等の操作と相性があまり良くなく、デザイン検討には不向き。
・次数より1つ多い制御点で描く。
・良く使われるのは3次までで、3次のベジェ曲線をバーンスタイン曲線と呼ぶこともある。
・制御点を増やしていくと、綺麗な曲線ではなくなってしまう。
また、ベジェでは真円が描けないのです。。。
Illustratorを使っている方は、えっ!?と思うかもしれません。
実はIllustratorで書いている円は真円ではないのです。大きな円を重ねてみて、片方を45度回転させてみて下さい。
誤差の範囲ですが、ズームするとずれていることがわかると思います。

②Bスプライン曲線
スプラインとは、元々は製図道具の名称らしいです。
物理的な特長として、部材を曲げるエネルギーが最小になる曲線のことです。
BスプラインのBはBasis(基底)の頭文字です。基底関数のことですね。
・制御点を動かしても、影響を受ける範囲は、制御点近傍のみ。
・次数より1つ以上多い制御点で描く。
・2次か3次が良く用いられる。
・ベジェ曲線を表現できるが、放物線以外の2次曲線を厳密に表現できない。
Bスプライン曲線は、曲線同士が常に滑らかに繋がり、ベジェ曲線との大きな違いがここにあります。
ベジェ曲線では、セグメントの接続部分での曲率の連続性は保証されていませんが、Bスプラインでは、曲率も連続です。
だからスプラインはトリムやフィレット等の複数曲線を用いる操作との相性が良いと言えます。

③NURBS曲線
Bスプライン曲線の制御点に重みを与えたものがNURBS曲線です。
ノットの間隔が均一ではなく(Non-Uniform)、有理である(制御点に重みを持たせることができる)(Rational)なB-Splineということです。
Bスプラインよりも表現の幅が広いです。
ノットと制御点は別物で、ノットとは制御点に対する線上の点のことです。
ノットの個数が次数ではないです。
・トリムやフィレット等の操作と相性が良く、正確にモデリングが可能。
・制御点に重みを持たせることができるため、Bスプラインでは描けない2次曲線をNURBSでは正確に表現できる。
NURBSだと円弧も綺麗に描けるのです。
ちなみにAutocadのSplineコマンドは、NURBSです。モデリングソフトにおけるSplineはほぼNURBSのことと思います。

以前紹介した曲面モデリングソフトでは、
Shadeがベジェ曲線、RhinocerosがNURBS曲線で主にモデリングを行います。
Illustrator等でベジェ曲線の作成に慣れている方は、Shadeの方が曲面モデリングにとっつきやすいかもしれません。
Rhinocerosでは、ユーザーにどの曲線を使用させているか意識させず、
次数が小さければベジェ、多くなればBスプラインやNURBSになるようです。
曲線の次数は、大きくなるほど滑らかになるのですが、どこまで意味があるのかという話もあります。
私は多くても5次までで十分だと思います。簡単なものなら3次。
相当複雑なモデリングを行う場合は10次以上を使うこともあるようですが、正直実際の見た目はほとんど変わりません。

余談ですが、スプラインといえば、Tスプラインというのも良く聞くかもしれません。
Rhinocerosのプラグインでもあります。
曲面を作成するときの自由度を上げるもので、ポリゴンでいうところのサブディビジョンサーフェスみたいなものです。
縦糸と横糸で構成されたようなNURBSのUV曲面で、途中でどこかの糸を切ったとしても、曲面を維持できるような考えです。
どちらかの糸が切れているとそこがT字みたいになりますよね。
有機的な形状をより簡単に作ることができます。

話せばどんどん長くなってしまいますね。。。
さらに詳しく知りたい人は、それぞれの曲線の数式を調べてみると面白いかもしれません。

ARTICLES