(57)【特許請求の範囲】
【請求項１】
可逆な丸め処理による曲面モデルの生成方法であって、読み出し手段が、記憶手段に記憶された格子ポリゴンモデルのデータを読み出すステップと、頂点算出手段が、前記読み出した格子ポリゴンモデルの各頂点に対し、これに対応する前記曲面モデルの頂点を線形変換により算出するステップと、稜線決定手段が、前記読み出した格子ポリゴンモデルの各稜線に対し、これに対応する前記曲面モデルの３次Ｂｅｚｉｅｒ曲線による稜線の制御点を算出するステップと、格納手段が、前記算出された頂点及び制御点のデータを前記曲面モデルのデータとして前記記憶手段に格納するステップとを有することを特徴とする曲面モデルの生成方法。
【請求項２】
請求項１に記載の曲面モデルの生成方法において、曲面生成手段が、前記３次Ｂｅｚｉｅｒ曲線によって囲まれたモデルをＧｒｅｇｏｒｙ曲面により内挿することで前記曲面モデルの形状を確定するステップと、前記格納手段が、前記確定した曲面モデルのデータを前記記憶手段に格納するステップとを有することを特徴とする曲面モデルの生成方法。
【請求項３】
請求項１又は２に記載の曲面モデルの生成方法において、丸め情報付加手段が、前記格子ポリゴンモデルに丸め情報を付加するステップをさらに有し、前記曲面モデルの頂点を線形変換により算出するステップは、前記頂点算出手段が、前記丸め情報に基づいて前記頂点を算出ステップを有することを特徴とする曲面モデルの生成方法。
【請求項４】
請求項３に記載の曲面モデルの生成方法において、前記丸め情報は、前記格子ポリゴンモデルの任意の頂点及び／又は稜線に対する丸め情報であることを特徴とする曲面モデルの生成方法。
【請求項５】
逆丸め処理による格子ポリゴンモデルの生成方法であって、格子ポリゴン生成手段が、請求項１乃至４のいずれか１に記載の曲面モデルの生成方法により生成された前記曲面モデルから、逆のステップを辿って前記格子ポリゴンモデルを生成することを特徴とする格子ポリゴンモデルの生成方法。
【請求項６】
請求項１乃至４のいずれか１に記載の曲面モデルの生成方法、及び／又は、請求項５に記載の格子ポリゴンモデルの生成方法を、コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
請求項５に記載の格子ポリゴンモデルの生成方法を含む曲面モデルの伝送方法であって、該生成方法により曲面モデルを前記格子ポリゴンモデルへ変換するステップと、丸め情報付加手段が、前記変換された格子ポリゴンモデルに丸め情報を付加することでラティス構造のデータを生成するステップと、伝送手段が、前記曲面モデルの伝送要求に応じて、前記ラティス構造のデータを伝送するステップとを有することを特徴とする曲面モデルの伝送方法。
【請求項８】
請求項１乃至４のいずれか１に記載の曲面モデルの生成方法を含む曲面モデルの表示方法であって、解釈手段が、請求項７に記載の曲面モデルの伝送方法により伝送されたラティス構造のデータを解釈するステップと、該解釈されたデータから前記生成方法により格子ポリゴンモデルから曲面モデルを生成するステップと、表示手段が、該生成された曲面モデルを表示するステップとを有することを特徴とする曲面モデルの表示方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可逆な丸め操作による曲面モデルの生成方法及びその曲面モデルからの格子ポリゴンモデル生成方法及びそれらの方法を実行するための記録媒体、及び曲面モデルの伝送／表示方法、より詳細には、より厳密な曲面モデルを生成することのできる、完全に可逆性をもった丸め操作による曲面モデルの生成方法及びその曲面モデルからの格子ポリゴンモデル生成方法及びそれらの方法を実行するための記録媒体、及び曲面モデルの伝送／表示方法に関する。
【０００２】
【従来の技術】
格子ポリゴンモデルからなる形状は構造がシンプルでデザインしやすいという特徴がある。この格子ポリゴンモデルから曲面モデルを生成する手法として丸め操作がある。これを利用すれば、格子ポリゴンモデルを変形することにより、曲面モデルを容易に変形することができる。しかし、従来、曲面モデルを生成した場合、これを格子ポリゴンモデルに完全に復元する手法は提案されていなかった。このため、曲面モデルをいったん生成すると、この形状からだけでは、再度、格子ポリゴンモデルを利用して変形することはできなかった。
【０００３】
現在、ネットワーク環境において、３Ｄデータのやりとりは、頻繁には行われていない。３次元データをネット転送する際の標準３Ｄ表現形式であるＶＲＭＬ（Virtual Reality Modeling Language）では、主にポリゴンと呼ばれる平面の集合によりデータを表現している。ところが、ポリゴン構造は厳密にデータを表現しようとすればするほど、データ量が膨大となるという欠点がある。特に曲面データを多く含むデータでは、多数のポリゴンが必要となるため、データ量が大きくなり、ネットワークを介したデータ転送の妨げとなっていた。また、ポリゴンで送られたデータ構造では、表示精度を下げることができても上げることはできないという問題もあった。このように、３Ｄデータを高い品質で、かつ、少ないデータで表現できないために、３Ｄデータのネットワークでの活用は著しく妨げられてきた。
【０００４】
一方、製造業で利用される３ＤＣＡＤの分野では、曲面データを厳密に持ったソリッドモデルを表現する手法が利用されており、ＩＧＥＳ（Initial Graphic Exchange Specification）やＳＴＥＰ（STandard for the Exchange of Product model data）のような標準的データ交換のフォーマットにも、これらのデータ表現がサポートされてきた。ＣＡＤの世界では、生成した曲面形状を高精度で表現するために、トリム曲面と呼ばれる厳密な形状表現手法が利用されてきた。これらは、非常に精度の高い形状表現には適しているが、データ量が大きくなってしまい、ネットワーク環境で利用することは困難であった。
【０００５】
【発明が解決しようとする課題】
従来、上述のごとき逆丸めの手法として、
（１）特願平９−３１４６９７号
（２）「丸め操作を用いた自由形状変形に関する研究」
中村敦、慶應義塾大学大学院政策・メディア研究科修士論文、1998.
（３）「制御格子の自動生成による柔軟な曲面制御の一般化」
茶木祐一郎、慶應義塾大学大学院政策・メディア研究科修士論文、1998.
等の手法があった。しかし、これらの手法では、すべてのポリゴンを構成する面が同一平面上にならなければならない等、完全なものではなかった。
【０００６】
また、別の手法として、Ｓｕｂｄｉｖｉｓｉｏｎ  Ｓｕｒｆａｃｅという手法もあった。これはポリゴンモデルを細分化して、疑似的に曲面モデルを生成するという手法である。この手法も可逆性を有してはいるが、これはあくまで表示上の細分化されたポリゴンモデルを生成する手法であり、厳密な曲面モデルを生成する本発明の手法とは本質的に異なる。
【０００７】
また、従来のネット上での表現形式であるＶＲＭＬは、ポリゴンをベースとしていた。ポリゴンデータは複雑な形状を表現しようとすると、データ量が大きくなるという欠点がある。また、少量のデータで形状を表現しようとすると、形状の表現能力が下がり、表示品質が低下してしまうという問題があった。
【０００８】
本発明は、上述のごとき実情に鑑みてなされたもので、本発明による丸め操作は、格子ポリゴンモデルと同じ位相構造（形状の要素同士のつながり）を持った曲面モデルを生成し、かつ、二つのモデルの対応する各頂点をそれぞれ線形変換により算出することで、生成された曲面モデルから、元の格子ポリゴンモデルを逆生成することを可能にしたものである。
【０００９】
上述のように、本発明は、与えられた格子ポリゴンモデルと位相構造が同等な曲面モデルを生成するものであり、これにより、格子ポリゴンモデル内部の各頂点と、曲面モデル内部の各頂点とを１対１に対応させ、対応する各頂点の座標値を１次変換で求められるように対応づけ、こうして求められた曲面モデルを構成する頂点から一意的に曲面モデルを構成する曲線の制御点を生成することにより、可逆性のある丸め操作を実装できるようにしたものである。
【００１０】
本発明は、さらに拡張し、各格子ポリゴンモデルに丸め情報を持たせるようにして、外部から取り込んだ曲面モデルに対しても、ラティス構造のデータを生成できるようにしたものである。本発明は、すべての形状を内挿曲面データとして表現し、さらに、曲面構造を抽象化したラティス構造により表現することで、より少ないデータ量で３Ｄ形状を表現することを可能としたものである。本発明は、さらに、ラティス構造のデータをサーバにおき、さらに、このラティス構造を解釈し、曲面データとして、さらにはその曲面データを詳細な細分化したポリゴンモデルで表示するビューワをクライアント側に置くことで、高速でかつリアルな３Ｄデータ転送及びその表示を実現できるようにしたものである。
【００１１】
【課題を解決するための手段】
請求項１の発明は、可逆な丸め処理による曲面モデルの生成方法であって、以下のＳＴＥＰ１，ＳＴＥＰ２から成ることを特徴とする可逆な丸め操作による曲面モデルの生成法である。
（ＳＴＥＰ１）：読み出し手段が、記憶手段に記憶された格子ポリゴンモデルのデータを読み出すステップと、頂点算出手段が、前記読み出した格子ポリゴンモデルの各頂点に対し、これに対応する前記曲面モデルの頂点を算出するステップとを有する。この新しい頂点の座標値は元の頂点群の座標値の線形変換により算出する。
（ＳＴＥＰ２）：稜線決定手段が、前記読み出した格子ポリゴンモデルの各稜線に対し、これに対応する前記曲面モデルの曲線稜線の制御点を算出し決定し、格納手段が、前記算出された頂点及び制御点のデータを前記曲面モデルのデータとして前記記憶手段に格納する。稜線は３次のＢｅｚｉｅｒ曲線により表現する。
【００１２】
請求項２の発明は、請求項１の発明に加えて、更に、ＳＴＥＰ３からなることを特徴とする可逆な丸め操作による曲面モデルの生成法である。
（ＳＴＥＰ３）：曲面生成手段が、前記３次のＢｅｚｉｅｒ曲線に囲まれたモデルをＧｒｅｇｏｒｙ曲面（Ｇｒｅｇｏｒｙパッチ）により内挿することで前記曲面モデルの形状を確定するステップと、前記格納手段が、前記確定した曲面モデルのデータを前記記憶手段に格納するステップとを有する。これにより、格子ポリゴンモデルと同じ位相構造を持った曲面モデルが生成・格納される。
【００１３】
請求項３の発明は、請求項１又は２に記載の曲面モデルの生成方法において、丸め情報付加手段が、前記格子ポリゴンモデルに丸め情報を付加するステップをさらに有し、前記曲面モデルの頂点を線形変換により算出するステップは、前記頂点算出手段が、前記丸め情報に基づいて前記頂点を算出ステップを有することを特徴としたものである。
【００１４】
請求項４の発明は、請求項３に記載の曲面モデルの生成方法において、前記丸め情報は、前記格子ポリゴンモデルの任意の頂点及び／又は稜線に対する丸め情報であることを特徴としたものである。
【００１５】
請求項５の発明は、逆丸め処理による格子ポリゴンモデルの生成方法であって、格子ポリゴン生成手段が、請求項１乃至４のいずれか１に記載の曲面モデルの生成方法により生成された前記曲面モデルから、逆のステップを辿って前記格子ポリゴンモデルを生成することを特徴としたものである。
【００１６】
請求項６の発明は、コンピュータ読み取り可能な記録媒体であって、請求項１乃至４のいずれか１に記載の曲面モデルの生成方法、及び／又は、請求項５に記載の格子ポリゴンモデルの生成方法を、コンピュータに実行させるためのプログラムを記録したことを特徴としたものである。
【００１７】
請求項７の発明は、請求項５に記載の格子ポリゴンモデルの生成方法を含む曲面モデルの伝送方法であって、該生成方法により曲面モデルを前記格子ポリゴンモデルへ変換するステップと、丸め情報付加手段が、前記変換された格子ポリゴンモデルに丸め情報を付加することでラティス構造のデータを生成するステップと、伝送手段が、前記曲面モデルの伝送要求に応じて、前記ラティス構造のデータを伝送するステップとを有することを特徴としたものである。
【００１８】
請求項８の発明は、請求項１乃至４のいずれか１に記載の曲面モデルの生成方法を含む曲面モデルの表示方法であって、解釈手段が、請求項７に記載の曲面モデルの伝送方法により伝送されたラティス構造のデータを解釈するステップと、該解釈されたデータから前記生成方法により格子ポリゴンモデルから曲面モデルを生成するステップと、表示手段が、該生成された曲面モデルを表示するステップとを有することを特徴としたものである。
【００１９】
【発明の実施の形態】
以下、本発明の第１の実施形態の構成および動作原理について説明する。
図１３は、本発明の第１の実施形態で利用されるデータのデータ構造を示す図である。
頂点座標値テーブル２００（図１３（Ａ））は、ポリゴンモデル（格子ポリゴンモデル、又はラティスポリゴンモデルと呼ぶ）の各頂点の３次元座標値（ｘ，ｙ，ｚ）と、格子ポリゴンモデルの頂点に対して後述するＳＴＥＰ１の方法で求めた曲面モデルの頂点の３次元座標値とを保持するテーブルである。
面インデックステーブル３００（図１３（Ｂ））は、格子ポリゴンモデルの各ポリゴン（格子ポリゴン、又はラティスポリゴンと呼ぶ）を構成する頂点を、頂点座標値テーブル２００の何番目かを示すインデックス値の列として表している。テーブルのサイズは格子ポリゴン数に等しい。
稜線インデックステーブル４００（図１３（Ｃ））は、格子ポリゴンモデルおよび曲面モデルの各稜線を頂点の対（始点と終点）で表し、それらの頂点の頂点座標値テーブル２００におけるインデックス値を保持する。曲面モデルの場合には、直線稜線を３次Ｂｅｚｉｅｒ曲線に変換したときに現われる２つの制御点（制御点１と制御点２）の座標を持つ制御点座標値テーブル５００（図１３（Ｄ））へのインデックス値が追加される。
【００２０】
図１０は、本発明の第１の実施形態の機能構成を表す構成図である。
頂点算出手段１０は、頂点座標値テーブル２００と面インデックステーブル３００で参照される格子ポリゴンモデルの各頂点に対し、これに対応する曲面モデルの頂点を算出する。この新しい頂点の座標値は元の頂点群の座標値の線形変換により算出する。ここで求めた曲面モデルの頂点の座標値は、頂点座標値テーブル２００の該当部分に格納する。
稜線決定手段２０は、頂点座標値テーブル２００、面インデックステーブル３００、稜線インデックステーブル４００の３つを参照し、格子ポリゴンモデルの各稜線に対し、これに対応する曲面モデルの曲線稜線を決定する。この曲面モデルの稜線は３次Ｂｅｚｉｅｒ曲線により表現されるため、生成された制御点の座標を制御点座標値テーブル５００へ格納し、さらにそのテーブルへのインデックス値を稜線インデックステーブル４００の該当する部分へ格納する。
曲面生成手段３０は、頂点座標値テーブル２００、面インデックステーブル３００、稜線インデックステーブル４００の３つを参照し、３次Ｂｅｚｉｅｒ曲線に囲まれた曲面モデルをＧｒｅｇｏｒｙ曲面により内挿する。これにより、格子ポリゴンモデルと同じ位相構造を持った曲面モデルが生成される。
【００２１】
格子ポリゴンモデルを変換して得た結果の曲面モデルの頂点の座標値は、元の格子ポリゴンモデルの頂点の座標値を線形変換した形で算出される。すなわち、元の格子ポリゴンモデルの頂点をＶｉとし、ｋｉを実数とすれば、新たな頂点の位置Ｐｊは、式（１）の形で表現できる（ｉ＝１，２…ｎ；ｊ＝１，２…ｎ；ｎは頂点の数）。
また、線形変換には逆変換が定義できる。すなわち、頂点Ｖｉは式（２）で算出可能となる。
【００２２】
【数１】
0004083949.tif 000002
【００２３】
したがって、結果の曲面モデルの頂点の座標値から、元の格子ポリゴンモデルの頂点の座標値を逆に算出できる。算出された頂点間の稜線の形状を直線化すれば、元の格子ポリゴンモデルが生成できる。この結果、可逆な丸め操作が実現できることになる。さらには、この軽量な格子ポリゴンデータをネットワーク上に転送することで、そのデータを受け取ったクライアントＰＣ側で本丸め操作を実行することにより、曲面モデルを生成し、さらには詳細なポリゴンモデルとして画面に表示することも可能となる。
【００２４】
以下に、本実施形態の処理の流れを図１１に基づいて、図１に示すような格子ポリゴンモデルを例にして詳細に説明する。
【００２５】
（ＳＴＥＰ１）
（Ｉ）格子ポリゴンモデル（図１）を構成するすべての面Ａを四辺形に分割する。このために、まず、ポリゴンを構成するすべての面Ａの中心Ｃと稜線Ｂの中点Ｄを求める（図２）。面の中心は、面を構成するｎ個の頂点Ｖｉの平均座標値を求めることで行う（この場合、各頂点に対して重みづけをしてもよく、重みづけをすると中心Ｃの位置や中点Ｄの位置が変わる）。図３に示すように、面Ａの四辺形分割は、各稜線Ｂの中点Ｄと各面の中心Ｃをそれぞれ結ぶことで行う。
（ＩＩ）生成された各四辺形Ｅを構成する頂点の中心Ｆを求めることにより、四辺形面Ｅの中心Ｆを求める（図４）。ここでも、中心Ｆの算出は各四辺形を構成する頂点の平均座標を求めることで行う（勿論、ここでも頂点に重みづけをしてもよい）。
（ＩＩＩ）図５に示すように、元の頂点Ｇに隣接する各四辺形面の中心Ｆを結び、多角形Ｈを生成する。この多角形Ｈを構成する頂点の中心Ｐ０を求める。ここでも中心の算出は各多角形を構成する頂点の平均座標値を求めることで行う（なお、ここでも重みづけをしてもよい）。この中心Ｐ０が元の格子ポリゴンモデルの頂点Ｇに対応する曲面モデルの頂点となる。中心Ｐ０は点Ｆの平均座標であり、点Ｆは点Ｃ，Ｄの平均座標であり、しかも点Ｃ，Ｄは元の格子ポリゴンモデルの頂点の平均座標である。従って、Ｐ０は元の格子ポリゴンモデルの頂点の線形変換により算出できる。
【００２６】
（ＳＴＥＰ２）
（Ｉ）求められた新たな頂点Ｐ０と、生成された多角形Ｈの稜線Ｉの中点Ｑを結ぶベクトルＰ０Ｑを定義する（図６）。
（ＩＩ）ここで決まるベクトルが新たに生成される曲線稜線の接線となるよう曲線の形状を決める。図７の直線稜線Ｂに対応する曲線形状を求める。曲線はＰ０，Ｐ３を端点とする。求められた新たな頂点Ｐ３と生成された多角形の稜線の中点Ｒとを結ぶベクトルＰ３Ｒを同様に定義しておき、図８で以下の関係となるように制御点Ｐ１，Ｐ２を決める。
【００２７】
【数２】
0004083949.tif 000003
【００２８】
（ＩＩＩ）制御点Ｐ０，Ｐ１，Ｐ２，Ｐ３を順番に結んで、図７の元の稜線Ｂに対応する３次のＢｅｚｉｅｒ曲線を決定する。
【００２９】
（ＳＴＥＰ３）
（Ｉ）３次元ＣＡＤの基礎と応用（共立出版）にあるように３次のＢｅｚｉｅｒ曲線に囲まれた曲面形状は公知の手法によって、Ｇｒｅｇｏｒｙ曲面を用いることで（Ｇｒｅｇｏｒｙパッチにより）内挿することができる。これにより、曲面形状が決定し、曲面モデルの形状が確定する。
【００３０】
（実例）
図９（Ａ）に格子ポリゴンモデル、図９（Ｂ）に本手法で生成した曲面モデルの例を示す。図９（Ａ）の格子ポリゴンモデルと図９（Ｂ）の曲面モデルとは、点，線，面の全てにおいて１対１に対応しているので、図９（Ｂ）の形状に逆丸め操作を施すことにより、図９（Ａ）の形状を生成することができる。
【００３１】
更に、本発明は上記の実施形態のみに限定されたものではなく、図１２のようなコンピュータ構成によっても実施することができる。
入力手段１はキーボード、マウス、タッチパネル等により構成され、情報の入力に使用される。出力手段２は、種々の出力情報や入力手段１からの入力された情報などを出力させるものであって、表示装置やプリンタ等から構成される。ＣＰＵ３は、種々のプログラムを動作させる。メモリ４は、プログラム自身を保持し、又そのプログラムがＣＰＵ３によって実行されるときに一時的に作成される情報等を保持する。記憶手段５は、プログラム、データやプログラム実行時の一時的な情報等を保持する。媒体駆動装置６は、プログラムやデータ等を記憶した記録媒体を装着してそれらを読み込み、メモリ４または記憶手段５へ格納するのに用いられる。又、直接データの入出力やプログラム実行するのに使ってもよい。
このようなコンピュータ構成において、図１０に示した各手段の各機能をプログラム化し、予めＣＤ−ＲＯＭ等の記録媒体に書き込んでおき、このＣＤ−ＲＯＭをＣＤ−ＲＯＭドライブを搭載したコンピュータに装着して、コンピュータへそのプログラムをロードすることによって、本発明の実施形態と同様な機能を実現することができる。
尚、記録媒体としては半導体媒体（例えば、ＲＯＭ，ＩＣメモリカード等）、光媒体（例えば、ＤＶＤ−ＲＯＭ，ＭＯ，ＭＤ，ＣＤ−Ｒ等）、磁気媒体（例えば、磁気テープ、フレキシブルディスク等）のいずれであってもよい。
また、本発明の機能を実現するプログラムは、媒体の形で提供されるのみならず、通信によって提供されるものであっても良い。
【００３２】
以下、本発明の第２の実施形態の構成および動作原理について説明する。
図１４は、本発明の第２の実施形態の概要を示す図である。本手法では形状を表現する際、元の形状を荒く近似したポリゴンではなく、ラティス構造（格子ポリゴンモデル＋丸め情報）を利用して、高い精度で曲面を表現する。ネットワーク上は軽量なラティス構造を転送する。第１の実施形態では、格子構造のみから丸め操作により曲面モデルを形成したが、本実施形態では、格子構造に加え、任意の格子点及び／又は稜線に対する丸め情報を付加して、そのデータから丸め操作を実行したり、ネットワーク上に転送してクライアントＰＣ上でそのデータから丸め操作を実行するようにする。高速転送されたラティス構造を受け取ったＰＣ上のラティスカーネルが、ラティス構造を解釈し、ここから曲面データを生成し、詳細なポリゴンモデルを用いて画面に表示することによりリアルなイメージを高速なＣＰＵで再現する。ラティス構造を利用することで、ＶＲＭＬとはけた違いに少ないデータでリアルなイメージを送ることが可能になる。ここでは、この新しいフォーマットをＸＶＬ（ｅＸｔｅｎｄｅｄ  ＶＲＭＬ  ｗｉｔｈ  Ｌａｔｔｉｃｅ）と呼ぶ。このＸＶＬデータは、インターネット上ではＶＲＭＬデータの場合と同様に、ＨＴＭＬ或いはＸＭＬファイル上に付加され参照される。
【００３３】
ＸＶＬを利用することで、
（１）ラティス構造（格子ポリゴンモデル＋丸め情報）により形状を表現することで、細分化したポリゴンデータや曲面データと比較して、３Ｄ形状を軽量なデータとして表現し、
（２）３Ｄモデリングソフトに、ラティス構造からサーフェス構造（曲面モデル）に変換する機能（丸め機能）を持たせることで、リアルなサーフェス構造を持った形状を容易にデザインし、
（３）サーフェス構造をラティス構造に変換する機能（逆丸め機能）を持つことで、既存の曲面データのＸＶＬ形式への変換を容易にし、
（４）ビューワ側に、ラティス構造からサーフェス構造に変換する機能（丸め機能）を内包することで、高速に転送可能な軽量なＸＶＬファイルを解釈し、高品位な３Ｄ表示を可能とする、
という特徴を持った、３Ｄデータの表現と転送が可能となる。
【００３４】
図１５は、本実施形態における処理の実装を説明するための図である。本発明のＸＶＬフォーマットを用いて実際に形状データを処理すると、ＶＲＭＬフォーマットに比べ、数１０分の１のデータ量（第１の実施形態の場合；第２の実施形態の場合には多くとも第１の実施形態の場合の４／３倍のデータ量）のＸＶＬとして表現でき、このデータをネット転送することで、高速かつリアルな３Ｄデータのネット転送が可能となる。
サーバ４１は、ＸＶＬフォーマットでデータを入力する場合に使用するＸＶＬ入力装置５１と、既存曲面データに本発明の逆丸め操作を適用して、ＸＶＬファイルを生成するＸＶＬ変換装置５２とを有し、ネットワーク４２を通じて、ＸＶＬファイルを配信する。一方、クライアントＰＣ４３，４４は、ラティス構造からサーフェイス構造へと丸め操作を実行するＸＶＬ展開装置５３を有する。さらにクライアントＰＣ４４のように、ＸＶＬ変換装置５２，ＸＶＬ入力装置５１を有するように構成し、既存の曲面データの変換や新たなＸＶＬフォーマットのデータの作成を行うようにしてもよい。さらに、各装置はソフトウェア化して構成してもよい。
【００３５】
（ＸＶＬの表現形式）
図１６は、本発明の第２の実施形態におけるＸＶＬファイルに内包される形状情報のデータ構造を示す図である。なお、格子ポリゴンモデルに関しては、第１の実施形態で記述したデータ構造と同様である。ここで、ラティス構造（格子ポリゴンモデル＋丸めの情報）をファイルに記述する方法について説明する。まず、格子ポリゴンモデルは通常のポリゴンデータ（ここでは、格子ポリゴンデータと呼ぶ）として表現できる。すなわち、格子ポリゴンを構成する頂点の座標値の配列と、それらをどのようにつないで格子ポリゴンを構成するかを指定する頂点インデックス配列を用いて表現されている。ＸＶＬでは格子の情報に加えて各頂点、稜線に丸め情報を持たせることで、曲面形状の細かい制御を行っている。これらの丸め情報は、頂点に対しては、頂点を指定するインデックス，頂点の丸め係数、稜線に対しては、稜線を指定するインデックス配列（稜線の両端の頂点のインデックス），稜線の丸め係数，始点丸めベクトル（稜線の始点側の接線ベクトルの方向を決めるベクトル），終点丸めベクトル（稜線の終点側の接線ベクトルの方向を決めるベクトル）、で構成されている。インデックスはともに格子ポリゴンデータを構成する頂点の座標値配列上での番号を表している。
【００３６】
丸め係数は生成される曲面形状の、指定した格子の頂点・稜線に対応する部分がどの程度格子に近くなるかを指定する。丸め係数を０に近くすると格子の近くになるように曲面形状が生成され、丸め係数を大きくすると大きく丸まった形状となる。稜線丸め情報の始点／終点丸めベクトルは曲面モデルに逆丸めを行って格子構造を生成した場合に使用される。これらは一般的な３次Ｂｅｚｉｅｒ曲線を丸めで表すための情報で、曲線の始点／終点の接線ベクトルを決める働きをする。一般的な形状モデルを３次Ｂｅｚｉｅｒ曲線または直線を幾何形状に持つ稜線のみで構成される曲面モデルに変換できればこれをＸＶＬ形式で記述することができ、この場合には稜線丸め情報に始点／終点丸めベクトルが付加される。
【００３７】
以下に、本実施形態の処理の流れを第１の実施形態での説明に追加する形で、図１に示すような格子ポリゴンモデルを例にして詳細に説明する。
第１の実施形態におけるＳＴＥＰ１（ＩＩ）では、生成された各四辺形を構成する頂点の中心（頂点の平均座標値）を求めることにより、四辺形面の内部に新たな頂点を算出している（図４）。
丸め係数は、この新たな頂点の算出方法を変化させる値である。丸め係数を指定した場合の各四辺形面内部の新たな頂点は、図１７に示すように、各四辺形面内のｕｖパラメータ平面上でｕとｖの値を標準から変えることにより算出する。なお、丸め係数を標準値にした場合のｕ，ｖは０.５とする。
【００３８】
例えば、元の頂点Ｇの丸め係数を０.２（標準値より低い値）に設定した場合には、各四辺形面のｕ，ｖのパラメータ値をそれぞれ０.２にする。これにより、ＳＴＥＰ１により作成される曲面モデルの頂点は、対応する格子モデル（格子ポリゴンモデル）の頂点に近づき、標準の場合よりも尖り格子ポリゴンモデルに近づいた曲面モデルが生成される。逆に頂点の丸め係数を標準値より高い値に設定した場合は、その頂点に関し、標準の場合よりも格子ポリゴンモデルに遠い、より丸みを帯びた形状の曲面モデルが生成される。
また、頂点の丸め係数ではなく、元の稜線Ｂの丸め係数（稜線Ｂの中点Ｄの丸め係数）を標準値より低い値に設定した場合には、稜線Ｂに関わる各四辺形のｕ’，ｖ’のパラメータ値を低い値にする。これにより、ＳＴＥＰ１により作成される曲面モデルの稜線は、対応する格子モデル（格子ポリゴンモデル）の稜線Ｂに近づき、標準の場合よりも尖り格子ポリゴンモデルに近づいた曲面モデルが生成される。逆に稜線の丸め係数を標準値より高い値に設定した場合は、その稜線に関し、標準の場合よりも格子ポリゴンモデルに遠い、より丸みを帯びた形状の曲面モデルが生成される。
【００３９】
（実例）
図９（Ａ）に示す格子ポリゴンモデルに丸め情報を付加した元のラティスモデルに対し、本実施形態で生成したサーフェスモデルは、図９（Ｂ）に示したものに頂点及び／又は稜線に関して丸みを或いは尖りを与えた形状となる。この図９（Ｂ）に対応する形状に逆の丸め操作を施すことにより、図９（Ａ）の形状が生成される。また、図９（Ａ）の形状をＸＶＬ形式にて表現することで、出力データを極めて少なくすることができる。
【００４０】
図１８は、ＸＶＬ形式で表現された人間のモデル及びそのシェーディング表示の例を示す図である。図１８（Ａ）で表現されたＸＶＬは軽量（本例では４４Ｋバイト）であるため、ネットワーク環境でも簡単に転送することができる。また、このラティスモデルからサーフェスモデルを生成し、これをシェーデイング表示したのが図１８（Ｂ）である。この仕組みをビューワとして実装すれば、ネットワーク上のＸＶＬを読み込み、リアルな３Ｄ表示を行うことができる。また、ＸＶＬでの形状からサーフェスモデルを生成し、ＲＰ（Rapid Prototyping）装置用のデータを出力すれば、図１９に示すように実モデルを生成することができる。また、サーフェスモデルからＣＡＭ用のデータを生成すれば、このような実モデルを加工することもできる。
【００４１】
【発明の効果】
以上の説明から明らかなように、本発明によると、点，線，面の全てにおいて、元のポリゴンに対して１対１に対応した曲面モデルを生成するようにしているので、完全に可逆性を持った丸め操作を実現できる。ポリゴンモデルと曲面モデルが同一位相を持つため、元のポリゴンモデルに与えた属性を継承することができる。すなわち、格子ポリゴンモデルに与えた色やテクスチャといった属性を曲面モデルに継承させることが可能である。これは従来の方法では実現困難なメリットである。
【００４２】
本発明のＸＶＬ形式によれば、サーフェス構造を内包するラティス構造を保持しているので、品質の高いデータを保持しながら、少ないデータ量で形状表現が可能であるというメリットがある。
【００４３】
本発明のＸＶＬによれば、ラティス構造（格子情報＋丸め情報）により定義される内挿曲面を用いて、曲面情報を表現することで、データの軽量化を実現しつつ、ある程度の精度を維持している。データ量が少ないために、ネットワーク環境で利用でき、曲面としてのデータ表現も可能なため、ＸＶＬデータをＣＡＤ／ＣＡＭでも利用可能であるというメリットを持つ。
【図面の簡単な説明】
【図１】  入力される格子ポリゴンモデルを示す図である。
【図２】  格子ポリゴンモデル内の面の中心と稜線の中点の生成法を説明するための図である。
【図３】  格子ポリゴンモデルの四辺形分割例を示す図である。
【図４】  生成された四辺形の中心の算出方法を説明するための図である。
【図５】  曲面モデルの頂点の算出方法を説明するための図である。
【図６】  曲面モデルの稜線の接線の算出方法を説明するための図である。
【図７】  曲面モデルの決定方法を説明するための図である。
【図８】  制御点Ｐ１，Ｐ２の決定方法を説明するための図である。
【図９】  本発明によって生成された曲面モデルの例を示す図ある。
【図１０】  本発明の第１の実施形態の機能構成を表す構成図である。
【図１１】  本発明の第１の実施形態の処理の流れを説明するための図である。
【図１２】  本発明をコンピュータ構成によって実施する場合の構成例を示す図である。
【図１３】  本発明で利用されるデータのデータ構造を示す図である。
【図１４】  本発明の第２の実施形態の概要を示す図である。
【図１５】  本発明の第２の実施形態における処理の実装を説明するための図である。
【図１６】  本発明の第２の実施形態におけるＸＶＬファイルに内包される形状情報のデータ構造を示す図である。
【図１７】  丸め係数の決定方法を説明するための図である。
【図１８】  ＸＶＬ形式で表現された人間のモデル及びそのシェーディング表示の例を示す図である。
【図１９】  実モデルの生成例を示す図である。
【符号の説明】
Ａ…面、Ｂ，Ｉ…稜線、Ｃ…面の中心、Ｄ，Ｑ，Ｒ…稜線の中点、Ｅ…生成された四辺形、Ｆ…算出された中心、Ｇ，Ｇ’…元の格子ポリゴンモデルの頂点、Ｐ０，Ｐ３…曲面モデルの頂点、Ｐ１，Ｐ２…制御点、Ｈ…生成された多角形、１…入力手段、２…出力手段、３…ＣＰＵ、４…メモリ、５…記憶手段、６…媒体駆動手段、１０…頂点算出手段、２０…稜線決定手段、３０…曲面生成手段、４１…サーバ、４２…ネットワーク、４３，４４…クライアントＰＣ、５１…ＸＶＬ入力装置、５２…ＸＶＬ変換装置、５３…ＸＶＬ展開装置。
【図１】
0004083949.tif 000004
【図２】
0004083949.tif 000005
【図３】
0004083949.tif 000006
【図４】
0004083949.tif 000007
【図５】
0004083949.tif 000008
【図６】
0004083949.tif 000009
【図７】
0004083949.tif 000010
【図８】
0004083949.tif 000011
【図９】
0004083949.tif 000012
【図１０】
0004083949.tif 000013
【図１１】
0004083949.tif 000014
【図１２】
0004083949.tif 000015
【図１３】
0004083949.tif 000016
【図１４】
0004083949.tif 000017
【図１５】
0004083949.tif 000018
【図１６】
0004083949.tif 000019
【図１７】
0004083949.tif 000020
【図１８】
0004083949.tif 000021
【図１９】
0004083949.tif 000022