自由曲面実現の歴史
目次
自由曲面
MIT のスティーブン・クーンズ(Steven Anson Coons)教授は、MIT の学生だった第二次世界大戦中から航空機の設計に携わり、自由な曲面を定義する方法について深く関心を持っていました。
1967年、クーンズ教授はついに、自由に定義された複数の曲線から、自由な曲面を作り出す方法を考案します。「Coons patch」と呼ばれるこの方法により、やっと「自由な曲面を作る」ための方法が明らかになります。
クーンズ教授の考えた「クーンズ曲面」は、面を細かな面の集合(パッチ)と考えて全体を定義する方法でした。しかし、クーンズ曲面では「パッチ」の定義が直観的でないために定義が難しく、パッチとパッチの間の連続性を保証しづらかったなど、少し扱いにくいところがありました。
1971年、ベジェにより「ベジェ曲面」が発表されます。クーンズパッチの手法にベジェ曲線の式を組み合わせたもので、ベジェ曲線のように、制御点の移動によって曲面の形状を変えることができます。
これは、クーンズ曲面では扱いにくかった「パッチ」の定義方法を変えたもので、連続性確保などの面ではまだ扱いにくさは残っていました。
1973年、同じように B-スプラインを使用した B-スプライン曲面が作られます。クーンズ曲面、ベジェ曲面の反省から、全体を定義する式を元に部分的なパッチを生成し、全体を構成するという方法を用いています。
最終的な曲面がパッチの集合で表される、と言う点は変わらないのですが、定義方法が違うため、パッチ間の連続性の問題はなくなりました。反面、全体の定義を優先しているため、定義できる曲面の形状に制限が出ました。
ここまでの歴史で、どのような式だとどのような問題が出るかがわかってきました。
小さなパッチを定義して組み上げていく形式では、パッチ間の連続性に問題が出ます。一方、全体定義を優先すると、形状の定義自体に制約が生じます。
全体定義を優先しながら、細かな形状指定を行いたいところでは、細かく制御点が並べられる。そんな式があれば自由に曲面を定義できそうでした。しかし、この時点ではそのような方法で曲線を描くアルゴリズムはまだ存在していません。
1979年、B-スプライン曲線が改良され、NURBS(Non-Uniform Rational B-Spline:制御点の並べ方に制約のない、重みづけパラメータを持った B-Sprine)というアルゴリズムが開発されます。
これにより、やっと念願の「自由曲面」のアルゴリズムが完成します。この方法で作られる曲面を、NURBS 曲面と呼びます。
もっとも、NURBS 曲面は非常に計算が複雑で、実用的に使用できるようになるまでには、まだコンピューターの高速化が必要でした。
NURBS を自由に…リアルタイムに操作して立体図形を作ることが可能な CAD ソフトウェアが作成されたのは、1989年のことです。(SGI:シリコングラフィックス社のワークステーション向けでした)
1958年、3D-APT III への拡張に際し、ロスが悩んでいたのは「自由な曲面を簡単に扱う方法がない」ということでした。
その答えにたどり着くまで、実に30年の時が必要だったのです。
…じゃぁ、この30年間、CAD は使い物にならなかったのか? といえば、もちろんそうではありません。
実際には、1960年代の DAC-1 のころから、CAD で「曲面」を作って設計は行われています。これらは、小さな「板」を多数使って曲面を近似したもので、ポリゴンメッシュと呼ばれます。
ロスが複雑に考えすぎていただけで、実用上はこれで十分だったかもしれません(笑)
もっとも、ロスは「言語として」形状を定義しようとしたために悩んだのです。この悩みを解消するために、もっと良い方法として CAD が作られました。
そして CAD によってデータを視覚化したためにポリゴンメッシュが使えるようになりました。ロスの悩みが無駄であったわけではありません。
ポリゴンメッシュは、NURBS などに比べてはるかに処理が簡単なため、現在でもコンピューターゲームなどに利用されています。
コンピューターグラフィックス
自由曲線も自由曲面も、APT の問題から派生して、CAD のために発達した技術でした。
しかし今では、これらの技術によって作られたものを目にしない日はありません。
あなたが使っているコンピューターは、おそらく文字を自由曲線で描いています。本を読んでいても、描かれたイラストも、活字も自由曲線で作られています。
あらゆる製品は CAD で設計され、緩やかなカーブデザインは自由曲面で設計されているでしょう。
コンピューターゲームでは自由曲面ではなくポリゴンメッシュが使われますが、設計段階では自由曲面を使い、メッシュに変換するほうが作業効率が良いのです。
自由曲面への道を拓いたクーンズ教授は、 1979年に亡くなっています。その後彼の功績をたたえ、1983年に「クーンズ賞」が設けられました。
この賞は、2年に1度、コンピューターグラフィックへの貢献を行った人に対して送られます。(CG会のノーベル賞と呼ばれます)
第1回受賞者は、クーンズ博士の教え子でもあり、「スケッチパッド」の制作者でもある、アイバン・サザーランドに送られました。
第2回受賞者は、ベジェ曲線のピエール・ベジェでした。
当ページの公開初期、NURBS 曲線の開発経緯をおぼろげに書いてあっただけで、ベジェ曲面の開発経緯が掴めていませんでした。
「おそらく NURBS より後」ということを書いていたら、それは違う、と言う指摘をいただき、再調査により NURBS やベジェ曲面の開発年代も特定できました。
指摘をくださった きしもと (@ksmakoto)さんに感謝いたします。
参考文献 | |||
Contributions to the Problem of Approximation of Equidistant Data by Analytic Functions | I. J. Schoenberg | 1946 | Quarterly of Applied Mathematics |
CADの歴史年表 | 高田金型工業株式会社 | 1998年12月 | |
サーフェイスの種類について | 高田金型工業株式会社 | 1998年12月 | |
その他、WEB上の各種ページ |