(57)【特許請求の範囲】
【請求項１】
空間上に配置された複数の断面を補間してスキニング立体形状を生成することができる３次元形状処理装置において、空間上に配置された複数の断面のそれぞれを構成する曲線を分割する曲線分割手段と、分割されたそれぞれの曲線について各断面間で対応関係にある頂点ノードを求める対応ノード決定手段と、各同一断面内の前記頂点ノード間の曲線を所定の許容誤差範囲内で近似した近似曲線を生成する近似曲線生成手段と、生成された前記複数の近似曲線から１枚の補間曲面を生成する曲面生成手段と、生成された前記補間曲面に基づいてスキニング立体形状を生成する立体形状生成手段と、を備えたことを特徴とする３次元形状処理装置。
【請求項２】
空間上に配置された複数の断面を補間してスキニング立体形状を生成するスキニング立体形状生成方法において、
コンピュータが、空間上に配置された複数の断面のそれぞれを構成する曲線を分割するステップと、分割したそれぞれの曲線について各断面間で対応関係にある頂点ノードを求めるステップと、各同一断面内の前記頂点ノード間の曲線を所定の許容誤差範囲内で近似した近似曲線を生成するステップと、生成した前記複数の近似曲線から１枚の補間曲面を生成するステップと、生成した前記補間曲面に基づいてスキニング立体形状を生成するステップと、を実行することを特徴とするスキニング立体形状生成方法。
【請求項３】
請求項２記載のスキニング立体形状生成方法において、
前記コンピュータが、生成した前記補間曲面を前記近似曲線の位置において分割するステップと、分割した補間曲面に基づいて位相を生成することによりスキニング立体形状を生成するステップと、を実行することを特徴とするスキニング立体形状生成方法。
【請求項４】
請求項２または請求項３記載のスキニング立体形状生成方法において、
前記コンピュータが、前記近似曲線を生成する際、制御点の分布が均等な近似Ｂ−スプライン曲線を生成するステップを実行することを特徴とするスキニング立体形状生成方法。
【請求項５】
請求項２または請求項３記載のスキニング立体形状生成方法において、
前記コンピュータが、前記近似曲線を各断面に亘って複数生成する際、制御点が最も多い近似曲線に合わせてその他の近似曲線を再近似するステップを実行することを特徴とするスキニング立体形状生成方法。
【請求項６】
請求項２または請求項３記載のスキニング立体形状生成方法において、
前記コンピュータが、前記補間曲面としてＢ−スプライン曲面を生成するステップを実行することを特徴とするスキニング立体形状生成方法。
【請求項７】
請求項２または請求項３記載のスキニング立体形状生成方法において、
前記コンピュータは、前記補間曲面を生成する際、Ｂ−スプライン曲面が所定値以上のノット間隔をもつ構成にしたことを特徴とするスキニング立体形状生成方法。
【請求項８】
請求項２または請求項３記載のスキニング立体形状生成方法において、
前記コンピュータは、前記補間曲面を生成する際、Ｂ−スプライン曲面の制御点の数が所定値以下である構成にしたことを特徴とするスキニング立体形状生成方法。
【請求項９】
コンピュータに、請求項２乃至請求項８のいずれかに記載のスキニング立体形状生成方法を実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元ＣＡＤ／ＣＡＭ／ＣＡＥ／ＣＧなど３次元形状処理を行なう専用の３次元形状処理装置や、パーソナルコンピュータなど情報処理装置で実施される複数の異なる断面形状を補間するスキニング方法により曲面を生成して、スキニング立体形状を生成する３次元形状処理方法に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置では、従来より、３次元立体形状を生成したり、生成されている３次元立体形状を変形させたり、その他、様々な処理を行っている。なお、３次元立体形状とは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
本発明は、このような３次元形状処理装置などにおいて従来より行われている３次元形状処理の一つである曲面生成に係わり、特に、複数の異なる断面形状を補間するスキニング（skinning）方法を用いたスキニング立体形状生成に関する。
従来、この種の技術としては、Wayne Tiller,「Rational B-Splines for Curve and Surface Representation」,IEEE CGA Vol.3,No6,September,1983,pp61-69が公知である。複数の断面を配置し、その断面を接続するための頂点対応関係を指定することによってスキニング曲面を生成するのである。しかし、前記した従来技術では滑らかなスキニング立体形状を生成するための頂点対応関係を指定することは困難であった。
そのため、そのような問題を解決するための従来技術も提案されたが、断面を構成する曲線のセグメントの数が同じでなければならないというような制限があった。
【０００３】
特開平６−３０１７５２号公報に示された従来技術は、このような問題を解決し、曲線のセグメントの数が異なっても複数の断面を一つのＮＵＲＢＳ曲面で補間してスキニング曲面を生成する。
しかしながら、複数の断面の対応する周辺曲線（断面曲線）間を前記したようにＮＵＲＢＳ曲面で補間する従来技術では、それにより生成されたＮＵＲＢＳ曲面はその曲面を表現するための制御点の数が多すぎるとか、ノット間隔が微小となる可能性があるというような問題があった。なお、複数の断面の周辺曲線間をＮＵＲＢＳ曲面で補間するのは、複数のベジェ曲面を一つの曲面として表現したＢ−スプライン曲面よりも複数の有理ベジェ曲面を一つの曲面として表現したＮＵＲＢＳ曲面の方が表現力が高いからである。また、前記において、ノット間隔とは、Ｂ−スプライン曲線およびＢ−スプライン曲面、または有理Ｂ−スプライン曲線および有理Ｂ−スプライン曲面のもつノットの内、多重ノットを１つのノットとして数えるときの各ノットの値の差分を意味する。また、ノットとは、複数のベジェ曲面を一つの曲面として表現したとき、各ベジェ曲面の区切りを表すパラメータである。
【０００４】
【発明が解決しようとする課題】
前記したように、特開平６−３０１７５２号公報などに示された従来技術においては、スキニング曲面をＮＵＲＢＳ曲面として生成しているため、その曲面を表現するための制御点の数が多すぎるとか、ノット間隔が微小となる可能性があるというような問題があった。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、断面曲線を所定の範囲内で誤差を許容してＢ−スプライン曲面で補間することにより、制御点の数が少なく、且つノット間隔が微小にならないスキニング曲面を生成してスキニング立体形状を生成することができる３次元形状処理装置及びその方法などを提供することにある。
【０００５】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、空間上に配置された複数の断面を補間してスキニング立体形状を生成することができる３次元形状処理装置において、空間上に配置された複数の断面のそれぞれを構成する曲線を分割する曲線分割手段と、分割されたそれぞれの曲線について各断面間で対応関係にある頂点ノードを求める対応ノード決定手段と、各同一断面内の前記頂点ノード間の曲線を所定の許容誤差範囲内で近似した近似曲線を生成する近似曲線生成手段と、生成されたその複数の近似曲線から１枚の補間曲面を生成する曲面生成手段と、生成された前記補間曲面に基づいてスキニング立体形状を生成する立体形状生成手段とを備えたことを特徴とする。
また、請求項２記載の発明では、空間上に配置された複数の断面を補間してスキニング立体形状を生成するスキニング立体形状生成方法において、コンピュータが、空間上に配置された複数の断面のそれぞれを構成する曲線を分割するステップと、分割したそれぞれの曲線について各断面間で対応関係にある頂点ノードを求めるステップと、各同一断面内の前記頂点ノード間の曲線を所定の許容誤差範囲内で近似した近似曲線を生成するステップと、生成した前記複数の近似曲線から１枚の補間曲面を生成するステップと、生成した前記補間曲面に基づいてスキニング立体形状を生成するステップと、を実行することを特徴とする。
また、請求項３記載の発明では、請求項２記載の発明において、請求項２記載のスキニング立体形状生成方法において、前記コンピュータが、生成した前記補間曲面を前記近似曲線の位置において分割するステップと、分割した補間曲面に基づいて位相を生成することによりスキニング立体形状を生成するステップと、を実行することを特徴とする。
【０００６】
また、請求項４記載の発明では、請求項２または請求項３記載のスキニング立体形状生成方法において、前記コンピュータが、前記近似曲線を生成する際、制御点の分布が均等な近似Ｂ−スプライン曲線を生成するステップを実行することを特徴とする。
また、請求項５記載の発明では、請求項２または請求項３記載のスキニング立体形状生成方法において、前記コンピュータが、前記近似曲線を各断面に亘って複数生成する際、制御点が最も多い近似曲線に合わせてその他の近似曲線を再近似するステップを実行することを特徴とする。
また、請求項６記載の発明では、請求項２または請求項３記載のスキニング立体形状生成方法において、前記コンピュータが、前記補間曲面としてＢ−スプライン曲面を生成するステップを実行することを特徴とする。
また、請求項７記載の発明では、請求項２または請求項３記載のスキニング立体形状生成方法において、前記コンピュータは、前記補間曲面を生成する際、Ｂ−スプライン曲面が所定値以上のノット間隔をもつ構成にしたことを特徴とする。
また、請求項８記載の発明では、請求項２または請求項３記載のスキニング立体形状生成方法において、前記コンピュータは、前記補間曲面を生成する際、Ｂ−スプライン曲面の制御点の数が所定値以下である構成にしたことを特徴とする。
また、請求項９記載の発明では、コンピュータに、請求項２乃至請求項８のいずれかに記載のスキニング立体形状生成方法を実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体を特徴とする。
【０００７】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明が実施される３次元形状処理装置のハードウェア構成図である。図示したように、この実施例の３次元形状処理装置は、表示装置に表示された複数の断面形状のなかから操作対象の断面形状を指定したりするマウスやデータを入力するキーボードなど入力装置１、記憶されている３次元形状データに基づいて断面形状など３次元形状を出力する、表示装置やプリンタなど出力装置２、プログラムに従って本発明に係わる３次元形状処理を実行したり３次元形状処理装置全体を制御したりするＣＰＵ３、前記プログラムや各種データを一時的に記憶するメモリ（例えばＲＡＭ）４、設計対象物などの形状を表現した複数の３次元形状データや前記プログラムを記憶しておく記憶装置（例えばハードディスク装置）５、前記プログラムや３次元形状データなどを記憶した記憶媒体からそれらを読み込む媒体駆動装置６などを備えている。
また、この実施例では、請求項１記載の曲線分割手段、対応ノード決定手段、近似曲線生成手段、曲面生成手段、および立体形状生成手段は、メモリ４に記憶されたプログラムとそのプログラムに従って動作するＣＰＵ３により実現される。なお、前記断面形状は、その形状を構成する点および曲線などの幾何形状データと、その幾何形状データの相関関係を示す位相データとからなっている。
【０００８】
図２は、本発明の一実施例を示す動作フロー図である。以下、図２などに従って本発明の一実施例を説明する。
まず、３次元ＣＡＤシステムなどにより生成された複数の断面曲線を移動または回転などにより空間上の所望の位置に配置した状態を表示する（Ｓ１）。そして、そのなかから、マウスなどにより操作対象となる断面曲線を利用者に選択させる（Ｓ２）。例えば、図３に示したような複数の断面曲線をマウスなどにより選択するのである。
続いて、その断面曲線を接線連続でないところでセグメントに分割する（Ｓ３）。これによって、断面が１本または複数本のＮＵＲＢＳ曲線により再構成される。図４に示した小矩形の位置が分割点、つまり複数に分割された各ＮＵＲＢＳ曲線の端点である。このような各ＮＵＲＢＳ曲線の端点を頂点ノードと呼ぶ。
次に、各断面間で対応関係にある（対応している）頂点ノードを求める（Ｓ４）。そして、同一断面内にある、そのような頂点ノードの間の曲線（図５参照）を制御点の分布が均等であるようなＢ−スプライン曲線で近似させる（Ｓ５）。以下に、そのような近似曲線（Ｂ−スプライン曲線）の生成手順を示す。
（１）元になる頂点ノード間の曲線上のサンプリング点（２つの端点を含む）の数を所定値以下に設定し、各サンプリング点間の長さが同じになるように各サンプリング点の位置を計算する。つまり、元になる前記曲線の全長を「サンプリング点の数−１」で割った値をサンプリング点間の長さとするのである。
（２）サンプリング点間のパラメータ間隔が同じになるように各サンプリング点のパラメータ値を設定する。曲線の始点のパラメータ値は０、終点は１．０だから、１．０を「サンプリング点の数−１」で割った値がパラメータ間隔になるように設定するのである。これにより、近似曲線（Ｂ−スプライン曲線）の制御点はほぼ均等に分布する。
（３）サンプリング点のパラメータ値から近似曲線（Ｂ−スプライン曲線）のノットベクトルを計算する。なお、計算に際しては、例えば公知文献；Leslie Piegl,「On NURBS:A Survey」,IEEE CGA,January,1991,pp.55-71を参照することができる。
（４）前記各ステップで得たサンプリング点の位置、サンプリング点のパラメータ値、Ｂ−スプライン曲線の次数（サンプリング点の数−１）、およびノットベクトルから、近似曲線であるＢ−スプライン曲線を生成する。なお、生成方法としては、上記公知文献を参照することができる。
（５）曲線上に評価位置を決め、すべての評価位置で元の曲線と生成された近似曲線の距離を計算する。そして、すべての距離が所定の許容誤差以下であれば処理を終了する。そうでなければ、元の曲線上のサンプリング点の数を所定値内で増やして前記した手順を繰り返す。
【０００９】
このようにして、各断面上のそれぞれの元の曲線について近似曲線を求め終わった後は、制御点が一番多い近似曲線に制御点の数を合わせて（したがって、サンプリング点の数を合わせて）その他の近似曲線を再近似する（Ｓ６）。そして、求まった複数の近似曲線から１枚の補間曲面としてＢ−スプライン曲面を生成する（Ｓ７）。なお、生成に際しては、公知文献 Wayne Tiller, 「Rational B-Splines for Curve and Surface Representation」,IEEE Vol.3,No.6, September, 1983, pp61-69を参照することができる。
前記において、曲面のノットベクトルは曲線同士のノットベクトルの併合となるが、前記したように、制御点が最も多い近似曲線に合わせてその他の曲線を再近似したので、曲線同士のノットベクトルは同じである。したがって、ノットベクトルを併合してもノットベクトルは変わらない。そのため、Ｂ−スプライン曲面の制御点の数を少なくすることができる。また、近似曲線の制御点の分布が均等であるので、生成したＢ−スプライン曲面は微小のノット間隔をもたない。
次に、前記した各近似曲線の位置において、生成した補間曲面（Ｂ−スプライン曲面）を分割する（Ｓ８）。その結果、１枚のＢ−スプライン曲面は複数枚のＢ−スプライン曲面になる（図６参照）。これにより、利用者は生成された補間曲面上で元の断面曲線（厳密にはその近似曲線）を見ることができる。
さらに、分割された複数の補間曲面に基づいて当該立体形状全体の位置関係を表現する位相データを生成し、スキニング立体形状を生成する（図７参照）（Ｓ９）。
最後に、生成されたスキニング立体形状のデータを記憶装置５へ書き込む（Ｓ１０）。
なお、前記において、補間曲面を分割する処理（ステップＳ８）を省略する構成も可能である。
【００１０】
以上、近似曲線をＢ−スプライン曲線とした場合で説明したが、近似曲線はＢ−スプライン曲線でなく、所定の誤差を許容した他の種類の近似曲線でもよい。
また、説明したようなスキニング立体形状生成方法に従ってプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によったスキニング立体形状生成を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても本発明によったスキニング立体形状を生成することができる。
また、上記プログラムをネットワークを介してこれまで本発明によったスキニング立体形状生成を行えなかった情報処理装置に転送することにより、その情報処理装置においても本発明によったスキニング立体形状を生成することができる。
【００１１】
【発明の効果】
以上説明したように、本発明によれば、請求項１および請求項２記載の発明では、空間上に配置された複数の断面を補間してスキニング立体形状を生成する際、空間上に配置された複数の断面のそれぞれを構成する曲線が分割され、分割されたそれぞれの曲線について各断面間で対応関係にある頂点ノードが求められ、各同一断面内の頂点ノード間の曲線を所定の許容誤差範囲内で近似した近似曲線が生成され、生成されたその複数の近似曲線から１枚の補間曲面が生成され、生成されたその補間曲面に基づいてスキニング立体形状が生成されるので、元の曲線上のサンプリング点を少なくすることができ、それにより、制御点の数が少なくなるし、微小なノット間隔もなくなり、したがって、データ量を少なくすることができるし、処理時間を短くすることとができる。
また、請求項３記載の発明では、請求項２記載の発明において、生成された補間曲面が近似曲線の位置において分割され、分割された補間曲面に基づいてスキニング立体形状が生成されるので、利用者は生成されたスキニング立体形状上に自分が選択した断面曲線に近い近似曲線を見ることができる。
また、請求項４記載の発明では、請求項２または請求項３記載の発明において、近似曲線を生成する際、制御点の分布の均等な近似Ｂ−スプライン曲線が生成されるので、微小なノット間隔をもたないＢ−スプライン曲面を生成することができる。
【００１２】
また、請求項５記載の発明では、請求項２または請求項３記載の発明において、近似曲線を各断面に亘って複数生成する際、制御点が最も多い近似曲線に合わせてその他の近似曲線が再近似されるので、各近似曲線の制御点の数が同じになり、したがって、曲線同士のノットベクトルが同じになる結果、Ｂ−スプライン曲面のノットベクトルも変わらず、そのため、Ｂ−スプライン曲面の制御点の数を少なくすることができる。
また、請求項６記載の発明では、請求項２または請求項３記載の発明において、補間曲面としてＢ−スプライン曲面が生成されるので、制御点の少ない近似曲線を公知技術を用いて容易に実現することができる。
また、請求項７記載の発明では、請求項２または請求項３記載の発明において、補間曲面を生成する際、Ｂ−スプライン曲面が所定値以上のノット間隔をもつ構成にしたので、公知技術を用いて請求項１記載の効果を容易に実現することができる。
また、請求項８記載の発明では、請求項２または請求項３記載の発明において、補間曲面を生成する際、Ｂ−スプライン曲面の制御点の数が所定値以下であるので、同様に、公知技術を用いて請求項１記載の効果を容易に実現することができる。
また、請求項９記載の発明では、請求項２乃至請求項８のいずれかに記載のスキニング立体形状生成方法に従ってプログラミングしたプログラムが例えば着脱可能な記憶媒体に記憶されるので、その記憶媒体をこれまで請求項２乃至請求項８のいずれかに記載の発明によったスキニング立体形状生成を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても請求項２乃至請求項８のいずれかに記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明が実施される３次元形状処理装置のハードウェア構成図である。
【図２】本発明の一実施例を示すスキニング立体形状生成方法の動作フロー図である。
【図３】本発明の一実施例を示すスキニング立体形状生成方法の説明図である。
【図４】本発明の一実施例を示すスキニング立体形状生成方法の他の説明図である。
【図５】本発明の一実施例を示すスキニング立体形状生成方法の他の説明図である。
【図６】本発明の一実施例を示すスキニング立体形状生成方法の他の説明図である。
【図７】本発明の一実施例を示すスキニング立体形状生成方法の他の説明図である。
【符号の説明】
１  入力装置
２  出力装置
３  ＣＰＵ
４  メモリ
５  記憶装置
６  媒体駆動装置
【図１】
0004397548.tif 000002
【図２】
0004397548.tif 000003
【図３】
0004397548.tif 000004
【図４】
0004397548.tif 000005
【図５】
0004397548.tif 000006
【図６】
0004397548.tif 000007
【図７】
0004397548.tif 000008