幾何学的三次元モデルオブジェクトを設計する方法
【課題】従来の三次元モデルオブジェクトを設計方法には、スケッチがなおも用紙で行われスケッチステップとトレーサステップとが統合されない、取り込まれる描画が2D描画のみでありこの2D描画から幾何学曲線を推測するしかない、幾何学曲線を計算するのにいくつかのコンピュータを使用するため計算リソースを多く必要とする、等の問題があった。
【解決手段】三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、画面とのユーザ相互作用のステップと、ユーザ相互作用に対応するストロークを定義するステップと、ストロークをポイントの集合に離散化するステップと、ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、映し出されたポイントの集合および少なくとも1つのサポートから三次元モデルオブジェクトを構築するステップとを備える方法。
【解決手段】三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、画面とのユーザ相互作用のステップと、ユーザ相互作用に対応するストロークを定義するステップと、ストロークをポイントの集合に離散化するステップと、ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、映し出されたポイントの集合および少なくとも1つのサポートから三次元モデルオブジェクトを構築するステップとを備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、幾何学的三次元モデルオブジェクトを設計する方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトを設計し、技術開発し、そして製造するためのシステムおよびプログラムが市場に多く出回っている。CADは、コンピュータ支援設計(Computer-Aided Design)の頭文字であり、例えば、オブジェクトを設計するソフトウェアソリューションに関わる。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭文字であり、例えば、将来の製品の物理的な動きをシミュレートするソフトウェアソリューションに関わる。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭文字であり、例えば、製造に関わる実行管理システム(mes)および操作を定義するソフトウェアソリューションに関わる。こうしたコンピュータ支援設計システムにおいて、グラフィカルユーザインタフェースは、コンピュータ支援技術の効率に関して重要な役割を果たす。これらのコンピュータ支援技術は、PLM(製品ライフサイクル管理:Product Lifecycle Management)システムに組み込むことができる。PLMは、企業が製品データを共有し、そのデータを共通プロセスに適用し、そして製品の構想から寿命までの製品開発に関する企業情報を事業拡大の構想に活用するのに役立つ経営戦略を指す。
【0003】
ダッソーシステムズ社製のPLMソリューション(商標CATIA、ENOVIAおよびDELMIAに基づく)は、製品エンジニアリング知識を体系化するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、事業を統合してエンジニアリングハブと製造ハブとの両方に接続するのを可能にする事業ハブとを提供する。これらのシステムはすべて、製品、プロセスおよびリソースをリンクして、動的で知識ベースの製品作成と、製品定義、調整、生産およびサービスを最適に導く意思決定サポートとを可能にするオープンオブジェクトモデルを実現する。
【0004】
オブジェクトの設計は、オブジェクトのモックアップを作成する前に、このオブジェクトの形状を三次元で作成するプロセスを指す。例えば、新しい車を考える場合、重要なタスクの1つは、その車体を作成することである。一般に、新しいオブジェクトおよびその形状の作成は、オブジェクトの設計者がそのオブジェクトを描く用紙の段階から始まる。描画は、2つのステップを備える。第1のステップは、スケッチステップであり、完成品を目的としない、素早く行われる手描き図が作成される。第2のステップは、トレーサステップであり、オブジェクトの明確な描画がスケッチから設計される。
【0005】
スケッチステップは、一般に用紙上で行われ、次のトレーサステップは、専用ソフトウェアで行われる。ダッソーシステムズ社が提供するソフトウェアである、フリースタイルスケッチトレーサ(商標)は、3D仮想モックアップの基本となる3Dフォーマットに設計者の作品(スケッチステップで行われた2Dペインティングなど)を組み入れるのを可能にする。この製品は、設計者が2Dデータを3Dデータに変換するのに役立つ直感的なツールボックスを提供する。つまり、設計者は、最初に2D画像を3D空間に位置付けしてスケールし、次にそのジオメトリをスケッチに被せる。実際、設計者は、3D空間に配置されたオブジェクトの少なくとも2Dフロントビューと2Dサイドビューとを用いて、2Dフロントビューから2Dサイドビューに切り替える(またはその逆)ことによってポイントを3D空間に配置する。次に、立体を推定できるようになるまで、ポイントからカーブとサーフェスが計算される。
【発明の概要】
【発明が解決しようとする課題】
【0006】
この方法は、三次元モデルオブジェクトを設計するものであるが、いくつかの難点がある。第一に、スケッチがなおも用紙で行われ、ソフトウェアで描画を取り込む必要があるので、スケッチステップとトレーサステップとは統合されない。第二に、取り込まれる描画が2D描画のみなので、取り込まれた2D描画から幾何学曲線を推測するしかない。第三に、幾何学曲線を計算するのにいくつかのコンピュータを使用する必要があるため、3Dモデルオブジェクトの作成は計算リソースを多く必要とする。
【0007】
こうした状況では、幾何学的三次元モデルオブジェクトを設計する方法をさらに改善する必要がある。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、前記映し出されたポイントの集合および前記少なくとも1つのサポートから前記三次元モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【0009】
また、本発明の他の態様によれば、前記三次元モデルオブジェクトの視覚化を構築するステップであって、前記映し出されたポイントの集合の各ポイントに対して少なくとも2つのオフセットポイントを計算するサブステップであって、オフセットポイントは、前記少なくとも1つのサポート上で位置付けされ、および前記各ポイントから間隔が空けられたポイントであるサブステップと、前記計算された少なくとも2つのオフセットポイントによって線引きされたサーフェスを計算するサブステップであって、前記サーフェスは、前記映し出されたポイントの集合を備えるサブステップとを含むステップをさらに備えることを特徴とする方法が提供される。
【0010】
また、本発明の他の態様によれば、前記少なくとも2つのオフセットポイントを計算するステップは、前記映し出されたポイントの集合の前記ポイントをリンクするポリラインを計算するステップと、前記映し出されたポイントの集合の各ポイントに対してオフセットベクトル
【0011】
【数1】
【0012】
(以下、各ベクトルを以下のように表記する。)
【0013】
【数2】
【0014】
を計算するステップであって、αは係数、n→は前記サポートに垂直な単位ベクトル、L→は前記ポリラインを形成する前記ポイントの集合の2つのポイントをリンクするラインによって定義されるベクトル、n→およびL→は前記各ポイントを共通原点として有するステップと、前記オフセットベクトルO→から前記少なくとも2つのオフセットポイントを決定するステップと、前記決定された前記少なくとも2つのオフセットポイントを三次元シーンの前記少なくとも1つのサポート上に映し出すステップとを備えることを特徴とする方法が提供される。
【0015】
また、本発明の他の態様によれば、前記計算されたオフセットによって線引きされた前記計算されたサーフェスをテセレートするステップをさらに備えることを特徴とする方法が提供される。
【0016】
また、本発明の他の態様によれば、前記三次元幾何学モデルオブジェクトの視覚化を構築するステップは、前記計算されたサーフェスをレンダリングするためにシェーダを適用するステップをさらに備えることを特徴とする方法が提供される。
【0017】
また、本発明の他の態様によれば、すべての前記ステップは、前記三次元シーンの少なくとも別の1つのサポートで反復されるステップであることを特徴とする方法が提供される。
【0018】
また、本発明の他の態様によれば、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、上記のいずれかにおける方法に従って設計された三次元モデルオブジェクトのセットを提供するステップと、前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【0019】
また、本発明の他の態様によれば、前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする方法が提供される。
【0020】
また、本発明の他の態様によれば、前記ポイントを抽出するステップは、前記画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つを読み出し、読み出された前記三次元モデルオブジェクトの1つの少なくとも1つのサポートを読み出すステップと、前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合の前記ポイントを前記少なくとも1つの読み出されたサポート上に映し出すステップとをさらに備えることを特徴とする方法が提供される。
【0021】
また、本発明の他の態様によれば、前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする方法が提供される。
【0022】
また、本発明の他の態様によれば、前記ピックパスは、前記カーソルからの光線変換を備えることを特徴とする方法が提供される。
【0023】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする方法が提供される。
【0024】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、前記ユーザが前記画面との相互作用を行う間に反復されることを特徴とする方法が提供される。
【0025】
また、本発明の他の態様によれば、コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、上記のいずれかにおける方法を実行するための手段を備えることを特徴とするコンピュータプログラムが提供される。
【0026】
また、本発明の他の態様によれば、このコンピュータプログラムが記録されるコンピュータ可読記憶媒体が提供される。
【図面の簡単な説明】
【0027】
【図1】本発明の例の流れ図を示す図である。
【図2】グラフィカルユーザインタフェースの例を示す図である。
【図3】クライアントコンピュータシステムの例を示す図である。
【図4】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図5】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図6】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図7】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図8】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図9】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図10】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図11】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図12】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図13】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図14】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図15】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図16】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【発明を実施するための形態】
【0028】
本発明の実施形態は、限定されない例として、添付図面を参照しながら説明される。
【0029】
三次元モデルオブジェクトを設計するためのコンピュータ実装方法を提案する。本方法は、ユーザが画面との相互作用(対話)を行うステップを備える。本方法は、ユーザ相互作用に対応するストロークを定義するステップも備える。本方法は、ストロークをポイントの集合に離散化するステップも備える。本方法は、ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップも備える。本方法は、映し出されたポイントの集合および前述の少なくとも1つのサポートから三次元モデルオブジェクトを構築するステップも備える。
【0030】
本方法は、三次元モデルオブジェクトを設計するためのものである。「三次元モデルオブジェクトの設計」は、三次元モデルオブジェクトを作り上げるプロセスの少なくとも一部である任意の動作または一連の動作を指定する。従って、本方法は、三次元モデルオブジェクトをゼロから作成することを備えることもある。代替として、本方法は、あらかじめ作成された三次元モデルオブジェクトを提供し、その後、その三次元モデルオブジェクトを修正することを備えることもある。
【0031】
本方法を、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装方法に含むことができる。本方法は、三次元モデルオブジェクトを設計する方法に従って設計された三次元モデルオブジェクトのセットを提供するステップを備える。本方法は、提供された三次元モデルオブジェクトのセットのポイントを抽出するステップも備える。方法は、抽出されたポイントから滑らかな幾何学曲線を計算するステップも備える。本方法は、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップも備える。
【0032】
三次元モデルオブジェクトを設計する方法は、複雑な三次元モデルオブジェクトをより簡単に速く構築できるようにし、三次元モデルオブジェクトを構築するのに必要な計算リソース(例えば、CPU、メモリ)を大幅に減らす。三次元モデルオブジェクトを設計する方法はまた、三次元幾何学モデルオブジェクトを設計する方法をより簡単に速く行わせるので、設計プロセスの生産性が高まる。
【0033】
本方法は、コンピュータ実装される。これは、本方法のステップ(または実質上すべてのステップ)が少なくとも1つのコンピュータによって実行されることを意味する。例において、少なくとも一部の方法のステップをトリガすることは、ユーザとコンピュータとの相互作用を通じて行われる。ユーザとコンピュータとの相互作用に必要なレベルは、予測され、ユーザが望むものを実装するのに必要なものとバランスが取られる、自動性のレベルに依存する。例において、このレベルをユーザ定義および/または事前定義のレベルとすることができる。
【0034】
例えば、画面との相互作用のステップは、ユーザが介入するステップの一例である。
【0035】
本方法をコンピュータ実装する典型的な例は、本目的に適したGUI(グラフィカルユーザインタフェース)を備えるシステムで方法を行うものである。GUIは、メモリとプロセッサとに結合される。データベースを記憶するメモリは、その記憶に適していれば任意のハードウェアでよい。そのようなシステムが、三次元モデルオブジェクトおよび三次元幾何学モデルオブジェクトの設計を改善する。そのようなシステムであるので、設計の専門家を含む、幅広いユーザによって用いることが可能になる。例えば、GUI(ユーザとの相互作用を行う画面を備える)を通じてユーザが関与するステップが行われることもあれば、GUIが関与することなく、メモリにアクセスするプロセッサによって、完全にコンピュータ化されたステップが行われることもある。
【0036】
メモリに記憶される情報(即ち、三次元形状パラメータ(複数可))をデータベース形式で記憶できる。「データベース」とは、検索および読み出し用に体系化されたデータ(即ち、情報)の集積を意味する。メモリに記憶される場合、データベースは、コンピュータによる高速な検索および読み出しが可能になる。データベースは実際、各種データ処理操作と併せてデータの記憶、読み出し、修正および消去を容易にするように構成される。データベースは、レコードに分解することができるファイルまたはファイルのセットから成り、各レコードは1または複数のフィールドから成る。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを読み出すことができる。キーワードおよびソートコマンドを使用して、ユーザは、用いられるデータベース管理システムの規則に従って、多数のレコード内のフィールドを素早く検索し、再配列し、グループ化し、そして選択して、特定のデータ集合体に関するレポートを読み出すまたは作成することができる。
【0037】
本方法の事例として、データベースは、三次元幾何学モデルオブジェクトを設計するのに用いられる三次元モデルオブジェクトのセットを備えることができる。もちろん、データベースは、本方法に従って設計された三次元幾何学モデルオブジェクトを記憶できる。
【0038】
本方法およびシステムは、一般にモデルオブジェクトを巧みに操作する(manipulate)。モデルオブジェクトは、メモリに記憶されたデータによって定義される任意のオブジェクトである。拡大解釈すると、「モデルオブジェクト」という表現は、データ自体を指す。システムのタイプに従って、モデルオブジェクトを異なる種類のデータによって定義できる。
【0039】
CADシステムは少なくとも、CATIAなどの、モデルオブジェクトのグラフィック表現に基づくモデルオブジェクトを設計するのに適した任意のシステムである。従って、CADモデルオブジェクトを定義するデータは、モデルオブジェクトの表現を可能にするデータ(例えば、空間の相対位置を含むジオメトリデータ)を備える。CADモデルオブジェクトは、幾何学モデルオブジェクトとも呼ばれ、三次元CADモデルオブジェクトは、三次元幾何学モデルオブジェクトとも呼ばれる。CADシステムは例えば、エッジまたはライン、場合によってはフェイスまたはサーフェスを用いて、CADモデルオブジェクトの表現を提供できる。各種方法、例えば、NURBS(非均一有理Bスプライン)で、ライン、エッジ、またはサーフェスを表現できる。具体的には、CADファイルは、ジオメトリを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のCADファイルまたは複数のCADファイルに記憶できる。モデルオブジェクトをCADシステムで表現するファイルの典型的なサイズは、一部品当たり1メガバイトの範囲内である。そしてモデルオブジェクトを、典型的には、数千の部品から成る組み立て体にすることが可能である。
【0040】
CADシステムは、ピクセルベースのジオメトリを用いてモデルオブジェクトの表現を提供することもできる。ピクセルベースのジオメトリモデルオブジェクト(以下モデルオブジェクトと呼ぶ)は、ピクセルを順序付けるピクセルパターンを用いる。ピクセルベースのジオメトリによってライン、エッジまたはサーフェスを表現できる。具体的には、CADファイルは、ピクセルを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のCADファイルまたは複数のCADファイルに記憶できる。ピクセルベースのジオメトリモデルオブジェクトは、幾何学モデルオブジェクトとは逆に、数式によって定義されるプロパティを持たないオブジェクトであることを理解されたい。
【0041】
システムは、CAEシステムおよび/またはCAMシステムになることも可能であり、CADモデルオブジェクトは、CAEモデルオブジェクトおよび/またはCAMモデルオブジェクトになることも可能である。実際、CADシステム、CAEシステムおよびCAMシステムは、これらのシステムの任意の組み合わせに対応するデータによってモデルオブジェクトを定義できるので、他方のシステムにとって排他的ではない。
【0042】
CADという環境においては、モデルオブジェクトを、典型的には、例えば、一部品または部品から成る組み立て体、あるいは製品の組み立て体などといった、製品を表現する3Dモデルオブジェクトにすることが可能である。「3Dモデルオブジェクト」とは、その3D表現を可能とするデータによってモデル化された任意のオブジェクトを意味する。3D表現は、全角度から部品をビューすることが可能である。例えば、3D表現する場合、3Dモデルオブジェクトを操縦して、オブジェクトの軸を任意に回転したり、またはその表現が表示されている画面の軸を任意に回転することができる。これは、3Dでモデル化してない2Dアイコンを著しく排除する。3D表現の表示は、設計を容易にする(即ち、統計的に、設計者が自分の仕事を完了する速度が上がる)。製品の設計が製造プロセスの一部であるため、この3D表現によって産業における製造プロセスが高速化する。
【0043】
CADシステムを履歴ベースにすることが可能である。この場合、幾何学モデルオブジェクトは、幾何学的機能の履歴を備えるデータによってさらに定義される。実際、人物(即ち、設計者/ユーザ)が標準のモデリング機能(例えば、押し出し、回転、カット、および/またはラウンドなど)および/または標準のサーフェス機能(例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングなど)を用いることによって、幾何学モデルオブジェクトを設計できる。そのようなモデリング機能をサポートする多くのCADシステムは、履歴ベースのシステムである。このことは、設計機能による履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて上記の幾何学的機能をまとめてリンクした、非巡回的なデータの流れによって保存されることを意味する。この履歴ベースのモデリングパラダイムは、80年代初めからよく知られている。幾何学モデルオブジェクトは、2つの永続的データ表現によって記述される。つまり、履歴表現とB表現(即ち、境界表現)によって記述される。B表現は、履歴で定義された計算結果である。幾何学モデルオブジェクトが表現される時にコンピュータ画面に表示される部品の形状は、B表現(のモザイク模様(tessellation))である。部品の履歴は、設計意図である。基本的に、履歴は、幾何学モデルオブジェクトに行なった操作情報を集める。B表現を履歴と共に保存して、複雑な部品をより簡単に表示させることができる。設計意図に従って部品の設計変更を可能にするために、履歴をB表現と共に保存できる。
【0044】
PLMシステムとは、物理的に製造された製品を表現するモデルオブジェクトの管理に適した任意のシステムを意味する。PLMシステムにおいて、モデルオブジェクトは、物理的オブジェクトを製造するのに適したデータによって定義される。この定義は、典型的には、次元値および/または許容値になる。正しくオブジェクトを製造するために、実際そのような値を使用した方がよい。
【0045】
CAEシステムとは、幾何学モデルオブジェクトの物理的な動きを分析するのに適した任意のシステムを意味する。CAEシステムにおいて、モデルオブジェクトは、そのような動きを分析するのに適したデータによって定義される。この定義は、典型的には、動きの機能のセットになる。例えば、ドアに対応するモデルオブジェクトを、ドアが軸の周りを回転することを示すデータによって定義できる。
【0046】
図2は、システムのGUIの例を示し、そのシステムは、CADシステムである。
【0047】
GUI2100は、典型的なCADに似たインタフェースであり、標準のメニューバー2110、2120に加えて、下側ツールバー2140と横側ツールバー2150とを有する。このようなメニュー・ツールバーは、ユーザが選択可能なアイコンのセットを包含し、各アイコンは、当業者に周知である、1または複数の操作または機能と関連付けられている。このようなアイコンのいくつかは、GUI2100中で表示される3Dモデルオブジェクト2000での編集および/または作業に適用されるソフトウェアツールと関連付けられる。ソフトウェアツールをワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチの中には、モデル製品2000の幾何学的機能を編集するのに適した、編集ワークベンチがある。操作において、設計者は、例えば、オブジェクト2000の部品を事前選択した後、適切なアイコンを選択することによって操作(例えば、次元、色の変更など)を開始するか、または幾何学的制約を編集できる。例えば、典型的なCAD操作は、画面に表示された3Dモデルオブジェクトの穴あけまたは折り込みのモデリングである。
【0048】
GUIは、例えば、表示された製品2000に関連するデータ2500を表示することが可能である。図2の例において、「機能ツリー」として表示されているデータ2500およびその3D表現2000は、ブレーキキャリパーとディスクとを含むブレーキ組み立て体に関連する。GUIは、各種タイプのグラフィックツール2130、2070、2080をさらに示し、例えば、編集された製品の操作のシミュレーションをトリガするか、または表示された製品2000の各種属性をレンダリングして、オブジェクトの3D定位を容易にすることができる。ユーザがグラフィックツールとの相互作用を可能にする触覚デバイスによってカーソル2060を制御できる。
【0049】
図3は、例えば、ユーザのワークステーションなどの、クライアントコンピュータシステムを示す。
【0050】
クライアントコンピュータは、内部通信バス1000に接続されたCPU(中央処理装置)1010を備え、RAM(ランダムアクセスメモリ)1070も内部通信バスに接続されている。クライアントコンピュータは、内部通信バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたGPU(画像処理装置)1110をさらに備える。ビデオRAM1100もフレームバッファとして当業者に周知である。大容量記憶デバイスコントローラ1020は、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを明示的に具体化するのに適した大容量メモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、EPROM、EEPROM、およびフラッシュメモリなどの半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、CD−ROMディスク1040とを含む。上述のいずれのメモリも、特別に設計されたASIC(特定用途向け集積回路)によって補完または組み込むことができる。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス1090も含むことができる。カーソル制御デバイスをクライアントコンピュータで用いることによって、図2を参照して述べたように、ユーザがカーソルを画面1080の希望の場所に選択的に位置付けするのが可能になる。さらに、カーソル制御デバイスは、ユーザが各種コマンドを選択して、制御信号を入力できるようにする。カーソル制御デバイスは、制御信号をシステムに入力する多数の信号生成デバイスを含む。典型的には、カーソル制御デバイスをマウスにして、信号を生成するのにマウスのボタンを用いることができる。
【0051】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を行わせる手段を備える。本発明を、例えば、デジタル電子回路に実装するか、またはコンピュータハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせに実装することができる。本発明の装置を、プログラマブルプロセッサによって実行される機械可読記憶デバイスに明示的に具体化されるコンピュータプログラム製品に実装することができ、そして本発明の方法ステップを、入力データで操作して出力データを生成することによって本発明の機能を行う命令のプログラムを実行するプログラマブルプロセッサによって行うことができる。
【0052】
プログラマブルシステムで実行可能である1または複数のコンピュータプログラムに本発明を有利に実装でき、プログラマブルシステムは、データ記憶システムにデータおよび命令を送受信するのに結合された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。アプリケーションプログラムを、必要に応じて、ハイレベルの手続き型言語またはオブジェクト指向プログラミング言語またはアセンブリ言語または機械語で実装でき、いずれの場合でも、それらの言語を、コンパイラ型言語またはインタープリタ型言語にすることができる。
【0053】
図1を参照すると、三次元幾何学モデルオブジェクトを設計する方法が示されている。
【0054】
ステップS100からステップS150において、三次元モデルオブジェクトを設計する方法が実行される。三次元モデルオブジェクトは、ピクセル(画素)であるデータによって表現される。ピクセルは、併せて配列されて、三次元シーンのパターンを形成する。例えば、ラスタグラフィックス画像(ビットマップとも呼ばれる)は、一般にピクセルの二次元長方形グリッドを表現するデータ構造である。ラスタ画像は、画面に表示された画像とビット対ビットで対応する。
【0055】
本発明において、三次元モデルオブジェクトは、ピクセルの仕様を包含し、その仕様によってピクセルを生成できる。三次元モデルオブジェクトの仕様により、三次元モデルオブジェクトを3Dシーンで表現することが可能である。重要なことは、3Dモデルオブジェクトのプロパティは、数式によって定義されないことである。
【0056】
ステップS100において、ユーザは、画面と相互作用する。ユーザ相互作用は、典型的には、画面の範囲内で行われる。これは、例えば、画面がセンシティブ(例えば、シングルタッチスクリーンまたはマルチタッチスクリーン)であれば、ユーザが画面上に圧力をかけて直接的に行われるか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行われうる。これを、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。タッチパッドまたはセンシティブ画面を通じてユーザ相互作用することによって、ユーザ相互作用がより実際に近くなる(即ち、設計の専門家がオブジェクトを紙面に設計する、従来の発想段階により似てくる)。3Dモデルオブジェクトを実際のように設計する方法は、設計の専門家がCADシステムを使用するのに役立つので、改善された点である。これによって設計が、よりし易くなる。
【0057】
次に、ステップS110において、ストロークは、ユーザ相互作用に対応して定義される。画面とのユーザ相互作用によって、ユーザは、画面のいくつかのピクセルをアクティブにする。当業者に周知のように、これらのピクセルをストロークに変換できる。例えば、ユーザ相互作用が、ポインティングデバイスまたはタッチペンを通じて行われる場合、アクティブになったピクセルは、ポインティングデバイスまたはタッチペンの場所に対応する。そのアクティブになったピクセルを画面上で動的に表示できる。アクティブになったピクセルをストロークに変換できる。ストロークの定義は一般に、視覚的に連続したラインを形成する位置を画面上に配置することを意味する。それらの位置を実際に表示できる。この表示は、例えば、画面上でアクティブになった少なくとも一部の位置を追跡記録することによってなされうる。従って、ストロークは、ユーザがユーザ相互作用を通じてスケッチしたものから導かれるという意味で、ユーザ相互作用に対応する。従って、ストロークはいわば、ユーザによるユーザ相互作用を通じてスケッチされる。
【0058】
図4を参照すると、ユーザ相互作用で得られたストローク400が表されている。ストロークを、例えば、画面上でユーザに表示することもできるし、そうしないこともできる。
【0059】
図1に戻って参照すると、ステップS120において、ストロークは、ポイントの集合に離散化される。ストロークの離散化は、例えば、「ストロークポイント」と呼ばれるいくつかのポイントにストロークを低減することによってストロークをサンプリングし、そしてポイントの集合またはストロークポイントの集合を形成することを意味する。ストロークが画面上の位置の集合であるので、したがって、ストロークの離散化は、位置の集合を単一のストロークポイントに低減する(即ち、数を減らす)ことを意味する。
【0060】
図5を参照すると、図4で表されたストロークは、ポイントの集合、例えば、ポイント402に離散化される。
【0061】
次に、図1のステップS130において、ポイントの集合は、三次元シーンの少なくとも1つのサポート上に映し出される。サポートは、映し出されたポイントを受信するのに適応した幾何学的エンティティ(可視または不可視)になりうる。サポートは、「ストロークポイント」に対する礎石(socle)として機能できる。サポートは、例えば、任意の種類のサーフェスになりうる。そのようなサーフェスを、例えば、プレーン画面などのプレーン(平面)か、または例えば、球面などのカーブしたサーフェス(曲面)か、またはその他の描画サーフェスにすることができる。実際、プレーン画面とは異なる描画サーフェスを、画面(画面の設計範囲)に組み込むことができる。言い換えれば、サポートは、三次元空間、例えば、3Dシーンの幾何学的エンティティである。いくつかのサポートは、3Dシーン中に存在しうることを理解されたい。それらのサポートは、ポイントの集合を映し出すことができる少なくとも1つのサーフェスを形成する。
【0062】
ポイントの集合は、サポート(複数可)上で映し出される。ポイントの集合を映し出すことは、「ストロークポイント」がサポート上で位置を有するように(サポートがプレーン画面とは異なる場合)、「ストロークポイント」に変換を適用することを意味する。結果的に、ストロークの鮮明度(definition)がまるで実物のようになり、画面は、ここでは仮想的に、描画紙(サポートがプレーン画面の場合、仮想的に設計者と直角に面する紙)に対応する。その結果、ストロークが定義された画面である二次元プレーンと、そのサポートである三次元シーン中のサーフェスとの間でマッピングが作成される。
【0063】
実際には、当業者に周知のように、ポイントの集合がサポート上に映し出される時にはユーザのビューポイントが考慮される。
【0064】
図6では、プレーンサポート410が表されている。ストロークの離散化されたポイントが、このプレーンサポートに映し出されている。
【0065】
次に、図1のステップS140において、映し出されたポイントの集合およびポイントの集合が映し出されたサポート(複数可)から3Dモデルオブジェクトが構築される。三次元モデルオブジェクトの構築は、三次元モデルオブジェクトの仕様が1つのファイルまたは複数のファイルに記憶されることを意味する。結果的に、構築された3Dモデルオブジェクトを次に使用するために、例えば、データベースに記憶できる。その3Dモデルオブジェクトは、映し出された「ストロークポイント」および「ストロークポイント」が映し出されたサポートで構築される。この構築は、映し出された「ストロークポイント」の位置が、そのサポートに関するデータと併せて記憶されることを伴う。結果的に、構築ステップは、映し出された「ストロークポイント」およびサポートの位置に関連するデータの計算が行われるステップである。有利なことに、3Dシーン中のサポートの座標のみを記憶すればよいので、三次元モデルを構築する速度が改善されて、三次元モデルオブジェクトを構築する(または計算する)のに必要な計算リソースが減る。
【0066】
構築された3Dモデルオブジェクトに記憶された3Dシーン中のサポートの座標に戻って、サポートを見つけることができる。映し出された「ストロークポイント」の座標に戻ってサポートを見つけることもできる。つまり、共分散行列および固有ベクトルの計算を経てプレーンの平均(average plane)が計算される。構築されたモデルオブジェクトをサポートとして用いることも可能である。つまり、そのオブジェクトをポイントのクラウドとして用いる。構築された3Dモデルオブジェクト自体は、例えば、その構築された3Dモデルオブジェクトを形成するポイントのローカルテセレーションを経てサポートになる。
【0067】
本発明に係る3Dモデルオブジェクトの設計は、どの幾何学曲線も計算する必要があるので、計算リソースのニーズを制限する。つまり実際、ジオメトリが生成される幾何学モデルオブジェクトは、大量の計算リソースが必要である。さらに、本発明に従って構築されるピクセルベースのジオメトリを記憶するのに必要なメモリ量の方が、幾何学モデルオブジェクトのメモリ量よりも少ない。さらに、本発明により、純粋な幾何学的アプローチでは(簡単に)得ることができない3Dモデルオブジェクトの生成ができるようになる。つまり実際、幾何学的表現は、計算リソースの消費を制限するために比較的単純にする必要がある。従って、本発明は、計算リソースが上記のユーザ相互作用をもはや制限しないように、画面とのユーザ相互作用の柔軟性を高める。さらなる利点は、構築される3Dモデルオブジェクトがユーザの設計意図を確実に遵守することである。実際、ユーザによって定義されるストロークにはインタープリテーションがあり、これによってユーザが設計したとおりに再生される。反対に、幾何学的環境において(つまり、幾何学モデルオブジェクトを用いる環境)、幾何学曲線は、ユーザの源設計意図を修正する特性を持つ。例えば、5度のベジエ曲線ではユーザが振動する形状を作成することができなくなるが、本発明に従って構築されたモデルオブジェクトでは可能である。従ってユーザは、手描き環境で作業しているように感じ、人間工学の点で改善される。結果として、より正確な3D描画(例えば、スケッチ)がより簡単に速く作成できる。
【0068】
本方法のステップにおいて、3Dモデルオブジェクトが構築され、このことは、オブジェクトを表現するデータを、システム、例えば、CADシステムによって引き出す(exploit)ことができることを意味する。従って、設計された3Dモデルオブジェクトを表示するために、三次元モデルオブジェクトの視覚化(ステップS150)を構築することができる。視覚化の構築は、3Dモデルオブジェクトのグラフィカルな表現が計算されることを意味する。特に、構築される視覚化は、ピクセルベースであり、その視覚化は、3Dモデルオブジェクトの表現が画像処理装置のみで計算されることに関与するので、CPUおよびメモリの計算リソースを維持する。
【0069】
他の利点を以下で明らかにする。
【0070】
視覚化の構築は、映し出されたポイントの集合の各ポイントに対する、少なくとも2つのオフセットポイントの計算を備えることができる(ステップS153)。映し出された「ストロークポイント」のオフセットポイントは、「ストロークポイント」が映し出されるサポート(複数可)上に位置付けされ、映し出された「ストロークポイント」から間隔が空けられた、ポイントである。オフセットポイントは、サポート上にあり、これは、そのポイントがサーフェスに属することを意味する。オフセットポイントは、映し出された「ストロークポイント」から間隔が空けられており、これは、そのオフセットポイントが「ストロークポイント」と区別されていることを意味する。
【0071】
オフセットポイントの計算は、以下のとおりに実行されうる。最初に、ステップS151において、ポリライン(poly-line)が計算される。ポリラインは、サポート上に映し出されたポイントの集合のポイントをリンクする。ポリラインは、一続きのラインセグメントであり、1つのラインセグメントは、映し出された2つの「ストロークポイント」によって境界された線分である。ポリラインがサポート上のストロークの映し出し(projection)に近似するように、ラインセグメントがつながっていることを理解されたい。
【0072】
図6を参照すると、映し出された「ストロークポイント」をつなげたポリライン420が表示されている。明らかなように、ポリラインは、サポート410上にある図5のストローク400の映し出し(示されていない)に近似する。
【0073】
図1に戻って参照すると、ステップS152において、サポート上に映し出された各「ストロークポイント」に対して、オフセットベクトルが計算される。オフセットベクトルを以下のように表記する。
【0074】
【数3】
【0075】
(以下、各ベクトルを以下のように表記する。)
【0076】
【数4】
【0077】
αは、ユーザによって、またはシステムのデフォルトによって選択することができる係数である。この係数は、オフセットポイントと、映し出された「ストロークポイント」との間の距離を部分的に決定し、その距離から、オフセットポイントが計算される。有利なことに、係数αは、ステップS156において計算された表現の厚みを増す、または減らすことができる。n→は、映し出された「ストロークポイント」のサポートに垂直な単位ベクトルである。L→は、ポリラインを形成するポイントの集合の2つのポイントをリンクするラインによって定義されるベクトルである。n→およびL→は、映し出された共通の「ストロークポイント」を原点として有する。n→とL→との積は、ベクトル積である。
【0078】
オフセットベクトルの計算は、図7でより明らかになる。映し出しステップS130の結果、各ポイント402、404、406は、サポート上に位置付けされて、そして法線ベクトルn→と関連付けられる。描かれたように、ポイント406とポイント404とをリンクするベクトルL→が決定されて、L→は、ポイント406を原点として有する。従ってポイント406に対するオフセットベクトルO→を、上記(式1)の関係式で計算することができる。同様に、ポイント404に対するオフセットベクトルO→は、ベクトルL→から計算されて、ベクトルL→は、ポイント404とポイント402、およびポイント404と法線ベクトルをリンクし、両方のベクトルL→は、ポイント404を原点として有する。両方とも、α=1になるように、係数αが選択されている。
【0079】
図1に戻って参照すると、以前に計算されたオフセットベクトルO→から、少なくとも2つのオフセットポイントが決定される。その決定は、2つのポイントが特定されるように、ベクトルのノルム
【0080】
【数5】
【0081】
を計算することによって行われる。これは図8に示され、図8においては、オフセットベクトルのノルムからオフセットポイントが得られる。例えば、映し出された「ストロークポイント」406は、2つのオフセットポイント408と409を有する。
【0082】
次に、そのオフセットポイントは、3Dシーンの少なくとも1つのサポート上に映し出される(ステップS154)。好適には、その映し出しは、サポートがプレーンでないか、または「ストロークポイント」を映し出す間にいくつかのサポートが関与する場合に行われる。映し出しは、オフセットポイントがサポート(複数可)上に存在する、つまり、オフセットポイントがサーフェスに属することを確実にする。「ストロークポイント」を任意の種類のサポート上に映し出すことが可能であるので、ユーザにとって設計能力が向上することを理解されたい。例えば、サポートは、しわが寄った紙に似たサーフェスを有することができ、このしわが寄ったサーフェス上でストロークを映し出すことが可能である。
【0083】
次に、オフセットポイントからサーフェスが計算される(S155)。サーフェスは、計算されたオフセットポイントによって線引きされて、映し出されたポイントの集合(映し出された「ストロークポイント」とも呼ばれる)を備える。サーフェスを線引きすることは、オフセットポイントをリンクすることによって、サーフェスの境界が作成されることを意味する。オフセットポイントは、映し出された「ストロークポイント」と同様のやり方で互いにリンクされる。結果的に、2つのオフセットポイントは、それぞれの映し出された「ストロークポイント」がリンクされる場合のみリンクされる。さらに、ポリラインと同じ面にあるオフセットポイントのみをリンクすることができる。実際、ポリラインは、サーフェスの両面で定義されるように計算されるサーフェスを分割する(少なくとも部分的に分割する)。オフセットポイントがまとめてリンクされる間に2つの補完的ポリラインが構築されるが、ポリラインの片面にある第1の補完的ポリラインは、映し出された「ストロークポイント」を備え、そしてもう片面にある第2の補完的ポリラインも、映し出された「ストロークポイント」を備えることを理解されたい。
【0084】
従ってオフセットポイントから計算されるサーフェスは、「ストロークポイント」が映し出されたサポート(複数可)を形成するサーフェスの選択された部分である。この計算されたサーフェスを配置したり曲げたりできる。結果的に、計算されたサーフェスは、サポート(複数可)の位相を反映し、計算されたサーフェスが3D空間でどのように変化するかを把握することが可能である。
【0085】
実際には、計算されたサーフェスは、テセレートされる(ステップS155)。計算されたサーフェスは、位相モデルの境界であり、計算されたサーフェスの管理およびレンダリングを容易にするために、テセレーションによって近似される。テセレーションは、計算されたサーフェスを、細小で分析し易い2Dフェイスのピースから成るメッシュに分割する。典型的には、計算されたサーフェスは、オフセットポイントから生成された三角形にテセレートされる。サーフェスが三角分割されたとも言える。当業者に周知のように、メッシュジェネレータによってサーフェスを生成できる。テセレーションの結果は、図9に示している。
【0086】
次に、ステップS156において、テセレートされたサーフェスの表現が計算される。このステップは、サーフェスのレンダリングにシェーダを適用していることを備える。シェーダは、例えば、画像処理装置(GPU)などの、グラフィックスハードウェアに対する画面効果の計算による命令を備える小さなソフトウェアである。シェーダは、共通のジオメトリ変換およびピクセルシェーディング機能のみが可能であり、シェーダは、ピクセルの特性を記述する。実際には、シェーダは、テセレートされたサーフェスの2Dフェイスの各ピースに適用される。計算された表現を、ユーザによって、例えば、画面上で表示することができる。
【0087】
図10は、テセレートされたサーフェスを示し、三角形430のみがテセレートされたサーフェスに適用されたシェーダを有し、三角形430はグレーで表されている。
【0088】
本方法のステップを、少なくとも1つの他のサポートで反復することができることを理解されたい。サポートをユーザが選択するか、または自動的に選択することができる。このように、オブジェクトの一部となるいくつかの3Dモデルオブジェクトの構築が可能である。言い換えれば、図13から図16に示すように、ユーザは、同じオブジェクトのいくつかの異なるビューを作成することができる。図13は、3Dモデルオブジェクトの視覚化を示している。この3Dモデルオブジェクトは、ユーザによって描かれたオブジェクト(ここではカメラ)のスケッチである。このスケッチは、プレーンサポート上で構築されていて、ユーザが想像したカメラのビューポイントの1つの代表である。図14は、ユーザが想像したカメラの別の視覚化が構築されたように、ユーザが選択した別のプレーンサポートであり、この視覚化は、カメラの別のビューポイントの代表である。同様に、図15および図16は、2つの異なるサポート上で構築された2つの3Dモデルオブジェクトの2つの視覚化を示し、カメラの他の2つのビューポイントを表している。このように、ユーザは、オブジェクトの形状をステップごとに(つまり、サポートの新しい選択ごとに)トレースして、いくつかのビューポイントに従って同じオブジェクトの視覚化をいくつか得ることができる。
【0089】
実際には、ユーザは、3Dシーンのサポート(例えば、プレーン)を巧みに操作することができるので、サポートの巧みな各操作によって新しいサポートを作成することができる。サポートの巧みな操作とは、ユーザが3Dシーンのサポートを移動することを意味する。当業者に周知のように、この移動は、例えば、マウスなどの触覚デバイスでサポートを移動するようにして行われる。その巧みな操作の結果、新しいサポートが選択される。有利なことに、ユーザがサポートを巧みに操作する時、そのユーザが新しいビューポイントを認識できるように、さらに3Dモデルオブジェクトの視覚化を見ることができる。
【0090】
さらに、本方法は、3Dモデルオブジェクトを同じサポート上で定義することを可能にする。これによって、ユーザは、ユーザが用紙で描いたように、いくつかのストロークをスケッチしながら、複雑なオブジェクト、例えば、カメラをトレースすることが可能になる。
【0091】
有利なことに、ユーザによって定義されるストロークの視覚化は、曲面的であるが、そのような表現は通常、線形(linear)である。標準的なアプローチでは、ポリラインの集合は、オブジェクトを表現するが、本発明では、オブジェクトをテセレートすることによってシェーダを適用できるようにする(例えば、計算されたサーフェス上の各三角形にシェーダを適用できる)。結果的に、シェーダのおかげでいくつかの表示オプション(例えば、厚み、不透明感、等級別の不透明感などの視覚的レンダリング)を適用できる。
【0092】
本方法のこのステップにおいて、ピクセルベースの表現による3Dモデルオブジェクトが構築されて、ユーザに表示される。言い換えれば、3Dピクセルスケッチが表示される。ユーザは、3Dモデルオブジェクトから得られた幾何学的3Dモデルオブジェクトで作業することが必要であろう。例えば、ユーザは、CADモデルオブジェクト(幾何学モデルオブジェクトとしても知られる)を必要とするCADシステム内において、3Dモデルオブジェクトを変換することが必要であろう。
【0093】
3D幾何学モデルオブジェクトを設計する本方法は、上記のように設計された3Dモデルオブジェクトのセットを提供するステップを備える。このステップは、図1のブロックS140とブロックS160とを結ぶ矢印によって表現されている。3Dモデルオブジェクトを提供することは、構築された3Dモデルオブジェクトにシステムがアクセスすることができることを意味する。典型的には、CADシステムは、ピクセルベースのジオメトリモデルオブジェクト(つまり、3Dモデルオブジェクト)の仕様を備えるファイルにアクセスする。3Dモデルオブジェクトのセットをインスタンスとしてデータベースに記憶できる。
【0094】
ひとたびシステムが3Dモデルオブジェクトのセットにアクセスすると、3Dモデルオブジェクトのポイントが抽出される(ステップS160)。この抽出されたポイントは、サポート上で映し出された「ストロークポイント」である。言い換えれば、CADシステムは、サポート上に配置された各ポイントのそれぞれの位置にアクセスすることができる。以前に述べたように、「ストロークポイント」の座標に戻ってサポートを見つけることができる。
【0095】
次に、S170において、抽出されたポイントから滑らかな幾何学曲線が計算される。滑らかな幾何学曲線は、画像ポイントのそれぞれのデカルト座標を閉区間の連続微分可能関数とするような、ユークリッド空間における閉区間の関数によって定義される。言い換えれば、滑らかなカーブは、ギャップや不連続とは無関係の、連続したカーブである(つまり、例えば、2つのラインの交点から得られるポイントにおいてスロープの急激な変化がないカーブである)。当業者に周知のように、滑らかなカーブの計算は、例えば、最小二乗法で行われる。結果として、ピクセルベースのジオメトリを有する3Dモデルオブジェクトのセットは、ジオメトリデータを有する少なくとも1つの3D幾何学モデルオブジェクトに変換される。有利なことに、非幾何学データは、特定のアルゴリズムを適用することができる幾何学データに変換される。これによって、3D幾何学モデルオブジェクトをゼロから作成するにはかなりの量の計算リソースが必要になるためにCADシステムではゼロから作成することができなかった3D幾何学モデルオブジェクトを作成することが可能になる。このように、本発明の方法に従った3D幾何学モデルオブジェクトの構築は、ユーザの設計能力を高めて、システムの計算リソースの消費を制限する。
【0096】
ステップS160における3Dモデルオブジェクトのポイントの抽出から、ステップS170における幾何学曲線の計算への遷移を、モードに従って行うことができる。このモードとは、図1のAで表記された3D幾何学モデルオブジェクトの自動抽出と呼ばれる第1モードと、図1のMで表記された3D幾何学モデルオブジェクトの手動抽出と呼ばれる第2モードである。
【0097】
自動抽出モードは、CADシステムとユーザとの間で何ら相互作用せずに滑らかな幾何学曲線を計算する(S170)。これは、システムが滑らかなカーブを計算する間、ユーザが介入しないことを意味する。自動的に抽出された滑らかな幾何学曲線は、映し出されたすべての「ストロークポイント」に対する平均位置を表現するカーブである。有利なことに、自動モードは、ユーザが何ら動かなくても、ユーザの設計意図を遵守する滑らかなカーブをトレースできるようにする。このモードは、幾何学的3Dモデルオブジェクトを設計する本方法を行う速度全体を上げる。
【0098】
このことを図11に示す。3つのポリライン502、503、504が示されている。3つのポリラインは、3Dモデルオブジェクトのセットを提供するステップにおいて提供された3Dモデルオブジェクトの代表が同じサポート上で映し出された「ストロークポイント」から構築される。カーブ500は、映し出された「ストロークポイント」から計算された滑らかなカーブを表す。つまり、幾何学的3Dモデルオブジェクト500は、ポリライン502、503、および504の集合の平均カーブを表現する。
【0099】
実際には、ポイントの抽出は、ポイントが映し出されるサポートに従って実行される。これは要するに、抽出されたポイントのフィルタリングが行われ、そのフィルタリングは、抽出されたポイントが映し出されるサポートに基づいていると言えよう。言い換えれば、同じサポート上で映し出された3Dモデルオブジェクトの「ストロークポイント」のサブセットが作成される。これによって、関連する3Dモデルオブジェクトを素早く見つけることが可能になる。
【0100】
一般に、1つのサポートにつき1つの3Dモデルオブジェクトが存在し、サポートに従って3Dモデルオブジェクトが構築される。しかしながら、2以上のサポートに従って、3Dモデルオブジェクトを構築することもできる。さらに、2つの3Dモデルオブジェクトは、同じサポートを有することができ、例えば、ユーザは、同じサポートを二度選択する。
【0101】
さらに、ポリラインのそれぞれの形状に従って、ポイントの抽出を実行できる。映し出されたストロークポイントを記憶する構造のおかげで、この抽出を行うことができる。つまり、構築された各3Dモデルオブジェクトは、ストロークポイントおよび数個のストロークポイントによって特徴付けられる。従って、ポイントの抽出は、映し出されたストロークポイントを記憶する構造を読み込むことに等しい。これらのポリラインは、同じサポート上で映し出された「ストロークポイント」から構築されていて、3Dモデルオブジェクトのセットを提供するステップにおいて提供された、3Dモデルオブジェクトの代表である。従ってフィルタリングは、ポリラインの集合を形成する3Dモデルオブジェクトの映し出された「ストロークポイント」を選択するために実行され、そのフィルタリングは、ポリラインの形状に基づく。例えば、2つのポリラインは同じ形状であるが、第3のポリラインが全く異なる形状である場合、同じ形状である2つのポリラインを備える第1のサブセットが作成されて、そして第3のポリラインを備える第2のサブセットが作成される。結果的に、第1の滑らかな幾何学曲線は、第1のサブセットのポリラインの集合から計算されて、第2の滑らかな幾何学曲線は、第2のサブセットのポリラインの集合から計算される。この大胆なフィルタリングによって、スケッチ段階の間、ユーザの設計意図を遵守しながら滑らかな幾何学曲線をトレースすることが可能になる。このフィルタリングは、類似したいくつかのストロークをスケッチするユーザは、今後のステップにおいてもそのようなストロークを表現する新しい(clean)ラインをトレースする予定であるという仮定に依存する。
【0102】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される(ステップ250)。これは、滑らかな幾何学曲線を定義するデータが、例えば、空間の相対位置を含むジオメトリデータなどのスムース表現が可能になるデータを備えることを意味する。言い換えれば、CADシステムによって引き出すことができるファイルが作成される。さらに、そのファイルをいくつかのシステム、例えば、コンピュータネットワークを通じて接続されたシステム間で簡単に共有することができる。
【0103】
抽出のステップ(S180)と、計算のステップ(S170)と、構築のステップ(S250)は、提供された各三次元モデルオブジェクトに対して反復されることを理解されたい。これは要するに、提供された3Dモデルオブジェクトのすべてのポイントが抽出されて、そして抽出されたほとんどすべてのポイントが3D幾何学モデルオブジェクトを構築するのに用いられると言えよう。言い換えれば、設計者が作成した3Dモデルオブジェクトから3D幾何学モデルオブジェクトを自動的に得ることが可能である。言い換えれば、ユーザがオブジェクトをスケッチした後で、そのオブジェクトのトレースを自動的に得ることができる。その結果、「新しい」オブジェクトを得る(つまり、オブジェクトのトレース)速度が上がり、今後の設計操作のためにそのトレースをCADシステムに取り込むことができる。
【0104】
手動抽出モードは、システム(例えば、CADシステム)とユーザとの間の相互作用に応じて滑らかな幾何学曲線を計算する(S170)。この計算は、システムが滑らかな幾何学曲線を計算する間、ユーザがシステム動作を用いることを意味する。従って滑らかな幾何学曲線は、ユーザとシステムとの相互作用を表すカーブである。言い換えれば、ユーザは、少なくとも2つの3Dモデルオブジェクトに代わることが予定されているカーブを描く。その結果、そのトレース段階は、ユーザの要求を満たす。
【0105】
実際には、ユーザは、ユーザ相互作用に対応するストロークが定義される(S200)ように、画面との相互作用を行う(ステップS190)。これらのステップは、ステップS100およびS110と同様である。
【0106】
次に、提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つと、上記の三次元モデルオブジェクトの1つのうち少なくとも1つのサポートとは、抽出されたポイントにおいて読み出される。言い換えれば、3Dモデルオブジェクトが構築された3Dモデルオブジェクトおよびサポート(複数可)が読み出される。
【0107】
この読み出しは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すことによって行うことができ、例えば、図2のカーソル2060を、ユーザがグラフィカルインタフェース内で相互作用ができるようにする触角デバイスによって制御できる。ユーザの相互作用を、例えば、画面がセンシティブ(例えば、シングルタッチスクリーンまたはマルチタッチスクリーン)であれば、ユーザが画面上に圧力をかけて直接行うか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行うことができることを理解されたい。この動作を、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。ユーザの相互作用が画面上で直接行われるイベントにおいて、ピックパスは、ユーザが圧力をかける画面の場所から始まる。
【0108】
最も近くにある3Dモデルオブジェクトは、画面との距離が最も短い3Dシーンの3Dモデルオブジェクトである。言い換えれば、最も近くにある3Dモデルオブジェクトは、ユーザによって最も近くにあると認識されたオブジェクトである。これは、ユーザのトレース操作を容易にする。
【0109】
ピックパスは、3Dモデルオブジェクトの提供されたセットと交差するパスである。ピックパスは、パスと交差したオブジェクトを拾い上げることができる、つまり、オブジェクトを個々に選択できることを意味する。言い換えれば、ピックパスは、画面の場所で計算された光線(近―遠光線)と3Dシーンの視覚化された3Dモデルオブジェクトとの交点からの結果である。
【0110】
読み出しは、検索および読み出し用に体系化されたデータの集積(例えば、データベース)に記憶された3Dモデルオブジェクトがクエリに応じて検索されて、クエリの結果として提供されることを意味する。
【0111】
実際には、ピックパスを、例えば、光線変換(ray casting)技術を用いて光線に実装できる(S210)。ピックパスは従って、光線と交差した3Dモデルオブジェクトの視覚化のリストを包含する。ピックパスの実装は、光線変換に限定されず、他の方法、例えば、光線ボリューム変換(volume ray casting)も想定することができる。光線変換は、光線と交差した第1のオブジェクト、つまり、3Dシーンの画面から最も近いオブジェクトを決定する、当業者に周知のソリューションである。光線は、カーソルから、またはタッチセンシティブな画面上にユーザが圧力をかける場所から変換される。カーソルから光線が変換されるイベントにおいて、その光線は連続して変換される。ユーザが画面との相互作用を行うイベント、例えば、ユーザが画面に触れるイベントにおいて、光線は、圧力がかかった画面の場所から変換される。
【0112】
カーソルから始まるピックパスから最も近いサポートを決定することによって、3Dモデルオブジェクトの提供されたセットの1つおよびそのサポート(複数可)の読み出しを行うことができ、このサポートで構築された3Dモデルオブジェクトも読み出されることを理解されたい。サポートが2以上の3Dモデルオブジェクトによって共有されるイベントにおいて、後でこれらの2以上のオブジェクトも読み出される。
【0113】
次に、ひとたび読み出しのステップが行われると(その上サポートが読み出されると)、ユーザ相互作用に対応するストロークは、ポイントの集合に離散化される(S230)。その後、ポイントの集合のポイントは、ステップS220において読み出されたサポート上に映し出される(S240)。これらのステップS230およびS240を、ステップS120およびS130と同様に行うことができることを理解されたい。
【0114】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される(ステップ250)。これは、自動抽出モードと同様に行われる。
【0115】
手動抽出モードに従った抽出のステップ(S180)と、計算ステップ(S170)と、構築ステップとは、ユーザが画面との相互作用を行う間に行われることを理解されたい。実際に、これらのステップは、画面とのユーザ相互作用に応じてストロークが定義される間に、要するに、少なくとも2つの3Dモデルオブジェクトに代わることが予定されているカーブをユーザが描く間に反復される。
【0116】
図12を参照すると、図11の滑らかなカーブ500から得られた3D幾何学モデルオブジェクトが示されている。CADシステムで、この幾何学モデルオブジェクトを巧みに操作することができる。例えば、カーブを修正するのに制御ポイント506を用いることができる。
【0117】
本発明の好適実施形態を説明してきた。本発明の主旨および範囲から逸脱しない範囲で、さまざまな変更が行われてもよいことを理解されたい。従って、他の実装は、以下の特許請求の範囲内とする。例えば、サポートのサーフェスの一部の選択を構築するのに用いられるオフセットポイントの計算を、ユーザまたはシステムによって決定された距離(例えば、ピクセル数)で映し出された「ストロークポイント」によって形成されるポリラインから伸びた通常のストリップを決定することによって計算してもよい。
【符号の説明】
【0118】
400 ストローク
402、404 ポイント
406 ストロークポイント
408、409 オフセットポイント
410 プレーンサポート
420 ポリライン
500 カーブ(幾何学的3Dモデルオブジェクト)
502、503、504 ポリライン
506 制御ポイント
1000 バス
1010 CPU
1020 大容量記憶デバイスコントローラ
1030 ハードドライブ
1040 CD−ROM
1050 ネットワークアダプタ
1060 ネットワーク
1070 RAM
1080 ディスプレイ
1090 触覚デバイス
1100 ビデオRAM
1110 GPU
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、幾何学的三次元モデルオブジェクトを設計する方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトを設計し、技術開発し、そして製造するためのシステムおよびプログラムが市場に多く出回っている。CADは、コンピュータ支援設計(Computer-Aided Design)の頭文字であり、例えば、オブジェクトを設計するソフトウェアソリューションに関わる。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭文字であり、例えば、将来の製品の物理的な動きをシミュレートするソフトウェアソリューションに関わる。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭文字であり、例えば、製造に関わる実行管理システム(mes)および操作を定義するソフトウェアソリューションに関わる。こうしたコンピュータ支援設計システムにおいて、グラフィカルユーザインタフェースは、コンピュータ支援技術の効率に関して重要な役割を果たす。これらのコンピュータ支援技術は、PLM(製品ライフサイクル管理:Product Lifecycle Management)システムに組み込むことができる。PLMは、企業が製品データを共有し、そのデータを共通プロセスに適用し、そして製品の構想から寿命までの製品開発に関する企業情報を事業拡大の構想に活用するのに役立つ経営戦略を指す。
【0003】
ダッソーシステムズ社製のPLMソリューション(商標CATIA、ENOVIAおよびDELMIAに基づく)は、製品エンジニアリング知識を体系化するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、事業を統合してエンジニアリングハブと製造ハブとの両方に接続するのを可能にする事業ハブとを提供する。これらのシステムはすべて、製品、プロセスおよびリソースをリンクして、動的で知識ベースの製品作成と、製品定義、調整、生産およびサービスを最適に導く意思決定サポートとを可能にするオープンオブジェクトモデルを実現する。
【0004】
オブジェクトの設計は、オブジェクトのモックアップを作成する前に、このオブジェクトの形状を三次元で作成するプロセスを指す。例えば、新しい車を考える場合、重要なタスクの1つは、その車体を作成することである。一般に、新しいオブジェクトおよびその形状の作成は、オブジェクトの設計者がそのオブジェクトを描く用紙の段階から始まる。描画は、2つのステップを備える。第1のステップは、スケッチステップであり、完成品を目的としない、素早く行われる手描き図が作成される。第2のステップは、トレーサステップであり、オブジェクトの明確な描画がスケッチから設計される。
【0005】
スケッチステップは、一般に用紙上で行われ、次のトレーサステップは、専用ソフトウェアで行われる。ダッソーシステムズ社が提供するソフトウェアである、フリースタイルスケッチトレーサ(商標)は、3D仮想モックアップの基本となる3Dフォーマットに設計者の作品(スケッチステップで行われた2Dペインティングなど)を組み入れるのを可能にする。この製品は、設計者が2Dデータを3Dデータに変換するのに役立つ直感的なツールボックスを提供する。つまり、設計者は、最初に2D画像を3D空間に位置付けしてスケールし、次にそのジオメトリをスケッチに被せる。実際、設計者は、3D空間に配置されたオブジェクトの少なくとも2Dフロントビューと2Dサイドビューとを用いて、2Dフロントビューから2Dサイドビューに切り替える(またはその逆)ことによってポイントを3D空間に配置する。次に、立体を推定できるようになるまで、ポイントからカーブとサーフェスが計算される。
【発明の概要】
【発明が解決しようとする課題】
【0006】
この方法は、三次元モデルオブジェクトを設計するものであるが、いくつかの難点がある。第一に、スケッチがなおも用紙で行われ、ソフトウェアで描画を取り込む必要があるので、スケッチステップとトレーサステップとは統合されない。第二に、取り込まれる描画が2D描画のみなので、取り込まれた2D描画から幾何学曲線を推測するしかない。第三に、幾何学曲線を計算するのにいくつかのコンピュータを使用する必要があるため、3Dモデルオブジェクトの作成は計算リソースを多く必要とする。
【0007】
こうした状況では、幾何学的三次元モデルオブジェクトを設計する方法をさらに改善する必要がある。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、前記映し出されたポイントの集合および前記少なくとも1つのサポートから前記三次元モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【0009】
また、本発明の他の態様によれば、前記三次元モデルオブジェクトの視覚化を構築するステップであって、前記映し出されたポイントの集合の各ポイントに対して少なくとも2つのオフセットポイントを計算するサブステップであって、オフセットポイントは、前記少なくとも1つのサポート上で位置付けされ、および前記各ポイントから間隔が空けられたポイントであるサブステップと、前記計算された少なくとも2つのオフセットポイントによって線引きされたサーフェスを計算するサブステップであって、前記サーフェスは、前記映し出されたポイントの集合を備えるサブステップとを含むステップをさらに備えることを特徴とする方法が提供される。
【0010】
また、本発明の他の態様によれば、前記少なくとも2つのオフセットポイントを計算するステップは、前記映し出されたポイントの集合の前記ポイントをリンクするポリラインを計算するステップと、前記映し出されたポイントの集合の各ポイントに対してオフセットベクトル
【0011】
【数1】
【0012】
(以下、各ベクトルを以下のように表記する。)
【0013】
【数2】
【0014】
を計算するステップであって、αは係数、n→は前記サポートに垂直な単位ベクトル、L→は前記ポリラインを形成する前記ポイントの集合の2つのポイントをリンクするラインによって定義されるベクトル、n→およびL→は前記各ポイントを共通原点として有するステップと、前記オフセットベクトルO→から前記少なくとも2つのオフセットポイントを決定するステップと、前記決定された前記少なくとも2つのオフセットポイントを三次元シーンの前記少なくとも1つのサポート上に映し出すステップとを備えることを特徴とする方法が提供される。
【0015】
また、本発明の他の態様によれば、前記計算されたオフセットによって線引きされた前記計算されたサーフェスをテセレートするステップをさらに備えることを特徴とする方法が提供される。
【0016】
また、本発明の他の態様によれば、前記三次元幾何学モデルオブジェクトの視覚化を構築するステップは、前記計算されたサーフェスをレンダリングするためにシェーダを適用するステップをさらに備えることを特徴とする方法が提供される。
【0017】
また、本発明の他の態様によれば、すべての前記ステップは、前記三次元シーンの少なくとも別の1つのサポートで反復されるステップであることを特徴とする方法が提供される。
【0018】
また、本発明の他の態様によれば、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、上記のいずれかにおける方法に従って設計された三次元モデルオブジェクトのセットを提供するステップと、前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップとを備えることを特徴とする方法が提供される。
【0019】
また、本発明の他の態様によれば、前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする方法が提供される。
【0020】
また、本発明の他の態様によれば、前記ポイントを抽出するステップは、前記画面とのユーザ相互作用のステップと、前記ユーザ相互作用に対応するストロークを定義するステップと、前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つを読み出し、読み出された前記三次元モデルオブジェクトの1つの少なくとも1つのサポートを読み出すステップと、前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、前記ポイントの集合の前記ポイントを前記少なくとも1つの読み出されたサポート上に映し出すステップとをさらに備えることを特徴とする方法が提供される。
【0021】
また、本発明の他の態様によれば、前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする方法が提供される。
【0022】
また、本発明の他の態様によれば、前記ピックパスは、前記カーソルからの光線変換を備えることを特徴とする方法が提供される。
【0023】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする方法が提供される。
【0024】
また、本発明の他の態様によれば、前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、前記ユーザが前記画面との相互作用を行う間に反復されることを特徴とする方法が提供される。
【0025】
また、本発明の他の態様によれば、コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、上記のいずれかにおける方法を実行するための手段を備えることを特徴とするコンピュータプログラムが提供される。
【0026】
また、本発明の他の態様によれば、このコンピュータプログラムが記録されるコンピュータ可読記憶媒体が提供される。
【図面の簡単な説明】
【0027】
【図1】本発明の例の流れ図を示す図である。
【図2】グラフィカルユーザインタフェースの例を示す図である。
【図3】クライアントコンピュータシステムの例を示す図である。
【図4】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図5】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図6】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図7】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図8】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図9】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図10】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図11】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図12】本発明にかかる幾何学的三次元モデルオブジェクトを設計する方法を示す図である。
【図13】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図14】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図15】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【図16】本発明にかかる三次元モデルオブジェクトを設計する方法を示す図である。
【発明を実施するための形態】
【0028】
本発明の実施形態は、限定されない例として、添付図面を参照しながら説明される。
【0029】
三次元モデルオブジェクトを設計するためのコンピュータ実装方法を提案する。本方法は、ユーザが画面との相互作用(対話)を行うステップを備える。本方法は、ユーザ相互作用に対応するストロークを定義するステップも備える。本方法は、ストロークをポイントの集合に離散化するステップも備える。本方法は、ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップも備える。本方法は、映し出されたポイントの集合および前述の少なくとも1つのサポートから三次元モデルオブジェクトを構築するステップも備える。
【0030】
本方法は、三次元モデルオブジェクトを設計するためのものである。「三次元モデルオブジェクトの設計」は、三次元モデルオブジェクトを作り上げるプロセスの少なくとも一部である任意の動作または一連の動作を指定する。従って、本方法は、三次元モデルオブジェクトをゼロから作成することを備えることもある。代替として、本方法は、あらかじめ作成された三次元モデルオブジェクトを提供し、その後、その三次元モデルオブジェクトを修正することを備えることもある。
【0031】
本方法を、三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装方法に含むことができる。本方法は、三次元モデルオブジェクトを設計する方法に従って設計された三次元モデルオブジェクトのセットを提供するステップを備える。本方法は、提供された三次元モデルオブジェクトのセットのポイントを抽出するステップも備える。方法は、抽出されたポイントから滑らかな幾何学曲線を計算するステップも備える。本方法は、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップも備える。
【0032】
三次元モデルオブジェクトを設計する方法は、複雑な三次元モデルオブジェクトをより簡単に速く構築できるようにし、三次元モデルオブジェクトを構築するのに必要な計算リソース(例えば、CPU、メモリ)を大幅に減らす。三次元モデルオブジェクトを設計する方法はまた、三次元幾何学モデルオブジェクトを設計する方法をより簡単に速く行わせるので、設計プロセスの生産性が高まる。
【0033】
本方法は、コンピュータ実装される。これは、本方法のステップ(または実質上すべてのステップ)が少なくとも1つのコンピュータによって実行されることを意味する。例において、少なくとも一部の方法のステップをトリガすることは、ユーザとコンピュータとの相互作用を通じて行われる。ユーザとコンピュータとの相互作用に必要なレベルは、予測され、ユーザが望むものを実装するのに必要なものとバランスが取られる、自動性のレベルに依存する。例において、このレベルをユーザ定義および/または事前定義のレベルとすることができる。
【0034】
例えば、画面との相互作用のステップは、ユーザが介入するステップの一例である。
【0035】
本方法をコンピュータ実装する典型的な例は、本目的に適したGUI(グラフィカルユーザインタフェース)を備えるシステムで方法を行うものである。GUIは、メモリとプロセッサとに結合される。データベースを記憶するメモリは、その記憶に適していれば任意のハードウェアでよい。そのようなシステムが、三次元モデルオブジェクトおよび三次元幾何学モデルオブジェクトの設計を改善する。そのようなシステムであるので、設計の専門家を含む、幅広いユーザによって用いることが可能になる。例えば、GUI(ユーザとの相互作用を行う画面を備える)を通じてユーザが関与するステップが行われることもあれば、GUIが関与することなく、メモリにアクセスするプロセッサによって、完全にコンピュータ化されたステップが行われることもある。
【0036】
メモリに記憶される情報(即ち、三次元形状パラメータ(複数可))をデータベース形式で記憶できる。「データベース」とは、検索および読み出し用に体系化されたデータ(即ち、情報)の集積を意味する。メモリに記憶される場合、データベースは、コンピュータによる高速な検索および読み出しが可能になる。データベースは実際、各種データ処理操作と併せてデータの記憶、読み出し、修正および消去を容易にするように構成される。データベースは、レコードに分解することができるファイルまたはファイルのセットから成り、各レコードは1または複数のフィールドから成る。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを読み出すことができる。キーワードおよびソートコマンドを使用して、ユーザは、用いられるデータベース管理システムの規則に従って、多数のレコード内のフィールドを素早く検索し、再配列し、グループ化し、そして選択して、特定のデータ集合体に関するレポートを読み出すまたは作成することができる。
【0037】
本方法の事例として、データベースは、三次元幾何学モデルオブジェクトを設計するのに用いられる三次元モデルオブジェクトのセットを備えることができる。もちろん、データベースは、本方法に従って設計された三次元幾何学モデルオブジェクトを記憶できる。
【0038】
本方法およびシステムは、一般にモデルオブジェクトを巧みに操作する(manipulate)。モデルオブジェクトは、メモリに記憶されたデータによって定義される任意のオブジェクトである。拡大解釈すると、「モデルオブジェクト」という表現は、データ自体を指す。システムのタイプに従って、モデルオブジェクトを異なる種類のデータによって定義できる。
【0039】
CADシステムは少なくとも、CATIAなどの、モデルオブジェクトのグラフィック表現に基づくモデルオブジェクトを設計するのに適した任意のシステムである。従って、CADモデルオブジェクトを定義するデータは、モデルオブジェクトの表現を可能にするデータ(例えば、空間の相対位置を含むジオメトリデータ)を備える。CADモデルオブジェクトは、幾何学モデルオブジェクトとも呼ばれ、三次元CADモデルオブジェクトは、三次元幾何学モデルオブジェクトとも呼ばれる。CADシステムは例えば、エッジまたはライン、場合によってはフェイスまたはサーフェスを用いて、CADモデルオブジェクトの表現を提供できる。各種方法、例えば、NURBS(非均一有理Bスプライン)で、ライン、エッジ、またはサーフェスを表現できる。具体的には、CADファイルは、ジオメトリを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のCADファイルまたは複数のCADファイルに記憶できる。モデルオブジェクトをCADシステムで表現するファイルの典型的なサイズは、一部品当たり1メガバイトの範囲内である。そしてモデルオブジェクトを、典型的には、数千の部品から成る組み立て体にすることが可能である。
【0040】
CADシステムは、ピクセルベースのジオメトリを用いてモデルオブジェクトの表現を提供することもできる。ピクセルベースのジオメトリモデルオブジェクト(以下モデルオブジェクトと呼ぶ)は、ピクセルを順序付けるピクセルパターンを用いる。ピクセルベースのジオメトリによってライン、エッジまたはサーフェスを表現できる。具体的には、CADファイルは、ピクセルを生成できる仕様を含むことができ、その仕様によって表現の生成が可能になる。モデルオブジェクトの仕様を単一のCADファイルまたは複数のCADファイルに記憶できる。ピクセルベースのジオメトリモデルオブジェクトは、幾何学モデルオブジェクトとは逆に、数式によって定義されるプロパティを持たないオブジェクトであることを理解されたい。
【0041】
システムは、CAEシステムおよび/またはCAMシステムになることも可能であり、CADモデルオブジェクトは、CAEモデルオブジェクトおよび/またはCAMモデルオブジェクトになることも可能である。実際、CADシステム、CAEシステムおよびCAMシステムは、これらのシステムの任意の組み合わせに対応するデータによってモデルオブジェクトを定義できるので、他方のシステムにとって排他的ではない。
【0042】
CADという環境においては、モデルオブジェクトを、典型的には、例えば、一部品または部品から成る組み立て体、あるいは製品の組み立て体などといった、製品を表現する3Dモデルオブジェクトにすることが可能である。「3Dモデルオブジェクト」とは、その3D表現を可能とするデータによってモデル化された任意のオブジェクトを意味する。3D表現は、全角度から部品をビューすることが可能である。例えば、3D表現する場合、3Dモデルオブジェクトを操縦して、オブジェクトの軸を任意に回転したり、またはその表現が表示されている画面の軸を任意に回転することができる。これは、3Dでモデル化してない2Dアイコンを著しく排除する。3D表現の表示は、設計を容易にする(即ち、統計的に、設計者が自分の仕事を完了する速度が上がる)。製品の設計が製造プロセスの一部であるため、この3D表現によって産業における製造プロセスが高速化する。
【0043】
CADシステムを履歴ベースにすることが可能である。この場合、幾何学モデルオブジェクトは、幾何学的機能の履歴を備えるデータによってさらに定義される。実際、人物(即ち、設計者/ユーザ)が標準のモデリング機能(例えば、押し出し、回転、カット、および/またはラウンドなど)および/または標準のサーフェス機能(例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングなど)を用いることによって、幾何学モデルオブジェクトを設計できる。そのようなモデリング機能をサポートする多くのCADシステムは、履歴ベースのシステムである。このことは、設計機能による履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて上記の幾何学的機能をまとめてリンクした、非巡回的なデータの流れによって保存されることを意味する。この履歴ベースのモデリングパラダイムは、80年代初めからよく知られている。幾何学モデルオブジェクトは、2つの永続的データ表現によって記述される。つまり、履歴表現とB表現(即ち、境界表現)によって記述される。B表現は、履歴で定義された計算結果である。幾何学モデルオブジェクトが表現される時にコンピュータ画面に表示される部品の形状は、B表現(のモザイク模様(tessellation))である。部品の履歴は、設計意図である。基本的に、履歴は、幾何学モデルオブジェクトに行なった操作情報を集める。B表現を履歴と共に保存して、複雑な部品をより簡単に表示させることができる。設計意図に従って部品の設計変更を可能にするために、履歴をB表現と共に保存できる。
【0044】
PLMシステムとは、物理的に製造された製品を表現するモデルオブジェクトの管理に適した任意のシステムを意味する。PLMシステムにおいて、モデルオブジェクトは、物理的オブジェクトを製造するのに適したデータによって定義される。この定義は、典型的には、次元値および/または許容値になる。正しくオブジェクトを製造するために、実際そのような値を使用した方がよい。
【0045】
CAEシステムとは、幾何学モデルオブジェクトの物理的な動きを分析するのに適した任意のシステムを意味する。CAEシステムにおいて、モデルオブジェクトは、そのような動きを分析するのに適したデータによって定義される。この定義は、典型的には、動きの機能のセットになる。例えば、ドアに対応するモデルオブジェクトを、ドアが軸の周りを回転することを示すデータによって定義できる。
【0046】
図2は、システムのGUIの例を示し、そのシステムは、CADシステムである。
【0047】
GUI2100は、典型的なCADに似たインタフェースであり、標準のメニューバー2110、2120に加えて、下側ツールバー2140と横側ツールバー2150とを有する。このようなメニュー・ツールバーは、ユーザが選択可能なアイコンのセットを包含し、各アイコンは、当業者に周知である、1または複数の操作または機能と関連付けられている。このようなアイコンのいくつかは、GUI2100中で表示される3Dモデルオブジェクト2000での編集および/または作業に適用されるソフトウェアツールと関連付けられる。ソフトウェアツールをワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチの中には、モデル製品2000の幾何学的機能を編集するのに適した、編集ワークベンチがある。操作において、設計者は、例えば、オブジェクト2000の部品を事前選択した後、適切なアイコンを選択することによって操作(例えば、次元、色の変更など)を開始するか、または幾何学的制約を編集できる。例えば、典型的なCAD操作は、画面に表示された3Dモデルオブジェクトの穴あけまたは折り込みのモデリングである。
【0048】
GUIは、例えば、表示された製品2000に関連するデータ2500を表示することが可能である。図2の例において、「機能ツリー」として表示されているデータ2500およびその3D表現2000は、ブレーキキャリパーとディスクとを含むブレーキ組み立て体に関連する。GUIは、各種タイプのグラフィックツール2130、2070、2080をさらに示し、例えば、編集された製品の操作のシミュレーションをトリガするか、または表示された製品2000の各種属性をレンダリングして、オブジェクトの3D定位を容易にすることができる。ユーザがグラフィックツールとの相互作用を可能にする触覚デバイスによってカーソル2060を制御できる。
【0049】
図3は、例えば、ユーザのワークステーションなどの、クライアントコンピュータシステムを示す。
【0050】
クライアントコンピュータは、内部通信バス1000に接続されたCPU(中央処理装置)1010を備え、RAM(ランダムアクセスメモリ)1070も内部通信バスに接続されている。クライアントコンピュータは、内部通信バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたGPU(画像処理装置)1110をさらに備える。ビデオRAM1100もフレームバッファとして当業者に周知である。大容量記憶デバイスコントローラ1020は、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを明示的に具体化するのに適した大容量メモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、EPROM、EEPROM、およびフラッシュメモリなどの半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、CD−ROMディスク1040とを含む。上述のいずれのメモリも、特別に設計されたASIC(特定用途向け集積回路)によって補完または組み込むことができる。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス1090も含むことができる。カーソル制御デバイスをクライアントコンピュータで用いることによって、図2を参照して述べたように、ユーザがカーソルを画面1080の希望の場所に選択的に位置付けするのが可能になる。さらに、カーソル制御デバイスは、ユーザが各種コマンドを選択して、制御信号を入力できるようにする。カーソル制御デバイスは、制御信号をシステムに入力する多数の信号生成デバイスを含む。典型的には、カーソル制御デバイスをマウスにして、信号を生成するのにマウスのボタンを用いることができる。
【0051】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を行わせる手段を備える。本発明を、例えば、デジタル電子回路に実装するか、またはコンピュータハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせに実装することができる。本発明の装置を、プログラマブルプロセッサによって実行される機械可読記憶デバイスに明示的に具体化されるコンピュータプログラム製品に実装することができ、そして本発明の方法ステップを、入力データで操作して出力データを生成することによって本発明の機能を行う命令のプログラムを実行するプログラマブルプロセッサによって行うことができる。
【0052】
プログラマブルシステムで実行可能である1または複数のコンピュータプログラムに本発明を有利に実装でき、プログラマブルシステムは、データ記憶システムにデータおよび命令を送受信するのに結合された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。アプリケーションプログラムを、必要に応じて、ハイレベルの手続き型言語またはオブジェクト指向プログラミング言語またはアセンブリ言語または機械語で実装でき、いずれの場合でも、それらの言語を、コンパイラ型言語またはインタープリタ型言語にすることができる。
【0053】
図1を参照すると、三次元幾何学モデルオブジェクトを設計する方法が示されている。
【0054】
ステップS100からステップS150において、三次元モデルオブジェクトを設計する方法が実行される。三次元モデルオブジェクトは、ピクセル(画素)であるデータによって表現される。ピクセルは、併せて配列されて、三次元シーンのパターンを形成する。例えば、ラスタグラフィックス画像(ビットマップとも呼ばれる)は、一般にピクセルの二次元長方形グリッドを表現するデータ構造である。ラスタ画像は、画面に表示された画像とビット対ビットで対応する。
【0055】
本発明において、三次元モデルオブジェクトは、ピクセルの仕様を包含し、その仕様によってピクセルを生成できる。三次元モデルオブジェクトの仕様により、三次元モデルオブジェクトを3Dシーンで表現することが可能である。重要なことは、3Dモデルオブジェクトのプロパティは、数式によって定義されないことである。
【0056】
ステップS100において、ユーザは、画面と相互作用する。ユーザ相互作用は、典型的には、画面の範囲内で行われる。これは、例えば、画面がセンシティブ(例えば、シングルタッチスクリーンまたはマルチタッチスクリーン)であれば、ユーザが画面上に圧力をかけて直接的に行われるか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行われうる。これを、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。タッチパッドまたはセンシティブ画面を通じてユーザ相互作用することによって、ユーザ相互作用がより実際に近くなる(即ち、設計の専門家がオブジェクトを紙面に設計する、従来の発想段階により似てくる)。3Dモデルオブジェクトを実際のように設計する方法は、設計の専門家がCADシステムを使用するのに役立つので、改善された点である。これによって設計が、よりし易くなる。
【0057】
次に、ステップS110において、ストロークは、ユーザ相互作用に対応して定義される。画面とのユーザ相互作用によって、ユーザは、画面のいくつかのピクセルをアクティブにする。当業者に周知のように、これらのピクセルをストロークに変換できる。例えば、ユーザ相互作用が、ポインティングデバイスまたはタッチペンを通じて行われる場合、アクティブになったピクセルは、ポインティングデバイスまたはタッチペンの場所に対応する。そのアクティブになったピクセルを画面上で動的に表示できる。アクティブになったピクセルをストロークに変換できる。ストロークの定義は一般に、視覚的に連続したラインを形成する位置を画面上に配置することを意味する。それらの位置を実際に表示できる。この表示は、例えば、画面上でアクティブになった少なくとも一部の位置を追跡記録することによってなされうる。従って、ストロークは、ユーザがユーザ相互作用を通じてスケッチしたものから導かれるという意味で、ユーザ相互作用に対応する。従って、ストロークはいわば、ユーザによるユーザ相互作用を通じてスケッチされる。
【0058】
図4を参照すると、ユーザ相互作用で得られたストローク400が表されている。ストロークを、例えば、画面上でユーザに表示することもできるし、そうしないこともできる。
【0059】
図1に戻って参照すると、ステップS120において、ストロークは、ポイントの集合に離散化される。ストロークの離散化は、例えば、「ストロークポイント」と呼ばれるいくつかのポイントにストロークを低減することによってストロークをサンプリングし、そしてポイントの集合またはストロークポイントの集合を形成することを意味する。ストロークが画面上の位置の集合であるので、したがって、ストロークの離散化は、位置の集合を単一のストロークポイントに低減する(即ち、数を減らす)ことを意味する。
【0060】
図5を参照すると、図4で表されたストロークは、ポイントの集合、例えば、ポイント402に離散化される。
【0061】
次に、図1のステップS130において、ポイントの集合は、三次元シーンの少なくとも1つのサポート上に映し出される。サポートは、映し出されたポイントを受信するのに適応した幾何学的エンティティ(可視または不可視)になりうる。サポートは、「ストロークポイント」に対する礎石(socle)として機能できる。サポートは、例えば、任意の種類のサーフェスになりうる。そのようなサーフェスを、例えば、プレーン画面などのプレーン(平面)か、または例えば、球面などのカーブしたサーフェス(曲面)か、またはその他の描画サーフェスにすることができる。実際、プレーン画面とは異なる描画サーフェスを、画面(画面の設計範囲)に組み込むことができる。言い換えれば、サポートは、三次元空間、例えば、3Dシーンの幾何学的エンティティである。いくつかのサポートは、3Dシーン中に存在しうることを理解されたい。それらのサポートは、ポイントの集合を映し出すことができる少なくとも1つのサーフェスを形成する。
【0062】
ポイントの集合は、サポート(複数可)上で映し出される。ポイントの集合を映し出すことは、「ストロークポイント」がサポート上で位置を有するように(サポートがプレーン画面とは異なる場合)、「ストロークポイント」に変換を適用することを意味する。結果的に、ストロークの鮮明度(definition)がまるで実物のようになり、画面は、ここでは仮想的に、描画紙(サポートがプレーン画面の場合、仮想的に設計者と直角に面する紙)に対応する。その結果、ストロークが定義された画面である二次元プレーンと、そのサポートである三次元シーン中のサーフェスとの間でマッピングが作成される。
【0063】
実際には、当業者に周知のように、ポイントの集合がサポート上に映し出される時にはユーザのビューポイントが考慮される。
【0064】
図6では、プレーンサポート410が表されている。ストロークの離散化されたポイントが、このプレーンサポートに映し出されている。
【0065】
次に、図1のステップS140において、映し出されたポイントの集合およびポイントの集合が映し出されたサポート(複数可)から3Dモデルオブジェクトが構築される。三次元モデルオブジェクトの構築は、三次元モデルオブジェクトの仕様が1つのファイルまたは複数のファイルに記憶されることを意味する。結果的に、構築された3Dモデルオブジェクトを次に使用するために、例えば、データベースに記憶できる。その3Dモデルオブジェクトは、映し出された「ストロークポイント」および「ストロークポイント」が映し出されたサポートで構築される。この構築は、映し出された「ストロークポイント」の位置が、そのサポートに関するデータと併せて記憶されることを伴う。結果的に、構築ステップは、映し出された「ストロークポイント」およびサポートの位置に関連するデータの計算が行われるステップである。有利なことに、3Dシーン中のサポートの座標のみを記憶すればよいので、三次元モデルを構築する速度が改善されて、三次元モデルオブジェクトを構築する(または計算する)のに必要な計算リソースが減る。
【0066】
構築された3Dモデルオブジェクトに記憶された3Dシーン中のサポートの座標に戻って、サポートを見つけることができる。映し出された「ストロークポイント」の座標に戻ってサポートを見つけることもできる。つまり、共分散行列および固有ベクトルの計算を経てプレーンの平均(average plane)が計算される。構築されたモデルオブジェクトをサポートとして用いることも可能である。つまり、そのオブジェクトをポイントのクラウドとして用いる。構築された3Dモデルオブジェクト自体は、例えば、その構築された3Dモデルオブジェクトを形成するポイントのローカルテセレーションを経てサポートになる。
【0067】
本発明に係る3Dモデルオブジェクトの設計は、どの幾何学曲線も計算する必要があるので、計算リソースのニーズを制限する。つまり実際、ジオメトリが生成される幾何学モデルオブジェクトは、大量の計算リソースが必要である。さらに、本発明に従って構築されるピクセルベースのジオメトリを記憶するのに必要なメモリ量の方が、幾何学モデルオブジェクトのメモリ量よりも少ない。さらに、本発明により、純粋な幾何学的アプローチでは(簡単に)得ることができない3Dモデルオブジェクトの生成ができるようになる。つまり実際、幾何学的表現は、計算リソースの消費を制限するために比較的単純にする必要がある。従って、本発明は、計算リソースが上記のユーザ相互作用をもはや制限しないように、画面とのユーザ相互作用の柔軟性を高める。さらなる利点は、構築される3Dモデルオブジェクトがユーザの設計意図を確実に遵守することである。実際、ユーザによって定義されるストロークにはインタープリテーションがあり、これによってユーザが設計したとおりに再生される。反対に、幾何学的環境において(つまり、幾何学モデルオブジェクトを用いる環境)、幾何学曲線は、ユーザの源設計意図を修正する特性を持つ。例えば、5度のベジエ曲線ではユーザが振動する形状を作成することができなくなるが、本発明に従って構築されたモデルオブジェクトでは可能である。従ってユーザは、手描き環境で作業しているように感じ、人間工学の点で改善される。結果として、より正確な3D描画(例えば、スケッチ)がより簡単に速く作成できる。
【0068】
本方法のステップにおいて、3Dモデルオブジェクトが構築され、このことは、オブジェクトを表現するデータを、システム、例えば、CADシステムによって引き出す(exploit)ことができることを意味する。従って、設計された3Dモデルオブジェクトを表示するために、三次元モデルオブジェクトの視覚化(ステップS150)を構築することができる。視覚化の構築は、3Dモデルオブジェクトのグラフィカルな表現が計算されることを意味する。特に、構築される視覚化は、ピクセルベースであり、その視覚化は、3Dモデルオブジェクトの表現が画像処理装置のみで計算されることに関与するので、CPUおよびメモリの計算リソースを維持する。
【0069】
他の利点を以下で明らかにする。
【0070】
視覚化の構築は、映し出されたポイントの集合の各ポイントに対する、少なくとも2つのオフセットポイントの計算を備えることができる(ステップS153)。映し出された「ストロークポイント」のオフセットポイントは、「ストロークポイント」が映し出されるサポート(複数可)上に位置付けされ、映し出された「ストロークポイント」から間隔が空けられた、ポイントである。オフセットポイントは、サポート上にあり、これは、そのポイントがサーフェスに属することを意味する。オフセットポイントは、映し出された「ストロークポイント」から間隔が空けられており、これは、そのオフセットポイントが「ストロークポイント」と区別されていることを意味する。
【0071】
オフセットポイントの計算は、以下のとおりに実行されうる。最初に、ステップS151において、ポリライン(poly-line)が計算される。ポリラインは、サポート上に映し出されたポイントの集合のポイントをリンクする。ポリラインは、一続きのラインセグメントであり、1つのラインセグメントは、映し出された2つの「ストロークポイント」によって境界された線分である。ポリラインがサポート上のストロークの映し出し(projection)に近似するように、ラインセグメントがつながっていることを理解されたい。
【0072】
図6を参照すると、映し出された「ストロークポイント」をつなげたポリライン420が表示されている。明らかなように、ポリラインは、サポート410上にある図5のストローク400の映し出し(示されていない)に近似する。
【0073】
図1に戻って参照すると、ステップS152において、サポート上に映し出された各「ストロークポイント」に対して、オフセットベクトルが計算される。オフセットベクトルを以下のように表記する。
【0074】
【数3】
【0075】
(以下、各ベクトルを以下のように表記する。)
【0076】
【数4】
【0077】
αは、ユーザによって、またはシステムのデフォルトによって選択することができる係数である。この係数は、オフセットポイントと、映し出された「ストロークポイント」との間の距離を部分的に決定し、その距離から、オフセットポイントが計算される。有利なことに、係数αは、ステップS156において計算された表現の厚みを増す、または減らすことができる。n→は、映し出された「ストロークポイント」のサポートに垂直な単位ベクトルである。L→は、ポリラインを形成するポイントの集合の2つのポイントをリンクするラインによって定義されるベクトルである。n→およびL→は、映し出された共通の「ストロークポイント」を原点として有する。n→とL→との積は、ベクトル積である。
【0078】
オフセットベクトルの計算は、図7でより明らかになる。映し出しステップS130の結果、各ポイント402、404、406は、サポート上に位置付けされて、そして法線ベクトルn→と関連付けられる。描かれたように、ポイント406とポイント404とをリンクするベクトルL→が決定されて、L→は、ポイント406を原点として有する。従ってポイント406に対するオフセットベクトルO→を、上記(式1)の関係式で計算することができる。同様に、ポイント404に対するオフセットベクトルO→は、ベクトルL→から計算されて、ベクトルL→は、ポイント404とポイント402、およびポイント404と法線ベクトルをリンクし、両方のベクトルL→は、ポイント404を原点として有する。両方とも、α=1になるように、係数αが選択されている。
【0079】
図1に戻って参照すると、以前に計算されたオフセットベクトルO→から、少なくとも2つのオフセットポイントが決定される。その決定は、2つのポイントが特定されるように、ベクトルのノルム
【0080】
【数5】
【0081】
を計算することによって行われる。これは図8に示され、図8においては、オフセットベクトルのノルムからオフセットポイントが得られる。例えば、映し出された「ストロークポイント」406は、2つのオフセットポイント408と409を有する。
【0082】
次に、そのオフセットポイントは、3Dシーンの少なくとも1つのサポート上に映し出される(ステップS154)。好適には、その映し出しは、サポートがプレーンでないか、または「ストロークポイント」を映し出す間にいくつかのサポートが関与する場合に行われる。映し出しは、オフセットポイントがサポート(複数可)上に存在する、つまり、オフセットポイントがサーフェスに属することを確実にする。「ストロークポイント」を任意の種類のサポート上に映し出すことが可能であるので、ユーザにとって設計能力が向上することを理解されたい。例えば、サポートは、しわが寄った紙に似たサーフェスを有することができ、このしわが寄ったサーフェス上でストロークを映し出すことが可能である。
【0083】
次に、オフセットポイントからサーフェスが計算される(S155)。サーフェスは、計算されたオフセットポイントによって線引きされて、映し出されたポイントの集合(映し出された「ストロークポイント」とも呼ばれる)を備える。サーフェスを線引きすることは、オフセットポイントをリンクすることによって、サーフェスの境界が作成されることを意味する。オフセットポイントは、映し出された「ストロークポイント」と同様のやり方で互いにリンクされる。結果的に、2つのオフセットポイントは、それぞれの映し出された「ストロークポイント」がリンクされる場合のみリンクされる。さらに、ポリラインと同じ面にあるオフセットポイントのみをリンクすることができる。実際、ポリラインは、サーフェスの両面で定義されるように計算されるサーフェスを分割する(少なくとも部分的に分割する)。オフセットポイントがまとめてリンクされる間に2つの補完的ポリラインが構築されるが、ポリラインの片面にある第1の補完的ポリラインは、映し出された「ストロークポイント」を備え、そしてもう片面にある第2の補完的ポリラインも、映し出された「ストロークポイント」を備えることを理解されたい。
【0084】
従ってオフセットポイントから計算されるサーフェスは、「ストロークポイント」が映し出されたサポート(複数可)を形成するサーフェスの選択された部分である。この計算されたサーフェスを配置したり曲げたりできる。結果的に、計算されたサーフェスは、サポート(複数可)の位相を反映し、計算されたサーフェスが3D空間でどのように変化するかを把握することが可能である。
【0085】
実際には、計算されたサーフェスは、テセレートされる(ステップS155)。計算されたサーフェスは、位相モデルの境界であり、計算されたサーフェスの管理およびレンダリングを容易にするために、テセレーションによって近似される。テセレーションは、計算されたサーフェスを、細小で分析し易い2Dフェイスのピースから成るメッシュに分割する。典型的には、計算されたサーフェスは、オフセットポイントから生成された三角形にテセレートされる。サーフェスが三角分割されたとも言える。当業者に周知のように、メッシュジェネレータによってサーフェスを生成できる。テセレーションの結果は、図9に示している。
【0086】
次に、ステップS156において、テセレートされたサーフェスの表現が計算される。このステップは、サーフェスのレンダリングにシェーダを適用していることを備える。シェーダは、例えば、画像処理装置(GPU)などの、グラフィックスハードウェアに対する画面効果の計算による命令を備える小さなソフトウェアである。シェーダは、共通のジオメトリ変換およびピクセルシェーディング機能のみが可能であり、シェーダは、ピクセルの特性を記述する。実際には、シェーダは、テセレートされたサーフェスの2Dフェイスの各ピースに適用される。計算された表現を、ユーザによって、例えば、画面上で表示することができる。
【0087】
図10は、テセレートされたサーフェスを示し、三角形430のみがテセレートされたサーフェスに適用されたシェーダを有し、三角形430はグレーで表されている。
【0088】
本方法のステップを、少なくとも1つの他のサポートで反復することができることを理解されたい。サポートをユーザが選択するか、または自動的に選択することができる。このように、オブジェクトの一部となるいくつかの3Dモデルオブジェクトの構築が可能である。言い換えれば、図13から図16に示すように、ユーザは、同じオブジェクトのいくつかの異なるビューを作成することができる。図13は、3Dモデルオブジェクトの視覚化を示している。この3Dモデルオブジェクトは、ユーザによって描かれたオブジェクト(ここではカメラ)のスケッチである。このスケッチは、プレーンサポート上で構築されていて、ユーザが想像したカメラのビューポイントの1つの代表である。図14は、ユーザが想像したカメラの別の視覚化が構築されたように、ユーザが選択した別のプレーンサポートであり、この視覚化は、カメラの別のビューポイントの代表である。同様に、図15および図16は、2つの異なるサポート上で構築された2つの3Dモデルオブジェクトの2つの視覚化を示し、カメラの他の2つのビューポイントを表している。このように、ユーザは、オブジェクトの形状をステップごとに(つまり、サポートの新しい選択ごとに)トレースして、いくつかのビューポイントに従って同じオブジェクトの視覚化をいくつか得ることができる。
【0089】
実際には、ユーザは、3Dシーンのサポート(例えば、プレーン)を巧みに操作することができるので、サポートの巧みな各操作によって新しいサポートを作成することができる。サポートの巧みな操作とは、ユーザが3Dシーンのサポートを移動することを意味する。当業者に周知のように、この移動は、例えば、マウスなどの触覚デバイスでサポートを移動するようにして行われる。その巧みな操作の結果、新しいサポートが選択される。有利なことに、ユーザがサポートを巧みに操作する時、そのユーザが新しいビューポイントを認識できるように、さらに3Dモデルオブジェクトの視覚化を見ることができる。
【0090】
さらに、本方法は、3Dモデルオブジェクトを同じサポート上で定義することを可能にする。これによって、ユーザは、ユーザが用紙で描いたように、いくつかのストロークをスケッチしながら、複雑なオブジェクト、例えば、カメラをトレースすることが可能になる。
【0091】
有利なことに、ユーザによって定義されるストロークの視覚化は、曲面的であるが、そのような表現は通常、線形(linear)である。標準的なアプローチでは、ポリラインの集合は、オブジェクトを表現するが、本発明では、オブジェクトをテセレートすることによってシェーダを適用できるようにする(例えば、計算されたサーフェス上の各三角形にシェーダを適用できる)。結果的に、シェーダのおかげでいくつかの表示オプション(例えば、厚み、不透明感、等級別の不透明感などの視覚的レンダリング)を適用できる。
【0092】
本方法のこのステップにおいて、ピクセルベースの表現による3Dモデルオブジェクトが構築されて、ユーザに表示される。言い換えれば、3Dピクセルスケッチが表示される。ユーザは、3Dモデルオブジェクトから得られた幾何学的3Dモデルオブジェクトで作業することが必要であろう。例えば、ユーザは、CADモデルオブジェクト(幾何学モデルオブジェクトとしても知られる)を必要とするCADシステム内において、3Dモデルオブジェクトを変換することが必要であろう。
【0093】
3D幾何学モデルオブジェクトを設計する本方法は、上記のように設計された3Dモデルオブジェクトのセットを提供するステップを備える。このステップは、図1のブロックS140とブロックS160とを結ぶ矢印によって表現されている。3Dモデルオブジェクトを提供することは、構築された3Dモデルオブジェクトにシステムがアクセスすることができることを意味する。典型的には、CADシステムは、ピクセルベースのジオメトリモデルオブジェクト(つまり、3Dモデルオブジェクト)の仕様を備えるファイルにアクセスする。3Dモデルオブジェクトのセットをインスタンスとしてデータベースに記憶できる。
【0094】
ひとたびシステムが3Dモデルオブジェクトのセットにアクセスすると、3Dモデルオブジェクトのポイントが抽出される(ステップS160)。この抽出されたポイントは、サポート上で映し出された「ストロークポイント」である。言い換えれば、CADシステムは、サポート上に配置された各ポイントのそれぞれの位置にアクセスすることができる。以前に述べたように、「ストロークポイント」の座標に戻ってサポートを見つけることができる。
【0095】
次に、S170において、抽出されたポイントから滑らかな幾何学曲線が計算される。滑らかな幾何学曲線は、画像ポイントのそれぞれのデカルト座標を閉区間の連続微分可能関数とするような、ユークリッド空間における閉区間の関数によって定義される。言い換えれば、滑らかなカーブは、ギャップや不連続とは無関係の、連続したカーブである(つまり、例えば、2つのラインの交点から得られるポイントにおいてスロープの急激な変化がないカーブである)。当業者に周知のように、滑らかなカーブの計算は、例えば、最小二乗法で行われる。結果として、ピクセルベースのジオメトリを有する3Dモデルオブジェクトのセットは、ジオメトリデータを有する少なくとも1つの3D幾何学モデルオブジェクトに変換される。有利なことに、非幾何学データは、特定のアルゴリズムを適用することができる幾何学データに変換される。これによって、3D幾何学モデルオブジェクトをゼロから作成するにはかなりの量の計算リソースが必要になるためにCADシステムではゼロから作成することができなかった3D幾何学モデルオブジェクトを作成することが可能になる。このように、本発明の方法に従った3D幾何学モデルオブジェクトの構築は、ユーザの設計能力を高めて、システムの計算リソースの消費を制限する。
【0096】
ステップS160における3Dモデルオブジェクトのポイントの抽出から、ステップS170における幾何学曲線の計算への遷移を、モードに従って行うことができる。このモードとは、図1のAで表記された3D幾何学モデルオブジェクトの自動抽出と呼ばれる第1モードと、図1のMで表記された3D幾何学モデルオブジェクトの手動抽出と呼ばれる第2モードである。
【0097】
自動抽出モードは、CADシステムとユーザとの間で何ら相互作用せずに滑らかな幾何学曲線を計算する(S170)。これは、システムが滑らかなカーブを計算する間、ユーザが介入しないことを意味する。自動的に抽出された滑らかな幾何学曲線は、映し出されたすべての「ストロークポイント」に対する平均位置を表現するカーブである。有利なことに、自動モードは、ユーザが何ら動かなくても、ユーザの設計意図を遵守する滑らかなカーブをトレースできるようにする。このモードは、幾何学的3Dモデルオブジェクトを設計する本方法を行う速度全体を上げる。
【0098】
このことを図11に示す。3つのポリライン502、503、504が示されている。3つのポリラインは、3Dモデルオブジェクトのセットを提供するステップにおいて提供された3Dモデルオブジェクトの代表が同じサポート上で映し出された「ストロークポイント」から構築される。カーブ500は、映し出された「ストロークポイント」から計算された滑らかなカーブを表す。つまり、幾何学的3Dモデルオブジェクト500は、ポリライン502、503、および504の集合の平均カーブを表現する。
【0099】
実際には、ポイントの抽出は、ポイントが映し出されるサポートに従って実行される。これは要するに、抽出されたポイントのフィルタリングが行われ、そのフィルタリングは、抽出されたポイントが映し出されるサポートに基づいていると言えよう。言い換えれば、同じサポート上で映し出された3Dモデルオブジェクトの「ストロークポイント」のサブセットが作成される。これによって、関連する3Dモデルオブジェクトを素早く見つけることが可能になる。
【0100】
一般に、1つのサポートにつき1つの3Dモデルオブジェクトが存在し、サポートに従って3Dモデルオブジェクトが構築される。しかしながら、2以上のサポートに従って、3Dモデルオブジェクトを構築することもできる。さらに、2つの3Dモデルオブジェクトは、同じサポートを有することができ、例えば、ユーザは、同じサポートを二度選択する。
【0101】
さらに、ポリラインのそれぞれの形状に従って、ポイントの抽出を実行できる。映し出されたストロークポイントを記憶する構造のおかげで、この抽出を行うことができる。つまり、構築された各3Dモデルオブジェクトは、ストロークポイントおよび数個のストロークポイントによって特徴付けられる。従って、ポイントの抽出は、映し出されたストロークポイントを記憶する構造を読み込むことに等しい。これらのポリラインは、同じサポート上で映し出された「ストロークポイント」から構築されていて、3Dモデルオブジェクトのセットを提供するステップにおいて提供された、3Dモデルオブジェクトの代表である。従ってフィルタリングは、ポリラインの集合を形成する3Dモデルオブジェクトの映し出された「ストロークポイント」を選択するために実行され、そのフィルタリングは、ポリラインの形状に基づく。例えば、2つのポリラインは同じ形状であるが、第3のポリラインが全く異なる形状である場合、同じ形状である2つのポリラインを備える第1のサブセットが作成されて、そして第3のポリラインを備える第2のサブセットが作成される。結果的に、第1の滑らかな幾何学曲線は、第1のサブセットのポリラインの集合から計算されて、第2の滑らかな幾何学曲線は、第2のサブセットのポリラインの集合から計算される。この大胆なフィルタリングによって、スケッチ段階の間、ユーザの設計意図を遵守しながら滑らかな幾何学曲線をトレースすることが可能になる。このフィルタリングは、類似したいくつかのストロークをスケッチするユーザは、今後のステップにおいてもそのようなストロークを表現する新しい(clean)ラインをトレースする予定であるという仮定に依存する。
【0102】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される(ステップ250)。これは、滑らかな幾何学曲線を定義するデータが、例えば、空間の相対位置を含むジオメトリデータなどのスムース表現が可能になるデータを備えることを意味する。言い換えれば、CADシステムによって引き出すことができるファイルが作成される。さらに、そのファイルをいくつかのシステム、例えば、コンピュータネットワークを通じて接続されたシステム間で簡単に共有することができる。
【0103】
抽出のステップ(S180)と、計算のステップ(S170)と、構築のステップ(S250)は、提供された各三次元モデルオブジェクトに対して反復されることを理解されたい。これは要するに、提供された3Dモデルオブジェクトのすべてのポイントが抽出されて、そして抽出されたほとんどすべてのポイントが3D幾何学モデルオブジェクトを構築するのに用いられると言えよう。言い換えれば、設計者が作成した3Dモデルオブジェクトから3D幾何学モデルオブジェクトを自動的に得ることが可能である。言い換えれば、ユーザがオブジェクトをスケッチした後で、そのオブジェクトのトレースを自動的に得ることができる。その結果、「新しい」オブジェクトを得る(つまり、オブジェクトのトレース)速度が上がり、今後の設計操作のためにそのトレースをCADシステムに取り込むことができる。
【0104】
手動抽出モードは、システム(例えば、CADシステム)とユーザとの間の相互作用に応じて滑らかな幾何学曲線を計算する(S170)。この計算は、システムが滑らかな幾何学曲線を計算する間、ユーザがシステム動作を用いることを意味する。従って滑らかな幾何学曲線は、ユーザとシステムとの相互作用を表すカーブである。言い換えれば、ユーザは、少なくとも2つの3Dモデルオブジェクトに代わることが予定されているカーブを描く。その結果、そのトレース段階は、ユーザの要求を満たす。
【0105】
実際には、ユーザは、ユーザ相互作用に対応するストロークが定義される(S200)ように、画面との相互作用を行う(ステップS190)。これらのステップは、ステップS100およびS110と同様である。
【0106】
次に、提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つと、上記の三次元モデルオブジェクトの1つのうち少なくとも1つのサポートとは、抽出されたポイントにおいて読み出される。言い換えれば、3Dモデルオブジェクトが構築された3Dモデルオブジェクトおよびサポート(複数可)が読み出される。
【0107】
この読み出しは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すことによって行うことができ、例えば、図2のカーソル2060を、ユーザがグラフィカルインタフェース内で相互作用ができるようにする触角デバイスによって制御できる。ユーザの相互作用を、例えば、画面がセンシティブ(例えば、シングルタッチスクリーンまたはマルチタッチスクリーン)であれば、ユーザが画面上に圧力をかけて直接行うか、または例えば、マウス、またはユーザがタッチペンを使用することができるタッチパッドなどの触覚デバイスを用いることによって間接的に行うことができることを理解されたい。この動作を、画面上をレーザーでポイントするか、または画面と相互作用するその他のやり方によって行うことも可能である。ユーザの相互作用が画面上で直接行われるイベントにおいて、ピックパスは、ユーザが圧力をかける画面の場所から始まる。
【0108】
最も近くにある3Dモデルオブジェクトは、画面との距離が最も短い3Dシーンの3Dモデルオブジェクトである。言い換えれば、最も近くにある3Dモデルオブジェクトは、ユーザによって最も近くにあると認識されたオブジェクトである。これは、ユーザのトレース操作を容易にする。
【0109】
ピックパスは、3Dモデルオブジェクトの提供されたセットと交差するパスである。ピックパスは、パスと交差したオブジェクトを拾い上げることができる、つまり、オブジェクトを個々に選択できることを意味する。言い換えれば、ピックパスは、画面の場所で計算された光線(近―遠光線)と3Dシーンの視覚化された3Dモデルオブジェクトとの交点からの結果である。
【0110】
読み出しは、検索および読み出し用に体系化されたデータの集積(例えば、データベース)に記憶された3Dモデルオブジェクトがクエリに応じて検索されて、クエリの結果として提供されることを意味する。
【0111】
実際には、ピックパスを、例えば、光線変換(ray casting)技術を用いて光線に実装できる(S210)。ピックパスは従って、光線と交差した3Dモデルオブジェクトの視覚化のリストを包含する。ピックパスの実装は、光線変換に限定されず、他の方法、例えば、光線ボリューム変換(volume ray casting)も想定することができる。光線変換は、光線と交差した第1のオブジェクト、つまり、3Dシーンの画面から最も近いオブジェクトを決定する、当業者に周知のソリューションである。光線は、カーソルから、またはタッチセンシティブな画面上にユーザが圧力をかける場所から変換される。カーソルから光線が変換されるイベントにおいて、その光線は連続して変換される。ユーザが画面との相互作用を行うイベント、例えば、ユーザが画面に触れるイベントにおいて、光線は、圧力がかかった画面の場所から変換される。
【0112】
カーソルから始まるピックパスから最も近いサポートを決定することによって、3Dモデルオブジェクトの提供されたセットの1つおよびそのサポート(複数可)の読み出しを行うことができ、このサポートで構築された3Dモデルオブジェクトも読み出されることを理解されたい。サポートが2以上の3Dモデルオブジェクトによって共有されるイベントにおいて、後でこれらの2以上のオブジェクトも読み出される。
【0113】
次に、ひとたび読み出しのステップが行われると(その上サポートが読み出されると)、ユーザ相互作用に対応するストロークは、ポイントの集合に離散化される(S230)。その後、ポイントの集合のポイントは、ステップS220において読み出されたサポート上に映し出される(S240)。これらのステップS230およびS240を、ステップS120およびS130と同様に行うことができることを理解されたい。
【0114】
次に、滑らかな幾何学曲線から三次元幾何学モデルオブジェクトが構築される(ステップ250)。これは、自動抽出モードと同様に行われる。
【0115】
手動抽出モードに従った抽出のステップ(S180)と、計算ステップ(S170)と、構築ステップとは、ユーザが画面との相互作用を行う間に行われることを理解されたい。実際に、これらのステップは、画面とのユーザ相互作用に応じてストロークが定義される間に、要するに、少なくとも2つの3Dモデルオブジェクトに代わることが予定されているカーブをユーザが描く間に反復される。
【0116】
図12を参照すると、図11の滑らかなカーブ500から得られた3D幾何学モデルオブジェクトが示されている。CADシステムで、この幾何学モデルオブジェクトを巧みに操作することができる。例えば、カーブを修正するのに制御ポイント506を用いることができる。
【0117】
本発明の好適実施形態を説明してきた。本発明の主旨および範囲から逸脱しない範囲で、さまざまな変更が行われてもよいことを理解されたい。従って、他の実装は、以下の特許請求の範囲内とする。例えば、サポートのサーフェスの一部の選択を構築するのに用いられるオフセットポイントの計算を、ユーザまたはシステムによって決定された距離(例えば、ピクセル数)で映し出された「ストロークポイント」によって形成されるポリラインから伸びた通常のストリップを決定することによって計算してもよい。
【符号の説明】
【0118】
400 ストローク
402、404 ポイント
406 ストロークポイント
408、409 オフセットポイント
410 プレーンサポート
420 ポリライン
500 カーブ(幾何学的3Dモデルオブジェクト)
502、503、504 ポリライン
506 制御ポイント
1000 バス
1010 CPU
1020 大容量記憶デバイスコントローラ
1030 ハードドライブ
1040 CD−ROM
1050 ネットワークアダプタ
1060 ネットワーク
1070 RAM
1080 ディスプレイ
1090 触覚デバイス
1100 ビデオRAM
1110 GPU
【特許請求の範囲】
【請求項1】
三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、
画面とのユーザ相互作用のステップと、
前記ユーザ相互作用に対応するストロークを定義するステップと、
前記ストロークをポイントの集合に離散化するステップと、
前記ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、
前記映し出されたポイントの集合および前記少なくとも1つのサポートから前記三次元モデルオブジェクトを構築するステップと
を備えることを特徴とする方法。
【請求項2】
前記三次元モデルオブジェクトの視覚化を構築するステップであって、
前記映し出されたポイントの集合の各ポイントに対して少なくとも2つのオフセットポイントを計算するサブステップであって、オフセットポイントは、前記少なくとも1つのサポート上で位置付けされ、および前記各ポイントから間隔が空けられたポイントであるサブステップと、
前記計算された少なくとも2つのオフセットポイントによって線引きされたサーフェスを計算するサブステップであって、前記サーフェスは、前記映し出されたポイントの集合を備えるサブステップと
を含むステップをさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
前記少なくとも2つのオフセットポイントを計算するステップは、
前記映し出されたポイントの集合の前記ポイントをリンクするポリラインを計算するステップと、
前記映し出されたポイントの集合の各ポイントに対してオフセットベクトル
【数1】
(以下、各ベクトルを以下のように表記する。)
を計算するステップであって、αは係数、n→は前記サポートに垂直な単位ベクトル、L→は前記ポリラインを形成する前記ポイントの集合の2つのポイントをリンクするラインによって定義されるベクトル、n→およびL→は前記各ポイントを共通原点として有するステップと、
前記オフセットベクトルO→から前記少なくとも2つのオフセットポイントを決定するステップと、
前記決定された前記少なくとも2つのオフセットポイントを三次元シーンの前記少なくとも1つのサポート上に映し出すステップと
を備えることを特徴とする請求項2に記載の方法。
【請求項4】
前記計算されたオフセットによって線引きされた前記計算されたサーフェスをテセレートするステップをさらに備えることを特徴とする請求項2または3に記載の方法。
【請求項5】
前記三次元幾何学モデルオブジェクトの視覚化を構築するステップは、前記計算されたサーフェスをレンダリングするためにシェーダを適用するステップをさらに備えることを特徴とする請求項2から4のいずれか一項に記載の方法。
【請求項6】
すべての前記ステップは、前記三次元シーンの少なくとも別の1つのサポートで反復されるステップであることを特徴とする請求項1から5のいずれかに一項に記載の方法。
【請求項7】
三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、
請求項1から6のいずれか一項における方法に従って設計された三次元モデルオブジェクトのセットを提供するステップと、
前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、
前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、
前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップと
を備えることを特徴とする方法。
【請求項8】
前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする請求項7に記載の方法。
【請求項9】
前記ポイントを抽出するステップは、
前記画面とのユーザ相互作用のステップと、
前記ユーザ相互作用に対応するストロークを定義するステップと、
前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つを読み出し、読み出された前記三次元モデルオブジェクトの1つの少なくとも1つのサポートを読み出すステップと、
前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、
前記ポイントの集合の前記ポイントを前記少なくとも1つの読み出されたサポート上に映し出すステップと
をさらに備えることを特徴とする請求項7に記載の方法。
【請求項10】
前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする請求項9に記載の方法。
【請求項11】
前記ピックパスは、前記カーソルからの光線変換を備えることを特徴とする請求項10に記載の方法。
【請求項12】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする請求項7または8に記載の方法。
【請求項13】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、前記ユーザが前記画面との相互作用を行う間に反復されることを特徴とする請求項9から11のいずれか一項における方法。
【請求項14】
コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、請求項1から13のいずれか一項における方法を実行するための手段を備えることを特徴とするコンピュータプログラム。
【請求項15】
請求項14に係るコンピュータプログラムが記録されるコンピュータ可読記憶媒体。
【請求項1】
三次元モデルオブジェクトを設計するためのコンピュータ実装される方法であって、
画面とのユーザ相互作用のステップと、
前記ユーザ相互作用に対応するストロークを定義するステップと、
前記ストロークをポイントの集合に離散化するステップと、
前記ポイントの集合を三次元シーンの少なくとも1つのサポート上に映し出すステップと、
前記映し出されたポイントの集合および前記少なくとも1つのサポートから前記三次元モデルオブジェクトを構築するステップと
を備えることを特徴とする方法。
【請求項2】
前記三次元モデルオブジェクトの視覚化を構築するステップであって、
前記映し出されたポイントの集合の各ポイントに対して少なくとも2つのオフセットポイントを計算するサブステップであって、オフセットポイントは、前記少なくとも1つのサポート上で位置付けされ、および前記各ポイントから間隔が空けられたポイントであるサブステップと、
前記計算された少なくとも2つのオフセットポイントによって線引きされたサーフェスを計算するサブステップであって、前記サーフェスは、前記映し出されたポイントの集合を備えるサブステップと
を含むステップをさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
前記少なくとも2つのオフセットポイントを計算するステップは、
前記映し出されたポイントの集合の前記ポイントをリンクするポリラインを計算するステップと、
前記映し出されたポイントの集合の各ポイントに対してオフセットベクトル
【数1】
(以下、各ベクトルを以下のように表記する。)
を計算するステップであって、αは係数、n→は前記サポートに垂直な単位ベクトル、L→は前記ポリラインを形成する前記ポイントの集合の2つのポイントをリンクするラインによって定義されるベクトル、n→およびL→は前記各ポイントを共通原点として有するステップと、
前記オフセットベクトルO→から前記少なくとも2つのオフセットポイントを決定するステップと、
前記決定された前記少なくとも2つのオフセットポイントを三次元シーンの前記少なくとも1つのサポート上に映し出すステップと
を備えることを特徴とする請求項2に記載の方法。
【請求項4】
前記計算されたオフセットによって線引きされた前記計算されたサーフェスをテセレートするステップをさらに備えることを特徴とする請求項2または3に記載の方法。
【請求項5】
前記三次元幾何学モデルオブジェクトの視覚化を構築するステップは、前記計算されたサーフェスをレンダリングするためにシェーダを適用するステップをさらに備えることを特徴とする請求項2から4のいずれか一項に記載の方法。
【請求項6】
すべての前記ステップは、前記三次元シーンの少なくとも別の1つのサポートで反復されるステップであることを特徴とする請求項1から5のいずれかに一項に記載の方法。
【請求項7】
三次元幾何学モデルオブジェクトを設計するためのコンピュータ実装される方法であって、
請求項1から6のいずれか一項における方法に従って設計された三次元モデルオブジェクトのセットを提供するステップと、
前記提供された三次元モデルオブジェクトのセットの前記ポイントを抽出するステップと、
前記抽出されたポイントから滑らかな幾何学曲線を計算するステップと、
前記滑らかな幾何学曲線から三次元幾何学モデルオブジェクトを構築するステップと
を備えることを特徴とする方法。
【請求項8】
前記ポイントを抽出するステップにおいて、前記ポイントが映し出される前記サポートに従って前記ポイントが抽出されることを特徴とする請求項7に記載の方法。
【請求項9】
前記ポイントを抽出するステップは、
前記画面とのユーザ相互作用のステップと、
前記ユーザ相互作用に対応するストロークを定義するステップと、
前記抽出されたポイントにおいて、前記提供された三次元モデルオブジェクトのセットのうち三次元モデルオブジェクトの1つを読み出し、読み出された前記三次元モデルオブジェクトの1つの少なくとも1つのサポートを読み出すステップと、
前記ユーザ相互作用に対応する前記ストロークをポイントの集合に離散化するステップと、
前記ポイントの集合の前記ポイントを前記少なくとも1つの読み出されたサポート上に映し出すステップと
をさらに備えることを特徴とする請求項7に記載の方法。
【請求項10】
前記読み出すステップは、カーソルから始まるピックパスから最も近い三次元モデルオブジェクトを読み出すステップをさらに備えることを特徴とする請求項9に記載の方法。
【請求項11】
前記ピックパスは、前記カーソルからの光線変換を備えることを特徴とする請求項10に記載の方法。
【請求項12】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、提供された各三次元モデルオブジェクトに対して反復されることを特徴とする請求項7または8に記載の方法。
【請求項13】
前記ポイントを抽出するステップ、前記幾何学曲線を計算するステップ、および前記三次元幾何学モデルオブジェクトを構築するステップは、前記ユーザが前記画面との相互作用を行う間に反復されることを特徴とする請求項9から11のいずれか一項における方法。
【請求項14】
コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、請求項1から13のいずれか一項における方法を実行するための手段を備えることを特徴とするコンピュータプログラム。
【請求項15】
請求項14に係るコンピュータプログラムが記録されるコンピュータ可読記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−238309(P2012−238309A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−108466(P2012−108466)
【出願日】平成24年5月10日(2012.5.10)
【出願人】(500102435)ダッソー システムズ (52)
【氏名又は名称原語表記】DASSAULT SYSTEMES
【Fターム(参考)】
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2012−108466(P2012−108466)
【出願日】平成24年5月10日(2012.5.10)
【出願人】(500102435)ダッソー システムズ (52)
【氏名又は名称原語表記】DASSAULT SYSTEMES
【Fターム(参考)】
[ Back to top ]