(58)【調査した分野】(Int.Cl.,DB名)
前記所定回数(n)は、前記ユーザにより定義される、および/または、前記2D画像の詳細のレベルに対して関連付けられた所定の基準に増加的に依存することを特徴とする請求項3に記載の方法。
【発明を実施するための形態】
【0019】
図2のフローチャートを参照して、3Dモデル化オブジェクトを設計するためのコンピュータ実装方法が提案される。方法は、細分割曲面と、対応する所定のメッシュ−NURBS曲面間の変換アルゴリズムと、に対して関連付けられたベースメッシュを、ユーザにより定義するステップS10を含む。細分割曲面は、3Dモデル化オブジェクトを表す。方法はまた、2D画像と、2D画像を細分割曲面上にエングレーブするための場所と、をユーザにより定義するステップS20を含む。そして、方法は次に、NURBS曲面を判定するステップS30を含み、該ステップは、メッシュ−NURBS曲面間の変換アルゴリズムをベースメッシュに対して実行した結果に、変形写像を適用することに対応する(すなわち、「対応する」により意味されることは、少なくとも近似的に結果が取得される限り、例えば、以下のステップにより、たとえそれら特定のステップが実施されない場合でも、後工程で与えられる「近似」の意味で取得される限り、NURBS曲面を取得する特定のやり方が、実施の詳細であるということである)。変形写像には、メッシュ−NURBS曲面間の変換アルゴリズムをベースメッシュに対して実行した結果の位置に関して設けられる、変位ベクトルが含まれる。これらの位置は、2D画像をエングレーブするための場所に対応する。変位ベクトルは、対応する2D画像の画素値に基づき計算される。かかる方法は、3Dモデル化オブジェクトの設計を向上させる。
【0020】
特に、細分割曲面と、対応する所定のメッシュ−NURBS曲面間の変換アルゴリズムと、に対して関連付けられたベースメッシュのコンテキストにおいて、CADの分野から周知である設計のコンテキストの利点を用いて、方法により、3Dモデル化オブジェクトの設計修正が可能とされる。実際、ベースメッシュの構造と、曲面の設計に関する関連するユーザの意図とが、方法全体を通して保持され、これにより、単にこのベースメッシュフレームワークに仕様を追加するということになり、CAD設計者が慣れた作業である。ベースメッシュに対して実行される従来技術の修正ソリューション(例えば、多重解像度情報の追加および/または細分割後の詳細の追加)とは異なり、方法は、ベースメッシュの細分割を、該ベースメッシュの後工程での変換の前に行うことを意図していないため(S30において、所定のメッシュ−NURBS曲面間の変換アルゴリズムを用いて)、該後工程での変換を容易に実行することができ(計算コストの観点から)、また、制御点の個数を押さえるような結果にはならない。換言すると、後工程にて変換アルゴリズムに入力されるメッシュの面(フェイス)の個数が、方法によって過度に増加することがない。NURBSに対して実行される従来の修正ソリューションとは異なり、方法により、細分割曲面のベースメッシュの修正が可能となるため、ユーザは、比較的簡略化されたやり方で、このコンテキストのおかげで、他の修正を後で行うことができる(このフレームワークにおいて可能な任意トポロジに関連する利点を伴い、また、複雑なNURBSに比べて、メモリ空間はベースメッシュによりほとんどとられない)。実際、CADの分野において広く既知であるように、これらの理由により、スタイリング設計は、NURBSよりも細分割曲面に対して行われる。ユーザは、従って、S20で定義される仕様の追加の後でも、3Dモデル化オブジェクトのベースメッシュエディットを実行することができる。また、方法では、S20における定義がベースメッシュレベルで実行されるように、確実にNURBSパッチ間の連続性が過度に壊れないようにする。
【0021】
方法では、ユーザに、簡単な、対話式の、視覚的なやり方をこのように提示し、細分割曲面上に場所が提供された2D画像の形式で、S20にて仕様を定義することにより、局所の詳細を3Dモデル化オブジェクトに追加する。このエディットでは、実際のエングレーブをシミュレートし、かつ、ユーザの工業上の要件を順守し、これには、曲面の細分割技術(ベースメッシュを用いた)に基づく設計のコンテキストを保持することが含まれ、ここでは、加えて、最終的な曲面の物質の連続性を保持することが含まれる。
【0022】
方法はコンピュータ実装される。方法のステップは、実際は、コンピュータシステムのみ、または、グラフィカルなユーザ対話(すなわち、ユーザがコンピュータシステムのGUIと対話すること)により、コンピュータシステム上で実行される。従って、特定的にコンピュータシステムによって実行されるステップは、完全に自動的に実行されてもよい。例において、方法の少なくともいくつかのステップのトリガは、ユーザ/コンピュータ間の対話を通して行われてもよい。特に、定義ステップS10およびS20は、同じワークセッションまたは異なるワークセッションにて、コンピュータで作業するユーザにより実行される。判定ステップS30は、同じワークセッション(S10およびS20のうちの一方、またはS20のみ)、または異なるワークセッションにて、ユーザによりトリガされてもよい。要求されるユーザ/コンピュータ間の対話のレベルは、予測される、かつ、ユーザの要望を満たす必要性との均衡がとれた、自動的動作のレベルに依存してもよい。例においては、このレベルは、ユーザ定義されても、および/または予め定義されてもよい。
【0023】
方法のコンピュータ実装の典型的な例は、この目的のために適合されるシステムを用いて、方法を実行することである。システムは、メモリに連結されるプロセッサと、グラフィカルユーザインタフェース(GUI)と、を備えてもよく、メモリには、方法を実行するための命令を含むコンピュータプログラムが記録される。メモリはまた、データベースを格納してもよい。メモリは、かかる格納に適合された任意のハードウェアであり、いくつかの物理的に別個のパーツ(例えば、1つはプログラム用、また、場合によっては1つをデータベース用に)を備えていてもよい。
【0024】
方法では、モデル化オブジェクトを全体的に操作する。モデル化オブジェクトは、データベースに格納されたデータにより定義される任意のオブジェクトである。意味を広げると、「モデル化オブジェクト」という語句は、データそのものを指す。「3Dモデル化オブジェクトを設計する」とは、3Dモデル化オブジェクトを精巧に作り上げるプロセスの少なくとも一部である、任意の動作または一連の動作を指す。従って、方法は、3Dモデル化オブジェクトをゼロから作成するステップを含んでもよい。あるいは、方法は、以前作成された3Dモデル化オブジェクトを準備し、次に、3Dモデル化オブジェクトを、特に方法により達成されるエングレービングにより、修正するステップを含んでもよい。
【0025】
システムのタイプに従って、モデル化オブジェクトは、異なる種類のデータにより定義されてもよい。システムは、実際には、CADシステム、CAEシステム、CAMシステム、PDMシステムおよび/またはPLMシステムの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは対応するデータにより定義される。従って、オブジェクトは、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータ、のことをいうものとしてよい。しかし、これらのシステムは、他を除外した1つであるのではなく、モデル化オブジェクトは、これらシステムの任意の組み合わせに対応するデータにより定義されてもよい。従って、システムは、CAD兼PLMのシステムであってもよく、以下で示すシステムの定義から明らであろう。
【0026】
CADシステムによって、CATIA等の、モデル化オブジェクトのグラフィカルな表現に基づき、モデル化オブジェクトを設計するために少なくとも適合された任意のシステムが表わされる。この場合、モデル化オブジェクトを定義するデータには、モデル化オブジェクトの表現が可能なデータが含まれる。CADシステムは、例えば、エッジまたは線を、時には面または表面と共に使用して、CADモデル化オブジェクトの表現を提供することができる。線、エッジ、または表面は、種々の様式で、例えば、非一様有理Bスプライン(NURBS)で、表現されてもよい。具体的には、CADファイルには仕様が含まれ、該仕様によりジオメトリ(幾何学形状)を生成させることができ、該ジオメトリにより表現を生成させることができる。モデル化オブジェクトの仕様は、単一のCADファイルまたは複数の該ファイルに格納されてもよい。CADシステムのモデル化オブジェクトを表現するファイルの典型的なサイズは、1パーツ当たり1メガバイトの範囲である。モデル化オブジェクトは、典型的には、数千パーツのアセンブリ(組立品)である。
【0027】
CADシステムの文脈において、モデル化オブジェクトは典型的には、3Dモデル化オブジェクトであってもよく、例えば、パーツもしくはパーツのアセンブリなどの製品を表現し、または、製品のアセンブリを表現することもある。「3Dモデル化オブジェクト」によって、その3D表現が可能なデータによりモデリングされる任意のオブジェクトが表される。3D表現では、あらゆる角度からのパーツのビューが可能である。例えば、3Dモデル化オブジェクトを、3Dで表現する際、処理してオブジェクトのいずれかの軸を中心に、または、表現が表示される画面の任意の軸を中心に、回転させることができる。これには、特に、2Dアイコンが含まれず、2Dアイコンは3Dモデリングされない。3D表現の標示により、設計が容易になる(すなわち、設計者がその仕事を統計的に達成する速度が上がる)。これにより、製品の設計は製造プロセスまたはモデリングプロセスの一部であるため、業界における製造プロセスの速度が上がる。3Dモデル化オブジェクトはさらに、S10のベースメッシュにより定義されるだけでなく、従来の3Dモデル化オブジェクトの仕様に対する追加的な仕様を形成する、S20で定義されるデータによっても定義される、という特殊性を有する。
【0028】
3Dモデル化オブジェクトは、例えば、CADソフトウェア・ソリューションまたはCADシステムを用いて、(例えば、機械の)パーツもしくはパーツのアセンブリ、または、さらに一般的には任意の剛体アセンブリ(例えば、移動機構)など、製品の仮想設計の完了に続いて実世界で製造される製品のジオメトリを表現することができる。CADソフトウェア・ソリューションにより、航空宇宙、建築、建設界、消費財、ハイテク装置、産業機器、運輸、海洋、および/または、海上もしくは運輸を含む、種々の無限の工業分野における製品の設計が可能となる。方法により設計される3Dモデル化オブジェクトは、工業製品をこのように表現するものであり、この工業製品は、地上車のパーツ(例えば、自動車および軽トラックの機器、レーシングカー、オートバイ、トラックおよびモータの機器、トラックおよびバス、電車を含む)、飛行機のパーツ(例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機器、宇宙機器を含む)、海軍車(例えば、海軍機器、商船、海上機器、ヨットおよび作業船、海洋機器を含む)、機械パーツ(例えば、工業製造機械、移動重機または機器、設置された機器、産業機器製品、組立金属製品、タイヤ製造製品を含む)、電気機械パーツまたは電子パーツ(例えば、家電、セキュリティおよび/または制御および/または計測製品、コンピューティングおよび通信機器、半導体、医療装置および機器を含む)、消費財(例えば、家具、家庭および園芸製品、レジャー用品、ファッション製品、耐久諸費材小売製品、織物小売製品を含む)、パッケージング(例えば、食品および飲料およびたばこ、美容および身の回りの手入れ、家庭用品パッケージングを含む)、であってもよい。方法は、3Dモデル化オブジェクトの美的側面の重要性が高い場合に特に有用である。このことは、3Dモデル化オブジェクトが、車両または航空機の機械パーツ、例えば、可視パーツ、または、消費財(例えば、カメラなどの電子用品)など、を表現する場合にも当てはまる。
【0029】
PLMシステムによって、物理的な製造製品を表現するモデル化オブジェクトの管理のために適合された任意のシステムが表される。PLMシステムでは、モデル化オブジェクトは、物理的オブジェクトの製造に適したデータにより定義される。これらは、典型的には寸法の値および/または許容差の値であってもよい。オブジェクトを正確に製造するために、かかる値を有することが実際は好ましい。
【0030】
CAMは、Computer−Aided Manufacturing(コンピュータ支援製造)の略である。CAMソリューションによって、製品の製造データを管理するために適合された任意のソリューション、ハードウェア、またはソフトウェア、が表される。製造データには、一般に、製造する製品、製造プロセス、および必要なリソース、に関するデータが含まれる。CAMソリューションを使用して、製品の製造プロセス全体を計画および最適化する。例えば、実現可能性、製造プロセスの期間、または製造プロセスの特定のステップで使用されてもよい、特定のロボットなどのリソースの数、に関する情報をCAMユーザに提供することができ、従って、管理または必要な投資に関する決定を可能にする。CAMは、CADプロセスおよび使用の可能性があるCAEプロセスの後に続くプロセスである。かかるCAMソリューションは、ダッソー・システムズによりDELMIA(登録商標)という商標で提供される。
【0031】
CAEは、Computer−Aided Engineering(コンピュータ支援エンジニアリング)の略である。CAEソリューションによって、モデル化オブジェクトの物理的挙動の分析のために適合された任意のソリューション、ソフトウェア、またはハードウェア、が表される。周知の広く使用されるCAE技術は、有限要素法(Finite Elemen tMedhod(FEM))であり、この方法は、典型的には、モデル化オブジェクトを要素に分割することを伴い、物理的挙動を方程式を介して計算してシミュレートすることができる。かかるCAEソリューションはダッソー・システムズによりSIMULIA(登録商標)という商標で提供される。別の成長中のCAE技術では、CADジオメトリデータを用いない物理学の異なる分野からの、複数の構成要素から成る複雑なシステムの分析およびモデリングを伴う。CAEソリューションでは、製造する製品のシミュレーション、ひいては最適化、向上および検証が可能となる。かかるCAEソリューションはダッソー・システムズによりDYMOLA(登録商標)という商標で提供される。
【0032】
PDMは、Product Data Management(製品データ管理)の略である。PDMソリューションによって、特別な製品に関する全てのタイプのデータを管理するために適合された任意のソリューション、ソフトウェア、またはハードウェア、が表される。PDMソリューションは、製品のライフサイクルに係る全ての当事者、第一には技術者であるが、プロジェクトマネージャ、財務担当者、販売員、およびバイヤー、により使用されてもよい。PDMソリューションは、一般に製品志向のデータベースに基づく。これにより、ユーザは、自らの製品に関する一貫したデータを共有することができ、よって、当事者が相違したデータを使用してしまうことを防ぐ。かかるPDMソリューションは、ダッソー・システムズによりENOVIA(登録商標)という商標で提供される。
【0033】
図3は、システムのGUIの一例を示し、ここではシステムはCADシステムである。
【0034】
GUI2100は、典型的なCADのようなインターフェースであってもよく、標準メニューバー2110、2120、底部と側部にはツールバー2140、2150、を有する。かかるメニューバーおよびツールバーには、ユーザ選択可能アイコンのセットが含まれ、各アイコンは、従来技術において既知であるように、1つまたは複数の操作または関数と関連付けられている。これらのアイコンのうちのいくつかが、ソフトウェアツールと関連付けられ、GUI2100内に表示される3Dモデル化オブジェクト2000上でのエディットおよび/または作業のために適合され、表示される3Dモデル化オブジェクト2000は、例えば、方法を実行した結果である。ソフトウェアツールを、ワークベンチごとにまとめてもよい。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチのうちの1つはエディションワークベンチであり、モデル化製品2000の幾何学的特徴のエディットに適している。操作時、設計者は、例えば、オブジェクト2000の一部を事前に選択し、次に、操作を開始し(例えば、寸法、色などの変更)または、適切なアイコンを選択することにより幾何学的制約をエディットすることができる。例えば、適切なCAD操作は、画面に表示された3Dモデル化オブジェクトの模様のパンチまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関するデータ2500を表示することができる。
図2の例では、「特徴ツリー」として表示されるデータ2500と、その3D表現2000とは、ブレーキのキャリパおよびディスクを含むブレーキアセンブリに関連する。GUIは、種々のタイプのグラフィックツール2130、2070、2080をさらに示し、それぞれ、例えば、オブジェクトの3D定位を容易にするためのもの、エディットされる製品の操作のシミュレーションをトリガする、または表示される製品2000の種々の属性をレンダリングするためのものである。カーソル2060は、触覚装置によって制御され、ユーザがグラフィックツールと対話できるようにする。
【0035】
図4は、システムの一例を示し、ここでは、システムはクライアントコンピュータシステム、例えば、ユーザのワークステーションである。
【0036】
本例のクライアントコンピュータは、内部通信バス1000に接続される中央処理装置(CPU)1010、同じくこのバスに接続されるRAM(random access memory)1070を備える。クライアントコンピュータには、バスに接続されるビデオRAM1100と関連付けられたGPU(graphical processing unit)1110がさらに設けられる。ビデオRAM1100はまた、フレームバッファとして従来技術において既知である。A大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量メモリ装置へのアクセスを管理する。コンピュータプログラム命令およびデータを有形的に具現化するのに適した大容量メモリ装置には、全ての形式の不揮発性メモリが含まれ、例として含まれるものには、EPROM、EEPROM、およびフラッシュメモリ装置などの半導体メモリ装置、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスク1040がある。上述のものはいずれも、専用に設計されたASIC(特定用途集積回路)によって補完されてもよく、またはこれに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータには、カーソル制御装置、キーボードまたは類似のものなどの触覚装置1090も含まれる。カーソル制御装置は、クライアントコンピュータにおいて使用されて、ディスプレイ1080上の任意の所望の場所に、ユーザがカーソルを選択的に位置決めすることを許可する。加えて、カーソル制御装置により、ユーザは、種々のコマンドを選択すること、および制御信号を入力することができる。カーソル制御装置には、システムへの制御信号入力用の多数の信号生成装置が含まれる。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンが使用されて信号が生成される。あるいは、または加えて、クライアントコンピュータシステムは、センシティブ/タッチパッド、および/または、センシティブ/タッチスクリーンを備えてもよい。
【0037】
コンピュータプログラムは、コンピュータにより実行可能な命令を備えてもよく、命令は、上記システムに方法を実行させるための手段を備える。プログラムは、システムのメモリを含む、任意のデータ記憶媒体に記録可能である。プログラムは、デジタル電子回路、またはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェア、またはこれらの組み合わせによって実装されてもよい。プログラムは、装置として、例えば、プログラム可能プロセッサによる実行のための、機械可読記憶装置に有形に具現化された製品として、実装されてもよい。方法のステップは、命令のプログラムを実行するプログラム可能プロセッサにより実行されて、入力データに作用すること、および出力を生成することにより、方法の機能を実行することができる。従って、プロセッサは、プログラム可能であってもよく、また、データ記憶システム、少なくとも1つの入力装置、および少なくとも出力装置から、データおよび命令を受信し、ならびに、該装置にデータおよび命令を送信するために連結されてもよい。アプリケーションプログラムは、高レベル手続き型プログラミング言語またはオブジェクト指向のプログラミング言語で実装されてもよく、必要に応じて、アセンブリ言語または機械言語で実装されてもよい。いずれの場合も、その言語は、コンパイラ言語であっても、インタープリタ言語であってもよい。プログラムは、完全インストールプログラムまたは更新プログラムであってもよい。システムにプログラムを適用すると、いずれの場合も、方法を実行するための命令が得られる。
【0038】
ここで、定義ステップS10について検討する。
【0039】
CADの分野から広く既知であるように、ユーザは、細分割曲面に関連する「ベースメッシュ」と呼ばれるメッシュを、頻繁に定義(すなわち、設計)するかもしれない。これが、方法のS10で行われることである。メッシュとは、頂点(3D位置)、および頂点を2個ずつ連結するエッジ(例えば、線分)を有する、メッシュのいわゆる面(すなわち、エッジの最少周期)を形成する、任意のグラフ構造を意味する。メッシュは、四辺形メッシュ(主にまたは完全に、エッジが4個の面から成る)および三角形メッシュ(主にまたは完全に、エッジが3個の面から成る)を含む、異なるタイプのうちの1つであってもよい。定義ステップS10は、米国特許第7893937B2号に示されるような対称操作による高速再現を含む、任意の方法で実行されてもよい。
【0040】
CADのベースメッシュは、細分割曲面と、対応する所定のメッシュ−曲面間の変換アルゴリズムとに対して関連付けされる。実際に、ベースメッシュは、3Dモデル化オブジェクトのジオメトリを定義するデータの下層にあるメッシュである。換言すると、オブジェクトのジオメトリは、メッシュによって表現される。より詳細には、広く既知であるように、ベースメッシュは、細分割アルゴリズムに対して概念的に関連付けされる。上記細分割アルゴリズムに従ってベースメッシュを無限に細分割することで、「細分割曲面」と呼ばれる曲面が得られ、これが、設計された3Dモデル化オブジェクトのエンベロープ/境界を表現し、それによって、3Dモデル化オブジェクトをモデリングする。そのため、ベースメッシュが細分割曲面を「制御する」と言われる。細分割アルゴリズムは、任意の既知の細分割アルゴリズムであってもよく、四辺形メッシュの場合にはCatmull−Clark細分割アルゴリズム、または、三角形メッシュの場合にはLoop細分割アルゴリズムなどがある。
【0041】
広く既知であるように、実用性の目的で、細分割曲面は実際にはシステムによって判定されるのではない。代わりに、システムは、その近似を、パラメータパッチのセット、典型的にはNURBS(例えば、Bezier)曲面パッチのセット、の形で判定する。例えば、システムは、メッシュを、細分割曲面を近似するパラメータパッチのセットに変換させるスキームを実行するためのプログラムを格納する。この意味で、該スキームは下層の細分割アルゴリズムに相当する。方法の文脈において、このことは全て、方法が、細分割曲面技術をサポートするシステム上で稼働されるということを意味し、該技術は、所定の細分割スキーム(例えば、四辺形メッシュ用のCatmull−Clark、または、三角形メッシュ用のLoop)に従って、例えば、CADにおいては既知の、曲面の表示/エディット/シミュレーションまたは任意の他の処理のための、所定の変換アルゴリズムに基づき、ユーザが、ベースメッシュを定義し(S10など)、実際かつ理論上の細分割曲面を近似する曲面を自動的に出力/計算/判定する、ように特に構成/適合される。「近似」によって、理論上の細分割曲面と、メッシュ−曲面間の変換アルゴリズムの出力との間の定義されたスカラボリューム(正のスカラ関数の積分)が、細分割曲面を包絡する最少の平行六面体境界ボックスの体積の10%または5%未満であることが表される。
【0042】
本方法の場合、システムに対して予め定められた変換アルゴリズムはメッシュ−NURBS曲面間の変換アルゴリズムであり、これは、ベースメッシュが、ベースメッシュ(後述にて拡張して例示する一例においては、ベースメッシュは四辺形メッシュであり、細分割スキームはCatmull−Clark細分割スキームである)に対して関連付けられた細分割曲面を近似する、NURBSの基本曲面/パッチのセットで変形される、ということを意味する。所定のメッシュ−NURBS曲面間の変換アルゴリズムは、「近似演算子」と呼ばれることがあり、PCCM(・)で表されてもよい。ベースメッシュB
0の変換/変形を、以下ではS
0=PCCM(B
0)と表す。一例において、演算子PCCM(・)は、本明細書に参照として組み込まれる米国特許第7595799B2号明細書(欧州特許第EP1750229B1号に対応)および米国特許第7400323B2号明細書(米国特許第7595799B2号は、NURBSパッチをどのように生成するかについて記載し、米国特許第7400323B2号は、パッチ間の幾何学的接続の品質をどのように向上させるのかについて記載する)に記載されるメッシュ−NURBS曲面間の変換アルゴリズムであり、該構成においては、少なくともC
0が達成される特異頂点の近傍を除く、あらゆる場所(すなわち、NURBSパッチの全ての対の間)にC
2の連続性が達成される。しかし、所定のメッシュ−NURBS曲面間の変換アルゴリズムは、少なくともC0である特異頂点の近傍を除く互いの間のC2の連続性を有する、トリムされないパッチを産出する任意の他の既知の演算子であってもよい(Catmull−Clark細分割の収束特性、Recursively generated B−spline surfaces on arbitrary topological meshes、E.Catmull、J.Clark、Computer−Aided Design Volume 10、Issue 6、November 1978、Pages350-355参照)。完全を期して記すと、周知のように、かかる演算子は、均質メッシュを持つための目的で、初期回数の細分割を行い(通常は2回)、次に、操作の複雑度が、入力されるメッシュの面の個数に増加的に依存するという、解法の方程式に従ってNURBSパッチを作成する。それにより、少なくとも、多重解像度設定が、第2または第3のレベルの細分割を超えた情報を追加することにある場合は、かかる演算子は、多重解像度メッシュ(所定の細分割スキームを修正して−局所の詳細を追加する−ための局所的情報を用いたメッシュ)とは合致しない。
【0043】
なお、以下の2つの条件が満たされる場合、頂点が正規であると言える(対照的に、他の頂点が特異であると言える)。
・頂点が、メッシュの自由境界線上には無く、4個の鋭くないエッジで囲まれる(従って、4面で囲まれる)。
・頂点が、メッシュの自由境界線上にあり、2個の自由エッジおよび1個の非自由の鋭くないエッジで囲まれる(従って、2面で囲まれる)。
【0044】
この定義はまた、とりわけ、米国特許第7595799B2号(欧州特許第1750229B1号に対応)および米国特許第7400323B2号においても、見られる。正規の頂点は、Catmull−Clark細分割理論における最良の曲面品質を確保する。
【0045】
周知のように、本来、NURBS曲面は、いわゆる「制御点」の(2D)グリッドにより定義され、通常のトポロジ的な定義「グリッド」、例えば数行(少なくとも2行)および数列(少なくとも2列)のグリッド、を用いて定義される。方法を通して、コンピュータシステムが、S20を判定し、NURBS曲面に属する曲面の点のグリッドであって、所定の可逆関数に従う制御点のグリッドに対応するグリッド、を判定する。曲面の点は、幾何学的に曲面上にあり/曲面に属する、点である。NURBSの場合、曲面の真っ直ぐなグリッドは、本例のグレヴィル点(Greville point)のグリッドである。NURBSの曲面のグレヴィル点と制御点(概して、曲面自体の外側にある)との間の1対1の対応を可能にする所定の可逆関数は、NURBSジオメトリを記述する広く既知の数学から、予め定められ、与えられる。しかし、完全を期して、これらの数学について以下で詳述する。なお、判定ステップS20は、任意のやり方で、例えば、曲面とその制御点とが修正される度に、グレヴィル点をリアルタイムで再計算するバックグラウンドの処理として、実行されてもよい。
【0046】
NURBS曲面は、CADにおいては広く既知の、3D空間の値を用いて2D空間に定義される、曲面である:S(u,v)→(x,y,z)。NURBS曲面は、2個の節点ベクトル(knot vector)と、制御点の二次元配列と、場合によっては使用するCADソフトウェアによって決まる他のデータと、により表現される。典型的には、節点ベクトルは、浮動小数点値の1D配列である。制御点の配列は、インデックス化されてもよい。各制御点は、x、y、z座標の3D点である。配列内の場所は、2個のインデックスiおよびjで定義され、0≦i<Mかつ0≦j<Nである。グレヴィルパラメータとして既知のパラメータのセットは、節点ベクトルから計算できるため、インデックスiまたはjの各値を、グレヴィルパラメータ(u
i,v
i)と関連付けることができる。従来、グレヴィルパラメータは、固定個数の節点ベクトルの連続的な値の平均値のうちの2個の組のである「次数」と呼ばれるこの固定個数は、節点ベクトルの大きさ(uまたはv)ごとに異なってもよい。概して、2個1組の次数はNURBS曲面を表現するデータに属する。さらに詳細には、文献「Curves and surfaces for Computer Aided Geometric Design」、編集Morgan Kaufmann、(2001)Gerald Farin、にNURBS曲面の基本が記載される。
【0047】
旧来、NURBS曲面は以下の入力により定義される。
【0048】
1.(n+1)(m+1)個の制御点P
ijのグリッド
【0050】
、ただしi∈{0,...,n}かつj∈(0,...,m}。
【0051】
2.「次数」と呼ばれる2個の正の整数p,q、理由については後述する。
【0052】
3.実数の第1の順序付きリストu
0≦...≦u
i≦u
i+1≦...≦u
p+n+1、「u節点ベクトル」と呼ばれ、最初のp+1個の値u
iが等しく、最後のp+1個の値u
iが等しい。
【0053】
4.実数の第2の順序付きリストv
0≦...≦v
j≦v
j+1≦...≦u
q+m+1、「v節点ベクトル」と呼ばれ、最初のp+1個の値v
jが等しく、最後のp+1個の値v
jが等しい。
【0054】
5.(n+1)(m+1)個の重みω
ijのグリッド>0、ただしi∈{0,...,n}かつj∈{0,...,m}。
【0055】
これらの入力により、2つのB−スプライン基底が定義され、それぞれ以下のように表される。
【0057】
、ただしi∈{0,...,n}、および
【0059】
、ただしj∈{0,...,m}。基底B−スプライン関数NP
ipおよびNP
ipは、それぞれ次数pおよびqの区分的多項式である。それらの詳細な定義は本発明では有用ではない。
【0061】
が、以下の有理パラメタリゼーションにより定義される。
【0065】
が、以下の公式に関与する、次数p、n+1個の制御点P
iおよび重みω
iのリスト、により定義される。
【0067】
実際には、数学的観点から、NURBS曲面は、2本のNURBS曲線のテンソル積である。明確にするために、方法を、主として(以下の図面では)NURBS曲線ではなくNURBS曲面を用いて説明する。
【0068】
ここで、グレヴィル点について簡単に検討する。
【0069】
グレヴィル横座標は、(u,v)パラメータの特定の値であり、(u
k*,v
l*)で表され、ただし、k∈{0,...,n}かつl∈{0,...,m}である。これらは、以下の公式により一意的に定義される。
【0071】
図5は、n+1=6個の制御点P
iおよびグレヴィル点G
iを用いたNURBS曲線を説明する図である。
【0072】
なお、所定の変換アルゴリズムは、NURBS構造を局所的に修正または削除する改良(例えば、隠れた処理)を(場合によっては、ベースメッシュの局所的な特異性、またはベースメッシュに加えられた仕様に従って)、備えてもよい。これには、例えば、米国特許第7952575B2号に記載の部分的なスムージング、または、米国特許出願第2013293541A1号に記載のキャラクタラインの定義、が含まれる。それでもなお、曲面は、結局は(その面積のうちの100%ではなくとも、少なくとも90%について)NURBSを基礎とする。なお、方法では本方法自体が、かかる改良を形成する。また、かかる改良と当該方法に関与する局所変更仕様との間の同時作用は、いかなるやり方で取り扱われてもよく、実施の詳細の1つに過ぎない。また、方法の実施はいかなるやり方で実行されてもよく、改良間の順番および全処理の順序は、関係ない。このことは、S30で判定されるNURBS曲面が、所与の処理を実行することに「対応する」と言えるという事実により包含される。S30で判定されるNURBSは、従って、そのようなさらなる改良処理を受けさせてもよく、また、なおも、S30で行う主となる処理に対応するものとすることができる。しかし、一例において、ベースメッシュには、追加の仕様(S20のそれではなく)が与えられず、すなわち、ベースメッシュは「未加工(raw)」である。別の例において、同時作用の改良が、曲面全体に、その面積の10%未満、または、その面積の5%未満程度について影響を与えるため、S30で判定された結果と、説明した処理との間で、補完領域に関して、完全な一致が存在する。
【0073】
定義ステップS10は、ユーザにより実行される。この結果、曲面の記述と点の個数との間の良好なトレードオフが達成されたベースメッシュが得られる。これは、単なる細分割とは異なる。S10で定義されるベースメッシュは、別のメッシュの単なる細分割から(例えば、関連する細分割スキームに従って)生じたメッシュとは異なることがある。かかる細分割が、設計プロセス時にユーザによりなされた場合、細分割の結果得られる少なくとも1個の頂点は、手動で移動させてもよい(すなわち、位置を直接-例えば、グラフィック的に、ユーザが指定するドラッグアンドドロップによって)。全体として、ゼロから始めて、定義ステップS10が備える細分割の数は、5に届かない、または2に届かない。かかる細分割により、詳細の定義、ひいては複雑な設計が可能とされるが、ベースメッシュは、ユーザにより設計されるメッシュであるため、複雑過ぎることはなく(相対的に言って)、また、上記で説明したカテゴリの変換アルゴリズムとの変換が比較的早く、妥当な個数のNURBS制御点を導く。例えば、3Dモデル化オブジェクトの全長L(例えば、3Dモデル化オブジェクトを囲む最少の平行六面体境界ボックスの最大の長さ)を考えると、S10でユーザによって定義されたベースメッシュのエッジの平均−3Dモデル化オブジェクトを表現するための−は、Lの1%of、Lの5%、または、せいぜいLの10%より大きいかもしれない。これらの特徴は、方法の最後で保持され、ユーザの意図が確保される。
【0074】
ここで、定義ステップS20について検討する。
【0075】
再度、この定義ステップS20がユーザにより実行される。この時点でユーザにより入力されるデータは、3Dモデル化オブジェクトの追加の仕様としてモデル内に保持されてもよく、従って、これはベースメッシュ(細分割アルゴリズム/曲面と、上記のようにPCCM()で表される所定の演算子とに対して関連付けられ、これらはシステムに対して予め定められる)により、および、2D画像と、2D画像を細分割曲面上にエングレーブするための場所とにより、少なくとも定義される。定義ステップS20は、よって、特徴ベースのCADシステムにおける特徴の設定、および/または、履歴設計操作,すなわち、履歴ベースのCADシステムの履歴ツリー内のノード、の設定に対応し、このようなシステムそれ自体は既知ものである。2D画像は任意のタイプの画像である。写真(例えば、RGBまたはグレースケール)、または、ユーザ−同一のユーザまたは別のユーザ−により描かれた2Dピクチャ(例えば、同じくRGBまたはグレースケール)であってもよい。典型的には、2Dは、最終的に設計されるおよび/または製造するオブジェクト上にエングレーブされる、例えばロゴなどの、局所の詳細を表現する。方法が目指すものは、「エングレービング」設計操作を行うことであり、これは、判定ステップS30の結果によりそれ自体は定義され、2Dビューに含まれる設計の実世界のエングレービングを細分割曲面上に視覚的に表現する(判定ステップS30で出力される曲面を表示するときに)。しかし、これはシステム内部のことであり、S30を実施するべく予め定められている(例えば、ユーザによる要求/ユーザによるトリガの際)。ユーザは、2D画像を貼り付けるべき場所を指定するだけである。ユーザは、かかる場所を任意のやり方で細分割曲面上に指定することができ、例えば、2D画像と細分割曲面との間の単なる同一構造リンクを介して行ってもよい。
【0076】
例えば、ベースメッシュは細分割曲面と関連付けられており、かつ、システムはその近似を計算するべく構成されており(演算子PCCM()により)、方法は、上記の細分割曲面(の近似)を表示するステップを含んでもよい。ユーザは次に、場所をグラフィック的に定義する。例えば、ユーザは、2D画像の3D表現を、細分割曲面上の(隣接して)いかなる場所にも位置決めすることができ(ベースメッシュは3Dであり、2D画像を、3Dベースメッシュを含む3Dワークスペース内に移動させてもよい)、2D画像のサイズは、自由自在に潜在的に増大または縮小させることができ、システムは、所定の投影(曲面上への2D画像の投影、または、2D画像上への曲面の投影)を行うことができる。ユーザは、2D画像の向きを指定することもできる。ユーザは、投影を指定することもできる。かかる位置決め(これは、細分割曲面の表現に対して2D画像を投影/突き刺し/貼り付けを行うということになる)を実行する、いずれのユーザフレンドリなグラフィカルなやり方も、方法によって実施することができる。
【0077】
S20でユーザにより与えられる場所は、いかなる場合でも、システムにより細分割曲面上の場所として解釈され、従って、ベースメッシュまたはNURBSパッチの下層の面に衝突する。システムは、ベースメッシュおよび/またはNURBSパッチの面を、その場所に対して関連付けることができる。実際、所定の変換アルゴリズムでは、ベースメッシュの面を、結果として得られるNURBSパッチに対して関連付ける。従って、ユーザが3D画像を細分割曲面上に配置する際、ユーザは実際にはそれをNURBSパッチのサブセット上に、そして、ベースメッシュの面の対応するサブセット上に、配置する。この関連付け/衝突の修復はいかなるやり方で実施されてもよい。方法は、全体的な形状を確保しつつ、細部を細分割曲面に追加するためのものであってもよい。まず、曲面のトポロジが確保される。また、最初の細分割曲面の75%以上(すなわち、ベースメッシュを単に変換した結果)、または90%以上は、未修正のままであってもよく、2D画像のサイズ(例えば、見込まれる拡張の後の)はそれに適合される。
【0078】
ここで、判定ステップS30について検討する。
【0079】
方法では、所定のメッシュ−NURBS曲面間の変換アルゴリズム(すなわち、PCCM()演算子)により出力される局面とは異なる、NURBS曲面を判定し、これは、「未加工(raw)結果」または「未加工(raw)NURBS/曲面」と呼ぶことができる。S30で判定されたNURBSは、実際は、メッシュ−NURBS曲面間の変換アルゴリズムをベースメッシュに対して実行した結果に、変形写像を適用することに対応するステップである(必ずしも行うとは限らない)。従って、変形写像により(少なくとも概念的に)、「未加工結果」を修正し、曲面を2D画像を用いてエングレーブする。そのために、変形写像には、定義により、上記の未加工結果の位置について与えられる変位ベクトルと、あらゆる位置ではなく、2D画像をエングレーブするための場所に対応する位置と、が含まれる。また、変位ベクトルは、対応する2D画像の画素値に基づき正確に計算されるため、実際には、細分割曲面上にエングレーブされる2D画像である。なお、変位ベクトルはヌル(すなわち、変位無し)であってもよい。事実、適切な場合には(特に、エングレービングに関係しない場所において)変位ベクトルがヌルである限り、変形写像は、2D画像をエングレーブするための場所より広い領域(ドメイン)、例えば全曲面、について定義されてもよい。これは、単なる実施の事項である。要するに、変形写像は、細分割曲面の位置(ひいては、下層にあるNURBSパッチの位置、例えばその制御点など、および/または、ベースメッシュの面の位置)の3D運動を指定する機能であり、方法は、上記の位置と2D画像の画素との間の(例えば、保持される画素が所与の基準に依存する)所定の関連付け(またはその計算、すなわち、値が予め定められるか、またはその計算のやり方が予め定められ、かつ、いずれのさらなるユーザ入力にも依存しない)を実施し、かつ、方法は、関連付けられた画素に基づく、3D運動の値の所定の計算をさらに実施する。なお、3D運動の方向(またはその計算、すなわち、値が予め定められるか、またはその計算のやり方が予め定められ、かつ、2D画像または任意のさらなるユーザ入力は依存しないが、例えば、ベースメッシュだけには依存する)は、予め定められてもよい。
【0080】
変位ベクトルは、エングレーブする特徴を形成する機能を用いた2D画像に基づく限り、任意のやり方で計算される。画像の画素値は、細分割曲面の位置に写像され(定義するステップS20により)、ひいては、考慮されるNURBS曲面の位置に写像される。一例において、方法により意図される画素値は、画素のグレースケール値である。換言すると、2D画像の画素に対して関連付けられるグレースケール値が、判定されて、変位ベクトルの計算に使用される。2D画像は、グレースケールで与えられてもよく、その場合、グレースケール値を、そのまま画素の値とすることができる。2D画像はまた、RGBで与えられてもよく、その場合、方法では、任意の所定のRGB−グレースケール変換アルゴリズムを使用してもよい。双方の場合とも、方法は、任意のさらなる処理を保持される画素に対して実施することができる。
【0081】
一例において、変位ベクトルの振幅(または大きさ)は、対応するグレースケール値に増加的に依存する。換言すると、保持される画素値の(グレースケール)値が高いほど、方法が、未加工曲面(の振幅)をより修正する。任意の増加関数が実施されてもよい。一例において、関数は、単に指数関数である(画素の値が所定の閾値を上回る場合は変位があり、それ以外は変位が無く、場合によっては、粗悪な遷移を防ぐために、「正の変位」値と「変位無し」の値との間が平滑化される)。別の例において、関数は、線形関数などの、より改良された関数である。
【0082】
また、ユーザはさらに、所定のバイナリリストから、エングレーブする方向を選択することができる。典型的には、ユーザは、先に説明したように、2D画像を曲面上に手動で投影/貼り付けし、そして次に、ユーザは、変位を投影の方向(すなわち、ユーザから曲面に向かう)にするのか、または、逆方向(すなわち、曲面からユーザに向う)にするのか、を選択することができる。あるいは、エングレーブする方向は、上記で説明したように予め定められていてもよい。これらは全て、システムの使い勝手の良さを高める、設定可能な特徴である。
【0083】
ここで、方法の特定の例について、
図6から19を参照して検討する。
【0084】
図6のフローチャートに示すように、本例において、方法はS30の実行を、実際は、S32にて変位ベクトル(および変形写像も)を計算すること、および、平行してS34にてメッシュ−NURBS曲面間の変換アルゴリズムを、B
0で表されるベースメッシュに対して実行することにより行い、次に本例の方法では、実際は、S36にて、変形写像
【0086】
をS34の結果(S
0=PCCM(B
0)で表される)に適用する。
【0087】
特に、計算ステップS32には、まず、2D画像をエングレーブするための場所に対応する第1の3Dメッシュ(B
4=R
n(B
1))を、B
0から判定するステップS320が含まれる。B
4で表される第1の3Dメッシュは、S20でのユーザの仕様に従って2D画像がエングレーブされるB
0の一部に対応する。これは、定義ステップS20により衝突を受けるB
0の全ての面(S20にて定義される場所に関連する近傍であって、任意の所定のやり方で判定されてもよい)に相当し得、その細分割であってもよい。なお、衝突を受けない面の細長い片が、選択的に保持されてもよい。
【0088】
計算ステップS32には、次に、B
4の頂点を、2D画像の対応する画素値に基づき、B
4に対して垂直の方向に変位させることにより、第2の3Dメッシュ(B
5(i)=B
4(i)+d
iN(i))を、B
4から判定するステップS322が含まれる。換言すると、方法は、エングレービングにより衝突を受けたベースメッシュの一部を考慮し、その位置を、エングレーブする画像の画素値に従って変位させる。変位の方向は、頂点におけるメッシュの法線方向として、所定のやり方で計算される(任意の法線方向の計算が実施されてもよい)。これは、上記の説明に従って行われてもよく、例えば、画素のグレースケール値により、変位の振幅が線形的/比例的/増加的に判定される(方向は法線方向であり、向きについてはユーザに向かう向きかまたは逆方向であるかが、ユーザ選択可能または予め定められている)。
【0089】
ここで、計算ステップS32には、S34の結果得られる位置に関して、メッシュ−NURBS曲面間の変換アルゴリズムをB
5に対して実行した結果(S
5=PCCM(B
5))の対応する制御点(C
i,j(S
5))と、メッシュ−NURBS曲面間の変換アルゴリズムをB
4に対して実行した結果(S
4=PCCM(B
4))の対応する制御点(C
i,j(S
4))と、の間の3D位置の差に等しい変位ベクトル(Δ(i,j)=C
i,j(S
5)−C
i,j(S
4))を計算するステップS324が含まれてもよい。ここで、S4およびS5は、実行を速く行うために計算されてもよい。しかし、任意の他の計算の実施が考慮されてもよい。
【0090】
図6に基づく特定の例は、ここで実行される特定の計算により、特に効率的に行われる。さらに、本例では、PCCMO()により出力される必要な連続性が、確実に保存される(少なくともC
0が達成される特異頂点の近傍を除く、あらゆる場所にC
2の連続性が確保される)。実際、本例によって実施される特定の代数計算により、本保存が、PCCM演算子の特徴との関連で、確保される。
【0091】
全体的なコンテキストを想起させる
図7に示すように、入力データは、細分割曲面のベースメッシュと、二次元画像である。この目的は、2D画像の詳細を、ベースメッシュにより定義される曲面上にエングレーブすることである。エングレービングの結果、局所的な変形が得られる。2D画像は、画像の詳細を曲面上のどこに配置するのかを定義するために、曲面に対して位置決めされる。出力データは、エングレーブされた画像を特徴づけるNURBS曲面である。エングレーブされた詳細部の外側では、最初の曲面の全体的な形状は無変更である。
【0093】
1.最初のベースメッシュB
0を使用することにより、入力された細分割曲面をNURBS曲面S
0に変換する。
【0094】
2.最初のベースメッシュB
0および2D画像を使用することにより、ベースメッシュの計算を実行する。これにより、NURBS曲面S
4およびS
5が与えられる。曲面S
4は、局所的に無変更の形状であり、曲面S
5は、局所的にエングレーブされた形状である。
【0095】
3.NURBS曲面S
4およびS
5から、制御点の偏差を計算する。
【0096】
4.これら制御点の偏差をNURBS曲面S
0に適用することにより、2D画像の詳細をエングレーブする。これにより、結果としてNURBS曲面S
1が与えられる。
【0097】
明らかに、方法では、両世界(細分割曲面設計およびNURBS設計)の最良の部分が確保され、これは、画像の詳細を、エングレーブされる領域の外側の形状を変更することなく、細分割曲面上にエングレーブすることができるということである。このことにより、設計が正確にとらえられる。
【0098】
本例の全プロセスは完全に自動であり、「エングレーブする」特徴として、履歴ベースのCADシステムのデータ構造内に格納することができる。入力は、細分割曲面および画像であり、出力はエングレーブされたNURBS曲面である。エングレーブ操作が実行された後、細分割曲面をエディットすることができ、または、画像の定義を同じく変更することができる。結果として得られた曲面の修正済みバージョンは、エングレーブする特徴を再生することにより取得される。これにより、簡単かつ速い設計の変更が可能となる。
【0099】
結果として得られる曲面がNURBS曲面であるにもかかわらず、ユーザの観点からは、その機能性は細分割曲面の機能性である。何故なら、エディットが、入力された細分割曲面に対して実行されるからである。結果として得られる曲面のNURBS的側面は、エディット能力を制約しない結果を取り扱うやり方である。
【0100】
ここで、本例について、さらなる実施の詳細を用いて検討する。
【0101】
入力データおよび演算子の詳細は以下の通りである。ベースメッシュB
0によって定義される細分割曲面は、NURBS曲面S
0により近似される。
図8は、花瓶を表現する3Dモデル化オブジェクトのベースメッシュB
0を説明する図である。
図9は、NURBS曲面S
0(最終ユーザ、例えば顧客、に対して表示されるものである)を説明する図である。
【0102】
画像を含む平面をPで表し、その仕様が、方法により連続的に判定(例えば、更新)される。該平面は、点X0と、2本の直交する法線ベクトルU、Vにより定義される。平面内の任意の点を、X
0+uU+vVと表すことができ、ただし
【0104】
である。
平面Pの位置が、画像を曲面S
0上のどこにエングレーブするのかを定義する。変形写像
【0106】
が、平面PのU、Vベクトルに従って定義される。各画像の点に関連付けられたグレーレベルが取得され、d(u,v)=0は、点(u,v)には画像の詳細が無いことを意味する。画像は、矩形I=[u
min,u
max]×[v
min,v
max]内に含まれ、この矩形の外側ではd(u,v)=0である。
図10は、平面P上の矩形Iと、曲面S
0に対するその位置決めを説明する図である。関数dは増加関数であってもよく、これは、当業者にとっては実施の詳細である。
【0109】
により定義される3D空間から平面Pへの平坦化操作を実施する。写像Qが線形であるか否かは関係ない。3D空間から平面Pへの正射影は、
【0114】
メッシュM
iをより上質なメッシュM
i+1に改良するメッシュ改良を、Rで表すと、M
i+1=R(M
i)となる。典型的には、演算子Rは、Catmull−Clark細分割ステップである。NURBS曲面Sの制御点Pi,jを、Pi,j=Ci,j(S)で表す。
【0115】
ここで、ベースメッシュ計算の主な段階について検討する。
図11の図は、全プロセスを説明する図であり、
図7の図の「ベースメッシュ計算」ブロックの詳細を形成する。
【0116】
最初のステップは、画像がエングレーブされるB
0の面を識別することである。
図12で説明されるように、B
1を、B
0から抽出されたベースメッシュとする。
【0117】
このメッシュは、B
2=Q(B
1)演算を介して平面P内に平坦化され、
図13で説明されるように、同一のトポロジを特徴とする平坦メッシュB
2が与えられる。
【0118】
ここで、第1の3Dメッシュ(B
4)を判定するステップS320には、2D画像をエングレーブするための場所に対応するベースメッシュのサブメッシュB
1を抽出するステップが含まれるだけでなく、次に、先に説明したように、サブメッシュB
1を所定回数のn回細分割するステップが含まれてもよい。これにより、2D画像の詳細に対する適合、および、さらに改良されたエングレービングが可能となる。
【0119】
所定回数nは、ユーザにより(対話的に)定義されてもよい。しかし、2D画像の詳細のレベルに対して関連付けられた所定の基準に増加的に依存するものとしてもよい。後者の場合、nの判定は、所定の基準を評価することにより完全に自動的に行うことができる。
【0120】
かかる自動的動作の一例を、以下に示す。
【0121】
メッシュB
2は、メッシュサイズが画像の詳細と合致するまで細分割される。これにより、
図14で説明するように、メッシュB
3=R
n(B
2)が与えられ、ここで、整数nは細分割の数である。次に、
図15で説明するように、同一の細分割プロセスB
3=R
n(B
2)が非平面ベースメッシュB
1に適用され、すなわち、B
4=R
n(B
1)。メッシュB
4およびB
3は、同じトポロジを有する。メッシュB
3は平面であり、メッシュB
4は非平面である。
【0122】
細分割レベルnは、特にその非ヌル変形領域において、入力画像を表現するための十分な個数の細分割点を確保することにより見積もられる。
【0123】
−B
2から、2個の近傍細分割点の間の平均長を見積もることは簡単である。
【0124】
−入力画像から、浸食様のアルゴリズムにより、画像空間内の非ヌル変形領域全体の平均厚さを計算することができる(The Scientist and Engineer’s Guide to Digital Signal Processing,Steven W.Smith参照)。
【0127】
が1より大きくなるように(例えば、これを確保する最少整数値として)、最初に選択されてもよい。この基準は、ユーザにとって良好な指標となる。
【0128】
各整数iについて、X
i=(x
i,y
i,z
i)を、平面メッシュB
3のi番目の点B
3(i)の3D座標とする。平面Pの局所的な2D軸システムにおいて、この点の2D座標は(ui,vi)であり、ただし、u
i=(X
i−X
0,U)Uかつv
i=(X
i−X
0,V)Vである。d
i=d(u
i,v
i)を、平面Pの点(u
i,v
i)における変形写像値とする。
【0129】
ここで、メッシュB
4が、同一のトポロジを特徴とする別のメッシュB
5に変更され、以下のように修正される。各整数iについて、N(i)を、B4(
i)の近傍点を使用することにより、メッシュR
n-1(B
1)に対して計算される法線ベクトルとする。ベクトルN(i)は、レベルn-1で各細分割セル周辺の法線を平均化することにより計算される。そして、メッシュB
5のi番目の点が、B
5(i)=B
4(i)+d
iN(i)により定義される。これは、
図16により説明される。
【0130】
これまでのところ、全ての計算がメッシュに対して行われる。ここで、情報を制御点の観点で転換する段階となるが、最終的にNURBS曲面が出力されるからである。S
4を、メッシュB
4により定義される細分割曲面を近似するNURBS曲面とし、すなわち、
図17に示すように、S
4=PCCM(B
4)となる。同様に、S
5を、メッシュB
5により定義される細分割曲面を近似するNURBS曲面とし、すなわち、
図18に示すように、S
5=PCCM(B
5)となる。
【0131】
S
5が、結果として得られる曲面の局所的形状ではないことは、理解されるべきである。S
5の境界は、最初の曲面S
0とは一致しない。
【0132】
S
0に対する変形を報告するために、新しい関数ΔがS
4およびS
5から計算される。
【0133】
構造としては、
−S4からのNURBSパッチ(S5に相当)が、少なくともC
0である(PCCM(・)の定義から)特異頂点の近傍を除き、お互いの間でC
2である。
【0134】
−変形領域の各ベースメッシュ面を、2個のNURBSパッチ(1個はS
4にあり、1個はS
5にある)に連結することができる。しかし、これら2個のパッチは、概して同一の節点ベクトルを持つのではなく、Δを定義する前は、ベクトルが、節点の挿入または次数の上昇を行うことにより、2個1組のどのパッチについても均質化されていてもよい(「The NURBS Book」、L.Piegl and T.Wayne、Springer、2nd edition、2013参照)。
【0137】
は、S
5およびS
4の制御点の差Δ(i,j)=Ci,j(S
5)−Ci,j(S
4)により定義される。この変形写像は、変形領域のパッチのサブセット上のS
0のみに対して適用される。ここで再度、これらのパッチの節点ベクトルは、概してΔのそれとは合致せず、そのため、やはり均質化されなければならない。
【0138】
一旦行うと、最初の曲面S
0の変形は、偏差Δ(i,j)を、関与するNURBS曲面の制御点に適用することによって得られ、これにより、出力曲面S
1が得られる。S
1の幾何学的連続性は、Δを適用することにより保存される。Φが、Δの制御点およびS
0の均質化された節点ベクトルから計算される形状を表すなら、Φのパッチは、少なくともC
0である特異頂点の近傍を除き、お互いの間でC
2である。従って、S
1は、線形結合:S
1=S
0+S
5−S
4と表すことができ、S
0、S
4およびS
5は同一のパラメタリゼーションを持ち(これらのパッチは、同じ節点ベクトルを共有する)、これらはほとんとどの場所でもC
2であり、従ってS
1である。説明したように、方法では、適切な上述の均質化(広く既知であるように、かつ、「The NURBS Book」,L.Piegl and T.Wayne、Springer、2nd edition、2013、に説明されるように)を、必要な場合はどこにでも実施することができる。
【0140】
図20から26は、実際の場合における方法の応用を示す。
【0141】
図20はさまざまなテクスチャを示し、
図21は、かかるテクスチャを、平行六面体の3Dモデル化オブジェクト(
図21のモードでは、ユーザに対して表示されない下層にあるベースメッシュによってモデル化され、この場合は非常に単純なものであってよい)の面に、本方法により適用した結果を示す。図から分かるように、方法を使用して、テクスチャを平面上に、浮き彫り状にエングレーブすることができる。
図22は、その前面がエングレーブされて描かれるヘアドライヤーを示す。
図24は、
図23に示されるパターンを平面と、かみそりのスティックとにエングレーブした結果を示す。
図25は、完全に設計されたかみそりに、上記のパターンがエングレーブされたものを示す。
図26は、方法を用いて、ロゴ260およびパターン/浮彫262を、3Dモデル化オブジェクト264にエングレーブした結果を示す(オブジェクト264も、同じく、
図21のモードではユーザに対して表示されない、下層にあるベースメッシュによってモデル化された)。