(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-21
(54)【発明の名称】ベベル形状のためにストレートスケルトンからメッシュジオメトリを抽出するためのシステムおよび方法
(51)【国際特許分類】
G06T 17/00 20060101AFI20230913BHJP
【FI】
G06T17/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023514953
(86)(22)【出願日】2021-08-19
(85)【翻訳文提出日】2023-04-28
(86)【国際出願番号】 US2021046701
(87)【国際公開番号】W WO2022051099
(87)【国際公開日】2022-03-10
(32)【優先日】2020-09-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523075316
【氏名又は名称】マクソン コンピューター ゲゼルシャフト ミット ベシュレンクテル ハフツング
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(74)【代理人】
【識別番号】100176418
【氏名又は名称】工藤 嘉晃
(72)【発明者】
【氏名】ケムラー フリッツ
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA14
5B080AA15
5B080AA19
5B080DA06
(57)【要約】
モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリ抽出のためのシステムおよび方法が開示される。1つの方法は、原形形状輪郭を受け取ることと、原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することとを含む。次に、ストレートスケルトングラフに基づいて原形形状輪郭の1つまたは複数の逆オフセット輪郭が判定されてもよい。方法は、ストレートスケルトングラフと、原形形状輪郭と、1つまたは複数の逆オフセット輪郭との和集合に基づいて、1つまたは複数のポリゴンを判定することをさらに含み得る。1つまたは複数のポリゴンは、1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含み得る。1つまたは複数のポリゴンに基づいて原形形状輪郭のベベル形状が生成され得る。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリ抽出のコンピュータ実装方法であって、
原形形状輪郭を受け取ることと、
前記原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、
前記ストレートスケルトングラフに基づいて前記原形形状輪郭の1つまたは複数の逆オフセット輪郭を判定することと、
前記ストレートスケルトングラフと、前記原形形状輪郭と、前記1つまたは複数の逆オフセット輪郭との和集合に基づいて1つまたは複数のポリゴンを判定することであって、前記1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、1つまたは複数のポリゴンを判定することと、
前記1つまたは複数のポリゴンに基づいて前記原形形状輪郭のベベル形状を生成することとを含む、コンピュータ実装方法。
【請求項2】
1つまたは複数のポリゴンを判定することが、
前記複数のエッジのそれぞれのエッジの端部における複数のグラフノードを判定することであって、前記複数のグラフノードが前記1つまたは複数のグラフポリゴンを画定し、1つまたは複数の輪郭ノードと1つまたは複数の内部ノードとを含む、複数のグラフノードを判定することと、
前記複数のエッジと前記1つまたは複数の逆オフセット輪郭との交点における複数の細分ノードを判定することであって、前記複数の細分ノードと前記複数のグラフノードとが前記1つまたは複数のサブポリゴンを画定する、細分ノードを判定することとを含む、請求項1に記載の方法。
【請求項3】
複数のグラフノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記原形形状輪郭上の第1の輪郭ノードを判定することと、
前記第1の輪郭ノードに接続されたエッジを判定することと、
内部ノードを判定するために前記エッジをたどることと、
前記内部ノードに接続された次のエッジを判定することと、
次の内部ノードを判定するために前記エッジをたどることと、
第2の輪郭ノードに達するまで、前記たどることをすべての次の内部ノードについて繰り返すことと、
前記ポリゴンに関連付けられたノードリストに、前記第1の輪郭ノードと、1つまたは複数の内部ノードと、前記第2の輪郭ノードとを記憶することとを含む、請求項2に記載の方法。
【請求項4】
前記次のエッジが、反時計回りの順序で前のエッジの次である、請求項3に記載の方法。
【請求項5】
複数の細分ノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記グラフポリゴン内の各エッジの始点ノードと終点ノードとを判定することと、
前記始点ノードおよび前記終点ノードに関連付けられたオフセットを、前記1つまたは複数の逆オフセット輪郭に関連付けられた1組の1つまたは複数のオフセットと比較することと、
前記比較に基づいて、前記始点ノードと前記終点ノードとの間の前記エッジ上の1つまたは複数の細分ノードを判定することと、
前記グラフポリゴンに関連付けられたノードリストに、前記グラフポリゴン内の各エッジについて判定された前記1つまたは複数の細分ノードを記憶することとを含む、請求項2に記載の方法。
【請求項6】
第1のスタックエントリをアクティブスタックエントリとして指定することと、
前記アクティブスタックエントリにノードを加えることと、
前記ノードが前記複数の細分ノードのうちの細分ノードであると判定すると、
次のノードが前記ノードのオフセットより高いオフセットまたは低いオフセットに関連付けられているかを判定することと、
前記次のノードがより低いオフセットに関連付けられていると判定すると、前記第1のスタックエントリよりも低い第2のスタックエントリを前記アクティブスタックエントリとして指定し、前記第2のスタックエントリに前記細分ノードを割り当てること、または、
前記次のノードがより高いオフセットに関連付けられていると判定すると、前記第1のスタックエントリより高い第3のスタックエントリを前記アクティブスタックエントリとして指定し、前記第3のスタックエントリに前記細分ノードを割り当てることとをさらに含む、請求項2に記載の方法。
【請求項7】
前記1つまたは複数のポリゴンが、1つまたは複数の四角形、1つまたは複数の三角形、および/または4本より多い線分を有する1つまたは複数のポリゴンを含む、請求項1に記載の方法。
【請求項8】
モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリ抽出のためのシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに動作を実行させる命令を記憶する少なくとも1つの非一時的なコンピュータ可読媒体とを含み、前記動作が、
原形形状輪郭を受け取ることと、
前記原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、
前記ストレートスケルトングラフに基づいて前記原形形状輪郭の1つまたは複数の逆オフセット輪郭を判定することと、
前記ストレートスケルトングラフと、前記原形形状輪郭と、前記1つまたは複数の逆オフセット輪郭との和集合に基づいて1つまたは複数のポリゴンを判定することであって、前記1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、1つまたは複数のポリゴンを判定することと、
前記1つまたは複数のポリゴンに基づいて前記原形形状輪郭のベベル形状を生成することとを含む、システム。
【請求項9】
1つまたは複数のポリゴンを判定することが、
前記複数のエッジのそれぞれのエッジの端部における複数のグラフノードを判定することであって、前記複数のグラフノードが前記1つまたは複数のグラフポリゴンを画定し、1つまたは複数の輪郭ノードと1つまたは複数の内部ノードとを含む、複数のグラフノードを判定することと、
前記複数のエッジと前記1つまたは複数の逆オフセット輪郭との交点における複数の細分ノードを判定することであって、前記複数の細分ノードと前記複数のグラフノードとが前記1つまたは複数のサブポリゴンを画定する、細分ノードを判定することとを含む、請求項8に記載のシステム。
【請求項10】
複数のグラフノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記原形形状輪郭上の第1の輪郭ノードを判定することと、
前記第1の輪郭ノードに接続されたエッジを判定することと、
内部ノードを判定するために前記エッジをたどることと、
前記内部ノードに接続された次のエッジを判定することと、
次の内部ノードを判定するために前記エッジをたどることと、
第2の輪郭ノードに達するまで、前記たどることをすべての次の内部ノードについて繰り返すことと、
前記ポリゴンに関連付けられたノードリストに、前記第1の輪郭ノードと、1つまたは複数の内部ノードと、前記第2の輪郭ノードとを記憶することとを含む、請求項9に記載のシステム。
【請求項11】
前記次のエッジが、反時計回りの順序で前のエッジの次である、請求項10に記載のシステム。
【請求項12】
複数の細分ノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記グラフポリゴン内の各エッジの始点ノードと終点ノードとを判定することと、
前記始点ノードおよび前記終点ノードに関連付けられたオフセットを、前記1つまたは複数の逆オフセット輪郭に関連付けられた1組の1つまたは複数のオフセットと比較することと、
前記比較に基づいて、前記始点ノードと前記終点ノードとの間の前記エッジ上の1つまたは複数の細分ノードを判定することと、
前記グラフポリゴンに関連付けられたノードリストに、前記グラフポリゴン内の各エッジについて判定された前記1つまたは複数の細分ノードを記憶することとを含む、請求項9に記載のシステム。
【請求項13】
前記動作が、
第1のスタックエントリをアクティブスタックエントリとして指定することと、
前記アクティブスタックエントリにノードを加えることと、
前記ノードが前記複数の細分ノードのうちの細分ノードであると判定すると、
次のノードが前記ノードのオフセットより高いオフセットまたは低いオフセットに関連付けられているかを判定することと、
前記次のノードがより低いオフセットに関連付けられていると判定すると、前記第1のスタックエントリよりも低い第2のスタックエントリを前記アクティブスタックエントリとして指定し、前記第2のスタックエントリに前記細分ノードを割り当てること、または、
前記次のノードがより高いオフセットに関連付けられていると判定すると、前記第1のスタックエントリより高い第3のスタックエントリを前記アクティブスタックエントリとして指定し、前記第3のスタックエントリに前記細分ノードを割り当てることとをさらに含む、請求項9に記載のシステム。
【請求項14】
前記1つまたは複数のポリゴンが、1つまたは複数の四角形、1つまたは複数の三角形、および/または4本より多い線分を有する1つまたは複数のポリゴンを含む、請求項8に記載のシステム。
【請求項15】
モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリのための少なくとも1つの非一時的なコンピュータ可読媒体であって、1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに動作を行わせる命令を記憶し、前記動作が、
原形形状輪郭を受け取ることと、
前記原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、
前記ストレートスケルトングラフに基づいて前記原形形状輪郭の1つまたは複数の逆オフセット輪郭を判定することと、
前記ストレートスケルトングラフと、前記原形形状輪郭と、前記1つまたは複数の逆オフセット輪郭との和集合に基づいて1つまたは複数のポリゴンを判定することであって、前記1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、1つまたは複数のポリゴンを判定することと、
前記1つまたは複数のポリゴンに基づいて前記原形形状輪郭のベベル形状を生成することとを含む、少なくとも1つの非一時的なコンピュータ可読媒体。
【請求項16】
1つまたは複数のポリゴンを判定することが、
前記複数のエッジのそれぞれのエッジの端部における複数のグラフノードを判定することであって、前記複数のグラフノードが前記1つまたは複数のグラフポリゴンを画定し、1つまたは複数の輪郭ノードと1つまたは複数の内部ノードとを含む、複数のグラフノードを判定することと、
前記複数のエッジと前記1つまたは複数の逆オフセット輪郭との交点における複数の細分ノードを判定することであって、前記複数の細分ノードと前記複数のグラフノードとが前記1つまたは複数のサブポリゴンを画定する、細分ノードを判定することとを含む、請求項15に記載の少なくとも1つの非一時的なコンピュータ可読媒体。
【請求項17】
複数のグラフノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記原形形状輪郭上の第1の輪郭ノードを判定することと、
前記第1の輪郭ノードに接続されたエッジを判定することと、
内部ノードを判定するために前記エッジをたどることと、
前記内部ノードに接続された次のエッジを判定することと、
次の内部ノードを判定するために前記エッジをたどることと、
第2の輪郭ノードに達するまで、前記たどることをすべての次の内部ノードについて繰り返すことと、
前記ポリゴンに関連付けられたノードリストに、前記第1の輪郭ノードと、1つまたは複数の内部ノードと、前記第2の輪郭ノードとを記憶することとを含む、請求項16に記載の少なくとも1つの非一時的なコンピュータ可読媒体。
【請求項18】
前記次のエッジが、反時計回りの順序で前のエッジの次である、請求項17に記載の少なくとも1つの非一時的なコンピュータ可読媒体。
【請求項19】
複数の細分ノードを判定することが、前記1つまたは複数のグラフポリゴンのそれぞれについて、
前記グラフポリゴン内の各エッジの始点ノードと終点ノードとを判定することと、
前記始点ノードおよび前記終点ノードに関連付けられたオフセットを、前記1つまたは複数の逆オフセット輪郭に関連付けられた1組の1つまたは複数のオフセットと比較することと、
前記比較に基づいて、前記始点ノードと前記終点ノードとの間の前記エッジ上の1つまたは複数の細分ノードを判定することと、
前記グラフポリゴンに関連付けられたノードリストに、前記グラフポリゴン内の各エッジについて判定された前記1つまたは複数の細分ノードを記憶することとを含む、請求項16に記載の少なくとも1つの非一時的なコンピュータ可読媒体。
【請求項20】
前記動作が、
第1のスタックエントリをアクティブスタックエントリとして指定することと、
前記アクティブスタックエントリにノードを加えることと、
前記ノードが前記複数の細分ノードのうちの細分ノードであると判定すると、
次のノードが前記ノードのオフセットより高いオフセットまたは低いオフセットに関連付けられているかを判定することと、
前記次のノードがより低いオフセットに関連付けられていると判定すると、前記第1のスタックエントリよりも低い第2のスタックエントリを前記アクティブスタックエントリとして指定し、前記第2のスタックエントリに前記細分ノードを割り当てること、または、
前記次のノードがより高いオフセットに関連付けられていると判定すると、前記第1のスタックエントリより高い第3のスタックエントリを前記アクティブスタックエントリとして指定し、前記第3のスタックエントリに前記細分ノードを割り当てることとをさらに含む、請求項16に記載の少なくとも1つの非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、3次元ベベル形状のためのメッシュジオメトリを作成するシステムおよび方法に関する。より具体的には、本開示は、オブジェクトの輪郭形状のストレートスケルトングラフに基づいてポリゴンメッシュジオメトリを作成するためのシステムおよび方法に関する。
【背景技術】
【0002】
3次元(3D)モデリングアプリケーションにおいて3Dオブジェクトを画定する一般的な技術の1つは、2つの2次元(2D)輪郭を押し出すことである。この技術は、3Dテキストを作成するため、または様々な図形要素に深度を与えるために行われることが多い。具体的には、任意のアルゴリズムによって形状をサンプリングし、それを離散化する。これにより、直線線分によって各点が次の点に接続された1組の点が作成される。これらの線分がそれぞれ、1つの四角形を構築し、その押出しにおいて線分は4つのエッジのうちの1つを表す。他の3つのエッジは、押出し方向の離散化形状の複製と、対応する複製された線分とによって各線の始点と終点を接続することによって作成される。作成されたジオメトリは、「キャップ」と呼ばれる輪郭の内側に形成されたサーフェスと、「ハル」と呼ばれる輪郭の押出しを構築するサーフェスという、明確に異なる部分において画定され得る。
【0003】
作成された3D形状の外観をよりよくするためと、現実世界の形状を模倣するために、キャップとハルとの間の境界エッジをベベルすることができ、これは面取りとも呼ばれる。最新の画像合成技術と組み合わせると、これらのベベルエッジは仮想カメラに対して光を反射し、これは視覚的忠実度を向上させるが、それは現実世界の物体は完ぺきなエッジを有することはまれであり、したがって現実世界の光も同様に反射するためである。
【0004】
ベベル形状を構成する部分のために必要なメッシュジオメトリを作成することは、押し出されたジオメトリの作成され方ときわめて類似している。このベベル作成は、たとえば、以下の操作によって行うことができる。すなわち、輪郭を複製し、ベベルの大きさが必要とする程度まで原形輪郭の内側を向く方向に輪郭を局所的に縮小し(このプロセスは逆オフセットと呼ばれ、逆オフセットの結果として形成されたオフセットは逆オフセット輪郭と呼ばれる)、押出しに関して説明したように原形輪郭線分を縮小された島(すなわち逆オフセット輪郭)と接続する。たとえばサブステップのすべてを円弧状に配置することによって丸みのあるベベル形状を可能にするように逆オフセットの方向にジオメトリの追加のリングを作成するために、これらの操作を複数回適用することができる。
【0005】
ここで示した背景技術の説明は、本開示の文脈を概略的に示すことを目的としている。本明細書で別に明記されていない限り、本項で説明されている題材は、本出願における特許請求の範囲の先行技術ではなく、または本項に含めることにより先行技術であるかまたは先行技術の示唆であるとはみなされない。
【発明の概要】
【0006】
一実施形態は、モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリ抽出のためのコンピュータ実装方法を提供する。方法は、原形形状輪郭を受け取ることと、原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、ストレートスケルトングラフに基づいて原形形状輪郭の1つまたは複数の逆オフセット輪郭を判定することと、ストレートスケルトングラフと原形形状輪郭と1つまたは複数のオフセットとの和集合に基づいて1つまたは複数のポリゴンを判定することであって、1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、ポリゴンを判定することと、1つまたは複数のポリゴンに基づいて原形形状輪郭のベベル形状を生成することとを含む。
【0007】
別の実施形態は、モデリングアプリケーションにおけるベベル操作のためのポリゴンメッシュジオメトリ抽出のためのシステムを提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに動作を行わせる命令を記憶する少なくとも1つの非一時的なコンピュータ可読媒体とを含み、動作は、原形形状輪郭を受け取ることと、原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、ストレートスケルトングラフに基づいて原形形状輪郭の1つまたは複数の逆オフセット輪郭を判定することと、ストレートスケルトングラフと原形形状輪郭と1つまたは複数の逆オフセット輪郭との和集合に基づいて1つまたは複数のポリゴンを判定することであって、1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、ポリゴンを判定することと、1つまたは複数のポリゴンに基づいて原形形状輪郭のベベル形状を生成することとを含む。
【0008】
別の実施形態は、モデリングアプリケーションにけるベベル操作のためのポリゴンメッシュジオメトリ抽出のための、少なくとも1つの非一時的なコンピュータ可読媒体を提供する。少なくとも1つの非一時的なコンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに動作を行わせる命令を記憶し、動作は、原形形状輪郭を受け取ることと、原形形状輪郭のストレートスケルトングラフであって複数のエッジを含むストレートスケルトングラフを判定することと、ストレートスケルトングラフに基づいて原形形状の1つまたは複数の逆オフセット輪郭を判定することと、ストレートスケルトングラフと原形形状輪郭と1つまたは複数の逆オフセット輪郭との和集合に基づいて1つまたは複数のポリゴンを判定することであって、1つまたは複数のポリゴンが1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンとを含む、ポリゴンを判定することと、1つまたは複数のポリゴンに基づいて原形形状輪郭のベベル形状を生成することとを含む。
【0009】
本開示の実施形態の追加の目的および利点は、一部は以下の説明に記載され、一部は説明から明らかになるか、または本開示の実施形態の実施によってわかるであろう。本開示の実施形態の目的および利点は、添付の特許請求の範囲で具体的に示されている要素および組合せによって実現され、達成されるであろう。
【0010】
本明細書に組み込まれ、本明細書の一部をなす添付図面は、様々な例示の実施形態を示し、説明とともに、本開示の実施形態の原理を説明する助けとなる。
【図面の簡単な説明】
【0011】
【
図1A】例示のテキストの2D輪郭を示す図である。
【
図1B】例示のテキストのキャップを有する押出し輪郭を示す図である。
【
図2A】ベベルエッジのない例示のテキストの押出し輪郭を示す図である。
【
図2B】ベベルエッジのある例示のテキストの押出し輪郭を示す図である。
【
図3A】オブジェクトの例示の輪郭を示す図である。
【
図3B】
図3Aの例示の輪郭からの逆オフセットの作成を示す図である。
【
図3C】輪郭点が互いに離れる方向に移動させられる逆オフセットの作成を示す図である。
【
図3D】輪郭点を互いに離れる方向に移動させることにより、輪郭点を接続する線分の向きを反転させた、逆オフセットの作成を示す図である。
【
図3E】逆オフセットにおける線分の向きの反転の結果を示す図である。
【
図4A】オブジェクトの別の例示の輪郭と、その例示の輪郭のストレートスケルトングラフとを示す図である。
【
図4B】
図4Aのストレートスケルトングラフから抽出された逆オフセット輪郭を示す図である。
【
図5】本開示の一態様による、ジオメトリ生成システムの例示のシステムインフラストラクチャを示す図である。
【
図6】本開示のメッシュジオメトリ抽出方法を使用して、
図4Aの例示の輪郭から作成された円弧形状ベベルを示す図である。
【
図7】本開示の一態様による、1つまたは複数のポリゴンに基づく原形形状輪郭のベベル形状を生成する例示の方法を示すフローチャートである。
【
図8】逆オフセット輪郭を有する原形形状輪郭のストレートスケルトングラフを示す図である。
【
図9】本開示の一態様による、ストレートスケルトングラフからグラフポリゴンを抽出する例示の方法を示すフローチャートである。
【
図10】本開示の一態様による、抽出されたグラフポリゴンにおけるエッジを細分する例示の方法を示すフローチャートである。
【
図11】抽出されたポリゴンの細分ノードと輪郭ノードとを有するストレートスケルトン領域を示す図である。
【
図12】本開示の一態様による、抽出されたポリゴンに対応するノードを記憶する例示の方法を示すフローチャートである。
【
図13】逆オフセットスライスのサブポリゴンを示す図である。
【
図14】本明細書に記載の技術を実行可能なコンピュータシステムの一実装形態を示す図である。
【発明を実施するための形態】
【0012】
以下の実施形態では、3Dベベル形状のためのメッシュジオメトリを作成するための、より具体的には、重なりアーチファクトのない閉ポリゴンメッシュを作成するためのシステムおよび方法について説明する。
【0013】
3Dモデリングアプリケーションにおいて、ベベルジオメトリの生成時の逆オフセット操作は、輪郭点が互いに個別に移動させられるため、凸状領域において複雑な問題となる場合がある。これは、たとえば
図3A~
図3Eに示すように、輪郭点を接続する線分の向きを反転させる点までのオフセット距離が増大するにつれて、輪郭点を互いに近づくように移動させる場合がある。これは、点を自明に移動させることによって輪郭に逆オフセットを適用する場合に起こり得る複数のイベントの一例である。このような事例のそれぞれが、すべて多くの形状のベベルエッジの使用事例についてこの自明なアルゴリズムの有用性を低下させる異なる種類のアーチファクトを生じさせる。
【0014】
上記の問題を解決し得るアルゴリズムの一例は、ストレートスケルトングラフと呼ばれる、輪郭の「ストレートスケルトン」を計算する。ストレートスケルトングラフは、その元の位置までのオフセット距離が増大する各輪郭点の経路を含む。ストレートスケルトンは、どのオフセット距離においても重なりのない逆オフセットを抽出可能なデータ構造を提供するために、前述の問題を生じさせることになるすべてのイベントを検出し、解消する。
【0015】
ストレートスケルトングラフを使用する技術は、輪郭の逆オフセットが操作の最終出力である領域において輪郭の逆オフセットを作成するために適用することができる。ベベル形状のためのメッシュジオメトリ生成の従来の手法は、原形輪郭と逆オフセット輪郭とが同じ量の点および線分を有することを必要とし、それによって最終ジオメトリを作成するように輪郭線分を逆オフセット輪郭線分に接続しやすくするため、このような適用は別の問題も提起する可能性がある。ストレートスケルトングラフを使用するこの技術では、逆オフセット輪郭は異なる量の点を有することになり、および/または、重なりを生じさせることになる少なくとも1つのイベントがストレートスケルトンによって処理されたときにすぐに容易にマッチングを行うことができない。これらの重なりイベントはすべて、3本以上の線が接続されたストレートスケルトングラフの内部交差である。ストレートスケルトングラフに適用可能なオフセットジオメトリを抽出するための新たな手法が必要である。
【0016】
本開示で提案する技術の利点には、(1)ベベルオフセットサイズの大きさにかかわりなく、重なりアーチファクト(たとえば
図3A~3E)のない2D形状から作成された3Dベベル形状に使用されるメッシュジオメトリを作成する手法と、(2)整形プレーンに対して直角な制御可能細分部によるベベルの対話型編集および整形を可能にするジオメトリの効率的作成とを含む。
【0017】
本提案の技術の目的は、時計回りに順序付けられた2D点によって描かれた輪郭とその輪郭の内部ストレートスケルトングラフとから開始する、輪郭のストレートスケルトンと任意に画定されたオフセットを有する複数の逆オフセット輪郭との和集合であるエッジを有する四角形と三角形とから主としてなる閉ポリゴンメッシュを作成することである。その結果のポリゴンメッシュは、ポリゴンがインデックスのリストによって定義され、インデックスが2D位置のリストを参照するという構造を有する必要がある。出力メッシュの各点は個別とすることができ、この位置を使用するポリゴンはすべて同じ点を参照し得る。このような構成は、接続されたポリゴンメッシュを保証する。
【0018】
以下、本開示の対象物について、本開示の一部をなし、特定の例示の実施形態を例として示す添付図面を参照しながら、より詳細に説明する。本明細書に「例示」として記載されている実施形態または実装形態は、たとえば他の実施形態または実装形態より好ましいかまたは有利であるものと解釈されるべきではなく、その実施形態が「例示の」実施形態であることを反映または示すことが意図されている。対象物は様々な異なる形態で具現化されてよく、したがって対象として含まれるかまたは特許請求される対象物は、本明細書に記載のいずれの例示の実施形態にも限定されないものと解釈されることが意図されており、例示の実施形態は単に例として示すに過ぎない。同様に、特許請求されるかまたは対象として含まれる対象物の妥当に広い範囲が意図されている。たとえば、特に、対象物は方法、デバイス、コンポーネントまたはシステムとして具現化可能である。したがって、実施形態は、たとえば、ハードウェア、ソフトウェア、ファームウェアまたはこれらの任意の組合せの形態をとり得る。したがって、以下の詳細な説明は限定的な意味に解釈されることは意図されていない。
【0019】
本明細書および特許請求の範囲全体を通して、用語は明示的に記載されている意味を超える文脈における示唆または含意されているニュアンスのある意味を有する場合がある。同様に、本明細書で使用されている「一実施形態では」という語句は、必ずしも同一の実施形態を指しておらず、本明細書で使用されている「別の実施形態では」という語句は、必ずしも異なる実施形態を指していない。たとえば、特許請求される対象物は、例示の実施形態の全体または一部の組合せを含むことが意図されている。
【0020】
以下で使用されている用語は、本開示の特定の具体的実施例の詳細な説明に関連して使用されていても、その最も広義の妥当な意味で解釈され得る。実際に、以下では特定の用語が強調されている場合もあるが、この「発明を実施するための形態」の項において、制限的に解釈されることが意図されている用語はそのようなものとして明白に具体的に定義する。また、本明細書で開示されているすべての数値は、(異なる変動が規定されていない限り)その開示されている数値から±10%の変動を有し得ることにも留意されたい。また、「約」、「ほぼ」、「おおむね」などの相対語は、(別に明記されているか別の変動が規定されていない限り)±10%の潜在的変動を示すために使用されている。
【0021】
次に添付図面を参照すると、
図1Aは原形テキストと称する例示を目的とした例示のテキストの2D輪郭を示している。
図1Bは、原形テキスト上の輪郭を押し出し、押し出されたテキストにキャップを付加する効果を示している。上述のように、「キャップ」は輪郭の内側に形成されたサーフェスである。
【0022】
図2Aおよび
図2Bに、
図1A~
図1Bに示す押出しの結果として作成された3Dテキストの外観を対比して示す。具体的には、
図2Aはベベルエッジのない3Dテキストを示し、
図2Bはベベルエッジのある同じ3Dテキストを示す。
【0023】
図3A~
図3Eに、原形形状輪郭(輪郭とも呼ぶ)の逆オフセットを作成するように構成された例示のアルゴリズムによって行われるステップを示す。
図3Aでは、2Dオブジェクトにおける輪郭310が示されている。
図3Bに示すように、逆オフセットが作成されると輪郭310は輪郭点の線320(すなわち逆オフセット輪郭320)を有する。
図3Cでは、輪郭点の線320が輪郭310から離れる方向にさらに移動されている。
図3Dは、輪郭310からさらに離れるように線320の移動を続け、線320を形成する輪郭点が互いに重なり合い始めると問題を生じさせる。線320の輪郭点が線310から離れる方向に移動し続けると、線320は、
図3Eに示すように、いくつかの部分において反転した方向と自己交差とを有し始める。このような「重なり」イベントは、点を自明に移動させることによって輪郭に逆オフセットを適用すると発生する可能性がある複数のイベントのうちの1つである。
【0024】
図4Aおよび
図4Bに、セリフ文字Hの例の別の逆オフセット輪郭の作成を示す。
図4Aでは、セリフ文字Hが、輪郭410の角に沿って強調された輪郭ノードからなる輪郭410を有する。
図4Aのグラフ420によって表されているように、輪郭410に基づいてストレートスケルトングラフを生成することができる。ストレートスケルトングラフの生成方法については以下で詳述する。ストレートスケルトングラフ420から逆オフセット輪郭430が抽出され、これを
図4Bに示す。
図3A~
図3Eに示す例示の方法とは異なり、この方法は、逆オフセット輪郭430の重なりを防止し、したがって、逆オフセット点がストレートスケルトングラフ420から遠ざかる方向に移動させられるときに線430の向きの反転または自己交差がない。
【0025】
図5に、本提案の技術を実行可能な環境全体の例示のシステムインフラストラクチャ500を示す。一般に、ジオメトリ生成システム500は、ネットワーク550と、クラウドベースのサーバ530と、ジオメトリ生成エンジン535と、クライアントデバイス510と、ジオメトリ生成エンジンを備えたモデリングアプリケーション520とを含む。クラウドベースのサーバ530は、ネットワーク550を介してクライアントデバイス510などのシステム500の他の構成要素と通信可能である。ネットワーク550は、インターネットを含み得るが、たとえば、企業WAN、セルラネットワーク、衛星ネットワーク、またはこれらの組合せなどの他のネットワークも含み得る。ネットワーク550は、
図5に示す様々なエンティティ間のデータ通信を可能にするために採用可能である。
【0026】
本提案のメッシュジオメトリ生成プロセスは、モデリングアプリケーション520によって(すなわち、モデリングアプリケーション520の一部であるジオメトリ生成エンジン515によって)クライアントデバイス510においてローカルで、および/または、サーバ530に常駐するジオメトリ生成エンジン535によって実行されてもよい。クライアントデバイス510において、ジオメトリ生成エンジン515は、モデリングアプリケーション520の一部として機能してもよい。クライアントデバイス510は、
図14に示すコンピューティングデバイスと一致するかまたは類似したコンピューティングデバイスとすることができる。本提案のメッシュジオメトリ生成プロセスは、サーバ530を使用して実行されてもよい。そのような実施形態では、ジオメトリ生成エンジン535は、サーバ530内に記憶され、クライアントデバイス510上のモデリングアプリケーション520がネットワーク550を介して通信することができる。サーバ530は、
図14のコンピューティングデバイスと一致するかまたは類似したコンピューティングデバイスとすることができる。
【0027】
ジオメトリ生成エンジン515は、クライアントデバイス510にインストールされるソフトウェアアプリケーションの一部であってもよい。たとえば、ジオメトリ生成エンジン515は、モデリングアプリケーション520の一部であってもよい。同様に、ジオメトリ生成エンジン515は、ジオメトリ生成の必要が生じ得る任意のソフトウェアアプリケーション520とともに実装されてもよく、またはそれ自体が、そのようなジオメトリ生成および/または関連パラメータを必要としている別のソフトウェアアプリケーションに関連したスタンドアロンアプリケーションであってもよい。
【0028】
図6に、本明細書で提案しているメッシュジオメトリの抽出方法を使用する、
図4Aの例示の輪郭(たとえばセリフ文字H)から作成された円弧形状ベベルを示す。
図6でわかるように、結果のベベル形状とポリゴンメッシュは、主として、一連の四角形および三角形と、4本より多い線分を有する少数のポリゴンとからなる。
【0029】
図7は、原形輪郭のベベル形状を生成する例示の方法を示すフローチャートである。方法700は、
図5に示す、クライアントデバイス510上のジオメトリ生成エンジン515またはサーバ530上のジオメトリ生成エンジン535によって実行されてもよい。ステップ710で、ジオメトリ生成エンジン515または535が、
図4Aに示す原形形状輪郭などの、原形形状輪郭を受け取ってもよい。ステップ720で、ジオメトリ生成エンジン515または535は、原形形状輪郭のストレートスケルトングラフのストレートスケルトングラフを判定してもよい。ストレートスケルトングラフは、ストレートスケルトングラフのノードを接続する複数のエッジを含み得る。ステップ730で、ジオメトリ生成エンジン515または535は、ストレートスケルトングラフに基づいて原形形状輪郭の1つまたは複数の逆オフセット線を判定してもよい。
【0030】
ステップ710で示すように、モデリングアプリケーション520は、ユーザが所望の輪郭と、受け取った原形形状輪郭に適用可能なベベルの程度とを選択することができるようにしてもよい。原形形状輪郭は、前述の図に示すようなテキストの輪郭であってもよく、またはアイコン、オブジェクトまたは他の図形要素の輪郭であってもよい。
【0031】
上述のように、ステップ720で、ジオメトリ生成エンジン515または535は、原形形状輪郭のストレートスケルトングラフを判定してもよく、ストレートスケルトングラフは複数のエッジを含む。ストレートスケルトングラフは、任意の現在知られているかまたは今後開発される技術を使用して判定されてもよい。たとえば、ストレートスケルトングラフは、(1)スケルトングラフの計算における各イベントがグラフのノード(交差部とも呼ぶ)として表される必要があり、輪郭点がそのイベントに達するためにとる各経路がエッジとして表される必要があり、(2)各エッジについて、始点ノードと終点ノードがわかっている必要があり、(3)各グラフノード(すなわちストレートスケルトングラフ上の各ノード)が、入来エッジから反時計回りの順序でその次のエッジまでたどることができる必要があり、(4)各グラフノードは、イベントが発生した位置と、そのイベントが発生した2D位置とに記憶されたオフセットを有する必要があり、(5)輪郭点の始点であったグラフノードが区別可能である必要があるという、いくつかの要件を満たす必要がある。
【0032】
図7を続けて参照すると、ステップ740で、ジオメトリ生成エンジン515または535は、ストレートスケルトングラフと原形形状輪郭と1つまたは複数の逆オフセット輪郭との和集合に基づいて、1つまたは複数のポリゴンを判定してもよい。ポリゴンを判定可能な方式については、以下で
図9を参照しながら詳述する。1つまたは複数のポリゴンは、1つまたは複数のグラフポリゴンと1つまたは複数のサブポリゴンを含み得る。ステップ750で、ジオメトリ生成エンジン515または535(またはモデリングアプリケーション520)は、1つまたは複数のポリゴンに基づいて原形形状輪郭のベベル形状を生成してもよい。
図4Aおよび
図4Bに示す対応する原形形状輪郭から生成される最終的なベベル形状の一例を
図6に示す。
【0033】
図8に、逆オフセット輪郭835A~835Gを有する原形形状輪郭830のストレートスケルトングラフ840を含むグラフ800を示す。原形形状輪郭830は、原形形状輪郭830のエッジの交点に位置する輪郭ノード820A~820Eを含む。
図7を参照しながら上述したように、原形形状輪郭830は方法700のステップ710で受け取られてもよい。輪郭ノード820A~820Eは、以下の方法900で詳述するポリゴン抽出プロセスが開始可能な点である。グラフ800は、異なるオフセット度で原形形状輪郭830からオフセットしている逆オフセット輪郭835A~835Gをさらに含む。
図7を参照しながら上述したように、逆オフセット輪郭835A~835Gは、方法のステップ730で判定されてもよい。逆オフセット輪郭835A~835Gはすべて原形形状輪郭830の境界内に位置する。グラフ800には、グラフノード825A~825C(すなわち内部ノード825A~925C)を含むストレートスケルトングラフ840と、原形形状輪郭830に沿ったそれぞれの位置に基づく本明細書で輪郭ノードとも呼ぶグラフノード820A~820Eも含まれる。
図7を参照しながら上述したように、ストレートスケルトングラフ840は、方法700のステップ720で判定されてもよい。
【0034】
図9は、本開示の一態様による、ストレートスケルトングラフからポリゴンを抽出する例示の方法を示すフローチャートである。方法900は、
図5に示す、クライアントデバイス510上のジオメトリ生成エンジン515またはサーバ530上のジオメトリ生成エンジン535によって行われてもよい。ステップ910で、ジオメトリ生成エンジン515または535が、原形形状輪郭(たとえば原形形状輪郭830)上の輪郭ノード(たとえば輪郭ノード820A~820Eのうちの1つ)を判定してもよい。ステップ915で、ジオメトリ生成エンジン515または535は、その輪郭ノードをグラフポリゴンに関連付けられたノードリストに記憶してもよい。本開示では、ノードの記憶は、ノードが導出されているグラフ(たとえばグラフ800)または形状に対して相対的なノードに関する位置情報を記憶することを含む。たとえば、位置情報は、ノードの座標、特定の原点からの距離(たとえばオフセット)および/またはその原点に対する角度、およびノードの場所を特定するために使用可能な任意のその他の情報のうちの1つまたは複数を含む。
【0035】
ステップ920で、ジオメトリ生成エンジン515または535は、その輪郭ノードに接続されたエッジを判定し、ステップ925で、そのエッジをたどって内部ノードを判定してもよい。ステップ930で、ジオメトリ生成エンジン515または535は、判定されたその内部ノードを現在の内部ノードとして設定してもよく、ステップ935で、その現在の内部ノードを同じノードリストに記憶してもよい。ステップ940で、ジオメトリ生成エンジン515または535は、現在の内部ノードに接続された別のエッジを判定してもよい。一実施形態では、別のエッジは、反時計回りの順序でそのエッジから内部ノードに達するまでたどられる。ステップ945で、ジオメトリ生成エンジン515または535は、ステップ940で判定された別のエッジをたどることで別の内部ノードまたは別の輪郭ノードに至るか判定してもよい。たどられたエッジが別の内部ノードに至る場合、ジオメトリ生成エンジン515または535は、ステップ955でその別の内部ノードを現在の内部ノードとして設定してもよく、方法900は次に、もう一度反復するためにステップ935に戻る。それに対して、たどられたエッジが別の輪郭ノードに至る場合、処理中のその特定のグラフポリゴンのグラフポリゴン抽出が完了しているという合図であり、ジオメトリ生成エンジン515または535はステップ950でその別の輪郭ノードをノードリストに記憶してもよい。
【0036】
方法900のステップ910は、原形形状輪郭、たとえば
図8の原形形状輪郭830上の輪郭ノードを判定することである。
図7を参照しながら上述したように、原形形状輪郭830は、最初に方法700のステップ710でモデリングアプリケーションによって受け取られる。
【0037】
ステップ915で、
図8の輪郭ノード820A~820Eなどの輪郭ノードが、グラフポリゴンに関連付けられたノードリストに記憶される。ノードリストは、
図13のグラフポリゴン1160などのグラフポリゴンに関連付けられている。
【0038】
ステップ920で、その輪郭ノードに接続されたエッジはストレートスケルトングラフの一部を形成するエッジである。たとえば、
図8において輪郭ノード820Aがステップ910で判定された場合、ステップ920で、輪郭ノード820Aと内部ノード825Aとを接続するストレートスケルトングラフ840のエッジなど、輪郭ノード820Aに接続されたエッジが判定されることになる。
【0039】
ステップ920で輪郭ノードに接続されたエッジが判定された後は、内部ノードを判定するためにそのエッジがたどられる。内部ノードは、たとえば
図8の内部ノード825Aであってもよい。内部ノード(たとえばノード825A~825C)は、原形形状輪郭の内側にある、ストレートスケルトングラフのグラフノードである。一方、輪郭ノード(たとえば輪郭ノード820A~820E)は、原形形状輪郭上にある、ストレートスケルトングラフのグラフノードである。
【0040】
図10は、本開示の一態様による、抽出されたポリゴン内のエッジを細分する例示の方法を示すフローチャートである。方法1000は、
図5に示す、クライアントデバイス510上のジオメトリ生成エンジン515またはサーバ530上のジオメトリ生成エンジン535によって実行されてもよい。ステップ1010で、ジオメトリ生成エンジン515または535が、グラフポリゴン内の各エッジの始点ノードと終点ノードとを判定してもよい。グラフポリゴンは、たとえば
図11に示すグラフポリゴン1160であってもよい。ステップ1020で、ジオメトリ生成エンジン515または535は、始点ノードと終点ノードとに関連付けられたオフセットを、1つまたは複数の逆オフセット輪郭に関連付けられた1組の1つまたは複数のオフセットと比較してもよい。たとえば、1つまたは複数の逆オフセット輪郭は
図11の逆オフセット輪郭835A~835Gであってもよい。ステップ1030で、ジオメトリ生成エンジン515または535は、ステップ1020で行われた比較に基づいて、始点ノードと終点ノードとの間のエッジ上のゼロ個または1つまたは複数の細分ノードを判定してもよい。ステップ1040で、ジオメトリ生成エンジン515または535は、グラフポリゴン内の各エッジについて判定されたそのゼロ個、1つ、または複数の細分ノードを、そのグラフポリゴンに関連付けられたノードリストに記憶してもよい。
【0041】
図11は、抽出されたグラフポリゴン1160をさらに図示する、
図8からのグラフ800である。
図9の方法900の結果である抽出されたグラフポリゴン1160は、細分ノード1155A~1155Pをさらに含む。これらの細分ノードは、
図10の方法1000の結果である。
【0042】
図12は、抽出されたポリゴンに対応するノードを記憶する例示の方法を示すフローチャートである。方法1200は、
図5の、クライアントデバイス510上のジオメトリ生成エンジン515またはサーバ530上のジオメトリ生成エンジン535によって行われてもよい。抽出されたグラフポリゴンに対応するノードを記憶するために、効率的なスタックベースの手法を使用することができる。スタックは、処理されるグラフポリゴン(すなわちストレートスケルトン領域)のノードの参照のリストを含む。ステップ1210で、ジオメトリ生成エンジン515または535は、第1のスタックエントリを加えてもよい。ステップ1212で、ジオメトリ生成エンジン515または535は、第1のスタックエントリをアクティブスタックエントリとして指定してもよい。ステップ1214で、ジオメトリ生成エンジン515または535は、第1のノードを現在のノードとして選択してもよい。ステップ1216で、ジオメトリ生成エンジン515または535は、現在のノードがグラフノードであるか細分ノードであるかを判定してもよい。現在のノードがグラフノードである場合、ジオメトリ生成エンジン515または535は、ステップ1218でそのグラフノードをアクティブスタックエントリに加えてもよい。次に、ステップ1220で、ジオメトリ生成エンジン515または535は、次のノードが最後のノードであるかを判定してもよい。次のノードが最後のノードでない場合、ジオメトリ生成エンジン515または535は、ステップ1222で次のノードを現在のノードとして指定してから、この現在のノードがグラフノードであるか細分ノード判定するためにステップ1216に戻ってもよい。しかし、ステップ1220でジオメトリ生成エンジン515または535が次のノードが最後のノードであると判定した場合、ジオメトリ生成エンジン515または535は、ステップ1224で、その最後のノードを最下部スタックエントリに加えてプロセスを完了してもよい。
【0043】
しかし、ステップ1216でジオメトリ生成エンジン515または535は、現在のノードが細分ノードであると判定してもよい。その場合、ステップ1226で、ジオメトリ生成エンジン515または535は、その細分ノードをアクティブスタックエントリに割り当てて(すなわち加えて)もよい。ステップ1228で、ジオメトリ生成エンジン515または535は、次のノードが細分ノードのオフセットよりも高いオフセットまたは低いオフセットに関連付けられているかを判定してもよい。
【0044】
ステップ1228で次のノードがより高いオフセットを有する場合、ステップ1232で、ジオメトリ生成エンジン515または535は、次のスタックエントリまで上がり、当該次のスタックエントリをアクティブスタックエントリとして指定してもよく、またはすでに最上部スタックエントリである場合には、スタックの上に新たなスタックエントリを加え、そのスタックエントリをアクティブスタックエントリとして指定してもよい。ステップ1234で、ジオメトリ生成エンジン515または535は、その細分ノードをアクティブスタックエントリに割り当てて(すなわち加えて)もよい。
【0045】
ステップ1228で、次のノードがより低いオフセットを有すると判定された場合、ジオメトリ生成エンジン515または535は、ステップ1230で次のスタックエントリまで下り、当該次のスタックエントリをアクティブスタックエントリとして指定してもよい。次にステップ1234で、ジオメトリ生成エンジン515または535は、アクティブスタックエントリに細分ノードを割り当てて(すなわち加えて)もよい。ステップ1236で、ジオメトリ生成エンジン515または535は、(オフセットがより高いかまたはより低いと判定された)次のノードが最後のノードであるかを判定してもよい。次のノードが最後のノードでない場合、ステップ1238で、ジオメトリ生成エンジン515または535は次のノードを現在のノードとして指定してもよく、方法1200は、新たに指定された現在のノードを処理するためにステップ1216にループバックする。しかし、次のノードが最後のノードである場合、ジオメトリ生成エンジン515または535は、ステップ1224で最後のノードを最下部スタックに加えてもよい。
【0046】
グラフポリゴンについて方法1200を実行すると、すべてのスタックが、対応するグラフポリゴンのオフセットスライスを画定するノードのリストを含むことができる。これらのリストは、各スタックのノードリストをたどり、同じオフセットを有するノード間で分割することによって、サブポリゴン(すなわち最終的なポリゴン)に分割可能である。
【0047】
閉じた接続されたサーフェスオブジェクトを得るために、
図12に示す方法と同じ方法が使用されてもよい。ここで、最初の挿入時にすべてのノードとすべての追加された細分点のために個別の最終点インデックスが作成される。このようにして、隣接するストレートスケルトン領域が、同じ位置を有する点に同じインデックスを使用する。
【0048】
図13は、
図10に示す方法1000を使用して特定された1組の細分点によって表された、グラフポリゴンのサブポリゴンをさらに示す、
図11からのグラフ800である。グラフポリゴン1160に関連付けられたサブポリゴンの一例がサブポリゴン1370である。
【0049】
図14に、指定されたコンピュータシステム1400の一実装形態を示す。コンピュータシステム1400は、コンピュータシステム1400に本明細書で開示されている方法またはコンピュータベースの機能のうちの任意の1つまたは複数を実行させるように実行可能な命令のセットを含み得る。コンピュータシステム1400は、スタンドアロンデバイスとして動作してもよく、または、たとえばネットワークを使用して他のコンピュータシステムまたは周辺デバイスに接続されてもよい。
【0050】
ネットワーク化展開では、コンピュータシステム1400は、サーバ-クライアントユーザネットワーク環境におけるサーバとして、またはクライアントユーザコンピュータとして、またはピアツーピア(または分散)ネットワーク環境におけるピアコンピュータシステムとして動作してもよい。コンピュータシステム1400は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、モバイルデバイス、パームトップコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、通信デバイス、無線電話、固定電話、制御システム、カメラ、スキャナ、ファクシミリ機、プリンタ、ページャ、パーソナルトラステッドデバイス、ウェブ機器、ネットワークルータ、スイッチまたはブリッジ、あるいはマシンによって行われるアクションを指定する(順次またはその他の)命令のセットを実行可能な任意のその他のマシンなど、様々なデバイスとして実装することができ、またはそのようなデバイスに組み込むことができる。特定の実装形態では、コンピュータシステム1400は、音声通信、ビデオ通信、またはデータ通信を提供する電子デバイスを使用して実装可能である。また、単一のコンピュータシステム1400が示されているが、「システム」という用語は、1つまたは複数のコンピュータ機能を実行するために命令のセットまたは複数のセットを個別にまたは共同して実行する、システムまたはサブシステムの任意の集合を含むものと解釈されるべきである。
【0051】
図14に示すように、コンピュータシステム1400は、プロセッサ1402、たとえば中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)またはその両方を含んでもよい。プロセッサ1402は、様々なシステムにおけるコンポーネントであってもよい。たとえば、プロセッサ1402は、標準パーソナルコンピュータまたはワークステーションの一部であってもよい。プロセッサ1402は、1つまたは複数の汎用プロセッサ、デジタルシグナルプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、サーバ、ネットワーク、デジタル回路、アナログ回路、これらの組合せ、またはその他の、データを解析し、処理するための現在知られているか今後開発されるデバイスであってもよい。プロセッサ1402は、手動で生成された(すなわちプログラムされた)コードなどのソフトウェアプログラムを実装可能である。
【0052】
コンピュータシステム1400は、バス1408を介して通信することができるメモリ1404を含む。メモリ1404は、メインメモリ、スタティックメモリ、またはダイナミックメモリであってもよい。メモリ1404は、ランダムアクセスメモリ、読み出し専用メモリ、プログラム可能読み出し専用メモリ、電気的プログラム可能読み出し専用メモリ、電気的消去可能読み出し専用メモリ、フラッシュメモリ、磁気テープまたはディスク、光媒体などを含むがこれらには限定されない、様々な種類の揮発性および不揮発性記憶媒体などのコンピュータ可読記憶媒体を含み得るが、これには限定されない。一実装形態では、メモリ1404は、プロセッサ1402のためのキャッシュまたはランダムアクセスメモリを含む。別の実装形態では、メモリ1404は、プロセッサのキャッシュメモリ、システムメモリまたはその他のメモリなど、プロセッサ1402とは分離している。メモリ1404は、データを記憶するための外部ストレージデバイスまたはデータベースであってもよい。例としては、ハードドライブ、コンパクトディスク(「CD」)、デジタルビデオディスク(「DVD」)、メモリカード、メモリスティック、フロッピィディスク、ユニバーサルシリアルバス(「USB」)メモリデバイス、または、データを記憶するように動作する任意のその他のデバイスがある。メモリ1404は、プロセッサ1402によって実行可能な命令を記憶するように動作可能である。図面に図示されているかまたは本明細書に記載されている機能、動作またはタスクは、メモリ1404に記憶されている命令を実行するプログラムされたプロセッサ1402によって行われてもよい。機能、動作またはタスクは、特定の種類の命令セット、記憶媒体、プロセッサまたは処理方式とは独立しており、単独または組み合わさって動作する、ソフトウェア、ハードウェア、集積回路、ファームウェア、マイクロ-コードなどによって行われてもよい。同様に、処理方式は、マルチプロセッシング、マルチタスキング、並列処理などを含み得る。
【0053】
図のように、コンピュータシステム1400は、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、フラットパネルディスプレイ、ソリッドステートディスプレイ、陰極線管(CRT)ディスプレイ、プロジェクタ、プリンタ、または所定の情報を出力するためのその他の現在知られているか今後開発されるディスプレイデバイスなどのディスプレイ1410をさらに含み得る。ディスプレイ1410は、ユーザがプロセッサ1402の機能を見るためのインターフェースとして、または具体的にはメモリ1404またはドライブユニット1406に記憶されているソフトウェアアプリケーションとのインターフェースとして機能することができる。
【0054】
上記に加えて、または上記に代えて、コンピュータシステム1400は、ユーザがシステム1400のコンポーネントのいずれかと対話することができるようにするように構成された入力デバイス1412を含んでもよい。入力デバイス1412は、数字パッド、キーボード、または、マウスもしくはジョイスティックなどのカーソル制御デバイス、タッチスクリーンディスプレイ、リモートコントロール、またはコンピュータシステム1400と対話するように動作する任意のその他のデバイスであってもよい。
【0055】
コンピュータシステム1400は、ディスクまたは光学式ドライブユニット1406も含んでもよい。ディスクドライブユニット1406は、1つまたは複数の命令セット1424、たとえばソフトウェアを具現化可能なコンピュータ可読媒体1422を含み得る。また、命令1424は、本明細書に記載の方法または論理のうちの1つまたは複数を具現化し得る。命令1424は、コンピュータシステム1400による実行時、メモリ1404内および/またはプロセッサ1402内に完全にまたは部分的に存在し得る。メモリ1404とプロセッサ1402は、上述のようなコンピュータ可読媒体も含み得る。
【0056】
システムによっては、コンピュータ可読媒体1422は、命令1424を含むか、または、ネットワーク1450に接続されたデバイスがネットワーク1450を介して音声、ビデオ、オーディオ、画像または任意のその他のデータを伝達することができるように、伝播された信号に応答して命令1424を受信し、実行する。また、命令1424は、通信ポートまたはインターフェース1420を使用しておよび/またはバス1408を使用して、ネットワーク1450を介して送信または受信されてもよい。通信ポートまたはインターフェース1420は、プロセッサ1402の一部であってもよく、または別個のコンポーネントであってもよい。通信ポート1420はソフトウェアで作成されてもよく、またはハードウェアの形態の物理接続であってもよい。通信ポート1420は、ネットワーク1450、外部媒体、ディスプレイ1410、またはコンピュータシステム1400の任意のその他のコンポーネントあるいはこれらの組合せに接続するように構成されてもよい。ネットワーク1450との接続は、有線Ethernet接続などの物理接続であってもよく、または後述するように無線で確立されてもよい。同様に、コンピュータシステム1440の他のコンポーネントとの追加の接続は、物理接続であってもよく、または無線で確立されてもよい。ネットワーク1450は、上記に代えて、バス1508に直接接続されてもよい。
【0057】
コンピュータ可読媒体1422は単一の媒体として示されているが、「コンピュータ可読媒体」という用語は、1つまたは複数の命令セットを記憶する、集中または分散データベースおよび/または関連付けられたキャッシュおよびサーバなどの単一の媒体または複数の媒体を含み得る。「コンピュータ可読媒体」という用語は、プロセッサによる実行のために命令のセットを記憶、符号化または担持することができるか、またはコンピュータシステムに本明細書に記載の方法または動作のうちの任意の1つまたは複数を行わせる、任意の媒体も含み得る。コンピュータ可読媒体1422は、非一時的なものとすることができ、有形とすることができる。
【0058】
コンピュータ可読媒体1422は、1つまたは複数の不揮発性読み出し専用メモリを収容するメモリカードまたはパッケージなどのソリッドステートメモリを含み得る。コンピュータ可読媒体1422は、ランダムアクセスメモリまたはその他の揮発性リライタブルメモリとすることができる。上記に加えて、または上記に代えて、コンピュータ可読媒体1422は、伝送媒体を介して伝達される信号などの搬送波信号をキャプチャするディスクまたはテープあるいはその他のストレージデバイスなどの、光磁気または光媒体を含み得る。電子メールへのデジタルファイル添付またはその他の自己完結型情報アーカイブまたはアーカイブのセットは、有形の記憶媒体である配布媒体とみなすことができる。したがって、本開示は、データまたは命令を記憶可能な、コンピュータ可読媒体または配布媒体およびその他の均等物ならびに後継媒体のうちの任意の1つまたは複数を含むものとみなされる。
【0059】
別の実装形態では、特殊用途向け集積回路、プログラマブルロジックアレイおよびその他のハードウェアデバイスなどの専用ハードウェア実装形態を、本明細書に記載の方法のうちの1つまたは複数の方法を実装するように構成することができる。様々な実装形態の装置およびシステムを含み得る用途は、多様な電子およびコンピュータシステムを広く含み得る。本明細書に記載の1つまたは複数の実装形態は、モジュール間およびモジュールを介して伝達可能な関連する制御信号およびデータ信号とともに2つ以上の特定の相互接続されたハードウェアモジュールまたはデバイスを使用して、または特定用途向け集積回路の一部として、機能を実装してもよい。したがって、当該システムは、ソフトウェア、ファームウェア、ハードウェア実装形態を含む。
【0060】
コンピュータシステム1400は、1つまたは複数のネットワーク1450に接続されてもよい。ネットワーク1450は、有線または無線ネットワークを含む1つまたは複数のネットワーク1450を規定し得る。無線ネットワークは、セルラ電話ネットワーク、802.11、802.16、802.20またはWiMaxネットワークであってもよい。また、そのようなネットワークは、インターネットなどのパブリックネットワーク、イントラネットなどのプライベートネットワーク、あるいはこれらの組合せであってもよく、TCP/IPベースのネットワーキングプロトコルを含むがこれらには限定されない、現在利用可能であるかまたは今後開発される様々なネットワーキングプロトコルを使用してもよい。ネットワーク1450は、インターネットなどのワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク、メトロポリタンエリアネットワーク、ユニバーサルシリアルバス(USB)ポートを介した接続などの直接接続、または、データ通信を可能にし得る任意のその他のネットワークを含み得る。ネットワーク1450は、デバイス間のデータの通信を可能にするために1つのコンピューティングデバイスを別のコンピューティングデバイスに結合するように構成され得る。ネットワーク1450は、一般に、1つのデバイスから別のデバイスに情報を伝達するための任意の形態のマシン可読媒体を採用することができるようにされ得る。ネットワーク1450は、それによってコンピューティングデバイス間で情報が伝播することができる通信方法を含み得る。ネットワーク1450は、サブネットワークに分割されてもよい。サブネットワークは、そのサブネットワークに接続されている他の構成要素のすべてへのアクセスを可能にしてもよく、またはサブネットワークは構成要素間のアクセスを制限してもよい。ネットワーク1450は、パブリックまたはプライベートネットワーク接続とみなすことができ、たとえば仮想プライベートネットワーク、または暗号化またはパブリックインターネットなどで採用されるその他のセキュリティ機構を含んでもよい。
【0061】
本開示の様々な実装形態によると、本明細書に記載の方法は、コンピュータシステムによって実行可能なソフトウェアプログラムによって実装されてもよい。また、例示の非限定的実装形態では、実装形態が分散処理、コンポーネント/オブジェクト分散処理、および並列処理を含むことができる。あるいは、本明細書に記載のような方法または機能のうちの1つまたは複数を実施するように、仮想コンピュータシステム処理を構成することができる。
【0062】
本明細書では、特定の実装形態で実装可能なコンポーネントおよび機能について特定の標準およびプロトコルに言及しながら説明しているが、本開示はそのような標準およびプロトコルには限定されない。たとえば、インターネットおよびその他のパケット交換ネットワーク伝送用の標準(たとえばTCP/IP、UDP/IP、HTML、HTTP)が、最新技術の例に相当する。このような標準は、基本的に同じ機能を有する、より高速またはより効率的な同等物によって周期的に取って代わられる。したがって、本明細書に記載のものと同一または類似の機能を有する後継の標準およびプロトコルはそれらの同等物とみなされる。
【0063】
一実施形態では、説明されている方法のステップは、ストレージに記憶されている命令(コンピュータ可読コード)を実行する処理(すなわちコンピュータ)システムの適切なプロセッサ(または複数のプロセッサ)によって実行される。本開示の実施形態は、いかなる特定の実装形態またはプログラミング技術にも限定されないことと、本開示の実施形態は本明細書に記載の機能を実装するために任意の適切な技術を使用して実装可能であることも理解されたい。本開示の実施形態は、いかなる特定のプログラミング言語またはオペレーティングシステムにも限定されない。
【0064】
例示の実施形態の上記の説明では、本開示を能率化することと、発明の様々な態様のうちの1つまたは複数の態様の理解の助けとなることを目的として、本開示の様々な特徴が単一の実施形態、図面またはその説明にまとめられている場合があることを理解されたい。しかし、この開示方法は、特許請求される実施形態が各請求項に明記されているよりも多くの特徴を必要とするという意図を反映しているものと解釈されるべきではない。むしろ、以下の特許請求の範囲が反映しているように、発明の態様は、上記で開示されている単一の実施形態のすべての特徴よりも少ない特徴にある。したがって、「発明を実施するための形態」に続く特許請求の範囲は、この「発明を実施するための形態」に明示的に組み込まれ、各請求項は別個の実施形態として独立している。
【0065】
また、本明細書に記載の一部の実施形態は、他の実施形態に含まれる一部の特徴を含み、他の特徴は含まないが、当業者にはわかるように、異なる実施形態の特徴の組合せが本開示の範囲内に含まれ、異なる実施形態を形成することが意図されている。たとえば、以下の特許請求の範囲では、特許請求される実施形態のいずれも任意の組合せで使用可能である。
【0066】
また、実施形態の一部について本明細書では、コンピュータシステムのプロセッサによって、または機能を実行するその他の手段によって実装可能な方法または方法の要素の組合せとして説明している。したがって、そのような方法または方法の要素を実行するために必要な命令を有するプロセッサは、その方法または方法の要素を実行する手段を形成する。また、装置実施形態の本明細書に記載の要素は、本開示の技術を実施するためにその要素によって実行される機能を実施する手段の一例である。
【0067】
本明細書で示されている説明では、多くの特定の詳細が記載されている。しかし、本開示の実施形態はこれらの特定の詳細なしに実施されてもよいことを理解されたい。また他の場合には、本説明がわかりにくくならないように、よく知られている方法、構造および技術は詳細には示していない。
【0068】
以上、好ましい実施形態と考えられるものについて説明したが、本開示の主旨から逸脱することなくそれらに他の修正およびさらなる修正を加えることができることが当業者にはわかるであろうし、すべてのそのような変更および修正が本開示の範囲に含まれるものとして特許請求することが意図されている。たとえば、上記で示されている式があればそれは単に使用可能な手順を表すに過ぎない。ブロック図では機能が追加または削除されてもよく、機能ブロック間で動作が交換されてもよい。本開示の範囲内で、記載の方法においてステップが追加または削除されてもよい。
【0069】
上記で開示されている対象物は例示とみなされるべきであり、制限的であるとみなされてはならず、添付の特許請求の範囲は、本開示の真の主旨および範囲に含まれる、そのようなすべての修正、強化およびその他の実装形態を対象として含むことが意図されている。したがって、法律によって許される最大限まで、本開示の範囲は、以下の特許請求の範囲およびその均等物の可能な最も広義の解釈によって判断されるべきであり、上記の詳細な説明によって制限または限定されるべきではない。本開示の様々な実装形態について説明したが、当業者には、本開示の範囲内でさらに多くの実装形態および実装形態が可能であることが明らかであろう。したがって、本開示は添付の特許請求の範囲およびその均等物に照らす以外には制限されてはならない。
【国際調査報告】