曲面の3次元CG(6)リバースエンジニアリング

3D-CADで等ではもっともポピュラーな曲面です。16個のコントロールポイントと呼ばれる点を定義するだけで様々な形状を表現できる。
イメージ 1

4隅の点以外の点を動かすと曲面も引きずられて形状を変えることができるのでCADで用いられます。実際にはもっと多い制御点(コントロールポイント)を使う事で更に複雑な形状を設計できるようになる。一般にはBezierパッチとかB-Splineと呼ばれるものです。

さて、前回複雑な形状を点群から生成する方法について書きました。ところが生成されるのは陰関数曲面で一般には3D-CADでは扱えないものです。

こういった複雑な形状は3次元スキャナやデジタイザ等で機械的に数値化するというのが一般的だと思います。しかし、その場合はデータは離散化されて点群データのようになってしまいます。
イメージ 2


この点群を数学的に補間して曲面化することが出来ます。その上手い方法が陰関数として構成する方法です。
イメージ 3

しかし、この曲面は陰関数なのでCADでは扱えません。この形状のように平面と同相ならパラメータ化は単純なので一旦メッシュにしてパラメータ化することでCADで扱える曲面に変換する事が出来るはずです。

そう考えて構成しなおした曲面が次の図です。
イメージ 4

結局はコントロールポイント数を増やさなければ精度の高い再構築は出来ませんでした。
さらに、局所的にしわがよってしまっています。
上手くパッチ分割を行って複数の連続したパッチで構成すればもっと綺麗になると思うがどうやれば良いのか今のところ思いつきません。さらに、平面と同相にならない場合はどうやってパラメータ化すれば良いのかも思いつきません。まあ、アイデアとしてはうまくカットを入れて平面に展開しなおすという方法があると思いますが今度はどこをどうやってカットすると平面に展開できるのかが思いつきません。