(57)【特許請求の範囲】
【請求項１】
複数の素材について実際の変形特性をモデル化したデータベースから選択された素材との物理的なインタラクションの仮想表現を、前記選択された素材のモデル化された変形特性及び前記物理的なインタラクションを表すデータに基づいて生成するように構成されたプロセッサと、
(i)前記素材の前記仮想表現を表示し、(ii)前記物理的なインタラクションを表す前記データをユーザからの入力として受信するように適合され、前記素材の前記表示された仮想表現と前記ユーザとのインタラクションにより前記物理的なインタラクションを表す前記データを入力し、(iii)前記素材との前記物理的なインタラクションの前記仮想表現をリアルタイムで表示するように適合されたタッチスクリーンと、
光源に対する前記タッチスクリーンの方位を検出して主要照明方向を検出するための方位センサと、
を含み、
前記タッチスクリーンは、前記検出した主要照明方向を用いて、前記素材の外観に関する（ｉ）双方向テクスチャ関数（ＢＴＦ）、（ｉｉ）双方向反射分布関数（ＢＲＤＦ）、（ｉｉｉ）テクスチャ、の１以上をシミュレートする、
シミュレーションシステム。
【請求項２】
前記素材の前記表示された仮想表現が前記素材の仮想の素材見本である、請求項1に記載のシステム。
【請求項３】
前記仮想の素材見本の一つ又は複数の点が固定された点であり、それによって前記素材見本を表示スクリーン上に固定する、請求項2に記載のシステム。
【請求項４】
前記素材の実際の変形特性が、ノード及びばねの網を含む反復型ばね質量モデルに基づいてモデル化された、請求項1に記載のシステム。
【請求項５】
前記反復型ばね質量モデルが、近傍のノード間の構造ばねの網、対角線のノード間の剪断ばねの網、及び交互のノード間の屈曲ばねの網を含む、請求項4に記載のシステム。
【請求項６】
(i)前記ばねの自然長、及び(ii)前記ばねの剛性のうちの少なくとも一つを含む前記網の特性が、前記素材の前記変形特性をモデル化するように選択された、請求項５に記載のシステム。
【請求項７】
前記プロセッサにより、構造ばね及び剪断ばねがノード間の距離保存制約として扱われ、屈曲ばねがノード間の角度保存制約として扱われる、請求項4に記載のシステム。
【請求項８】
前記反復型ばね質量モデルが平面制約を構成する、請求項4に記載のシステム。
【請求項９】
前記ノードがB-スプライン表面の制御点に対応し、不均一な結び目が均一なB-スプライン表面を作るために使用される、請求項4に記載のシステム。
【請求項１０】
物理的なインタラクションの前記仮想表現の前記生成が、(i)オイラーの連立方程式の積分、(ii)ベルレ積分を使用しての制約の解消、並びに(iii)衝突の検出及び解消のうちの少なくとも一つを含む、請求項1に記載のシステム。
【請求項１１】
衝突検出が前記タッチスクリーンとの指先とのインタラクションに関する楕円体の衝突の検出及び修正を含む、請求項10に記載のシステム。
【請求項１２】
前記タッチスクリーンに対するユーザの透視角を検出するためのセンサをさらに含む、請求項1に記載のシステム。
【請求項１３】
前記複数の素材からの第一の素材の選択をユーザからの入力として受信するために適合された選択インタフェースをさらに含み、
前記タッチスクリーンは、前記第一の素材との物理的なインタラクションを表すデータをユーザからの入力として受信するように構成されており、
前記タッチスクリーンは、前記第一の素材との前記物理的なインタラクションの仮想表現を表示するように構成されている、
請求項1に記載のシステム。
【請求項１４】
複数の素材のそれぞれについて素材の実際の変形特性をモデル化するデータベースを提供するステップと、
選択インタフェースを使用して前記複数の素材から第一の素材をその評価のために選択するステップと、
タッチスクリーンを使用して前記第一の素材との物理的なインタラクションを表すデータを入力するステップと、
方位センサを用いて前記タッチスクリーンの光源に対する方位を検出することにより、主要照明方向を検出するステップと、
前記第一の素材との前記物理的なインタラクションの仮想表現を前記タッチスクリーン上に表示するステップと、
を含み、
前記タッチスクリーン上に表示するステップにおいては、前記検出した主要照明方向を用いて、前記素材の外観に関する（ｉ）双方向テクスチャ関数（ＢＴＦ）、（ｉｉ）双方向反射分布関数（ＢＲＤＦ）、（ｉｉｉ）テクスチャ、の１以上をシミュレートする、
アプリケーション用の素材の評価を容易にする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、素材の変形特性をモデル化するための装置、システム及び方法に関する。さらに、本開示は、素材との物理的なインタラクション(physical interaction)の仮想表現を生成するための装置、システム及び方法に関する。開示した装置、システム及び方法についての一つの潜在用途はモバイルコンピューティングの分野の中にある。
【背景技術】
【０００２】
好都合にも、素材の特性をモデル化することによって、一組のシミュレート条件下でユーザが素材を分析、例えば視覚化することが可能になる。そのような仮想素材分析の用途は、例えば、適切な素材の選択を容易にすることから最終製品の美しさに磨きをかけるのを助けることまで、ほぼ無限である。素材の特性のモデル化において、一つの目標は、ユーザの仮想素材とのインタラクションとユーザの素材との物理的なインタラクションとの間の不一致を最小限にすることである。最も大きな不一致の一つは、ユーザが仮想素材に物理的に触れるか又は扱うことができないことである。したがって、仮想素材との物理的なインタラクションをシミュレートするために、例えば、ユーザが伸長強度及び弾力性などの変形特性を分析するのを可能にするために、改良された装置、システム及び方法が必要になる。
【０００３】
ここ数年、タブレット、ラップトップ、スマートフォン、携帯情報端末などのモバイルコンピューティング装置が急増した。モバイルコンピューティング装置は、例えばその携帯性及び利用しやすさの故にユーザにとって魅力的である。さらに、モバイルコンピューティング装置は、環境と人間のインタラクションの限界を広げる最先端にあった。例えば、通常のモバイルコンピューティング装置は、撮像用(例えば、カメラ)、周辺光用、方位/運動用(例えば、ジャイロスコープ)、触覚インタラクション用(例えば、タッチスクリーン)、温度を基にした機能用、位置を基にした機能用(例えば、GPS)、無線周波通信用などの検出器/センサを含むが、それらに限定されるものではなく、ユーザ及び/又は環境とインタラクションするための多様な検出器/センサを含むことができる。さらに、通常のモバイルコンピューティング装置は、視覚(例えば、ディスプレイ)、聴覚(例えば、スピーカ)、及び/若しくは触覚(例えば触覚インタフェース)に関するインタフェースを含むが、それらに限定されないフィードバックを提供するための多様なメカニズムを含むか、又はそれらのメカニズムとインタフェースすることができる。
【０００４】
有り余る能力及び機能を与えられて、好都合にもモバイルコンピューティング装置は、改良の機会に満ちているプラットフォームを従来の素材シミュレーションに提供する。具体的には、ほとんどのモバイルコンピューティング装置は、触覚インタラクション(例えば、マルチタッチ式のタッチスクリーンインタフェース)をサポートするので、少なくとも一部では、触覚によるインタラクション機能などを利用する素材シミュレーションを改良する必要性及び/又は機会がある。
【０００５】
前述の必要性/機会並びに他の必要性/機会は、本開示の装置、システム及び方法によって対処される。
【発明の概要】
【課題を解決するための手段】
【０００６】
例えば素材のモデル化された変形特性及び物理的なインタラクションを表すデータ（例えば入力若しくは選択されたデータ）に基づいて、素材の変形特性をモデル化するために、並びに/又は、素材との物理的なインタラクションの仮想表現を生成するために有利な装置、システム及び方法が提供される。例示的な実施形態では、素材の変形特性のモデル化機能及び/又は素材との実際の触れ合いの仮想表現の生成機能を実装するために、プロセッサを使用することができる。したがって、プロセッサは、素材の変形特性のモデル化に有効な実行可能命令及び/又は素材との物理的なインタラクションの仮想表現の生成に有効な実行可能命令を含む持続的に処理可能な媒体(non-transitory processable medium)と動作的に関連することができる。
【０００７】
例示的な実施形態では、例えばプロセッサと動作的に関連する触覚センサは、物理的なインタラクションを表すデータをユーザ入力として受信するために使用することができる。一部の実施形態では、触覚センサは、複数の接点との物理的なインタラクションをシミュレートするためのマルチタッチ能力を含むことができる。例示的な実施形態では、例えばプロセッサと動作的に関連するディスプレイは、素材との物理的なインタラクションの仮想表現を表示するために使用することができる。
【０００８】
実際的なユーザ経験に関する重要な考慮事項又は要素は、リアルタイムでの(又はほぼリアルタイムでの)素材シミュレーションである。したがって、例示的な実施形態では、素材との物理的なインタラクションは、ディスプレイ上にリアルタイムで(又はほぼリアルタイムで)シミュレートすることができる。一部の実施形態では、ディスプレイ及び触覚センサはタッチスクリーンインタフェースであり得る。したがって、例示的な実施形態では、ユーザは、表示されている素材の仮想表現とのインタラクションにより、物理的なインタラクションを表すデータを入力することができる。
【０００９】
開示した装置、システム及び方法の別の特徴、機能及び利点は、以下の説明から、特に添付の図とともに読むと明白になろう。
【００１０】
開示した装置、システム及び方法を当業者が作成し使用するのを助けるために、添付の図を参照する。
【図面の簡単な説明】
【００１１】
【図１】本開示による例示的なシミュレーションシステムを示す図である。
【図２】本開示によって素材の変形特性をモデル化するための例示的な反復型ばね質量モデルを示す図である。
【図３】制約として扱われる例示的な構造ばねについての修正ノード位置を示す図である。
【図４】本開示による、(a)長さ保存技法を使用する制約として扱われる例示的な屈曲ばねの修正ノード位置を示す図と(b)角度保存技法を使用する制約として扱われる例示的な屈曲ばねの修正ノード位置を示す図である。
【図５】本開示による例示的な楕円体を示す図である。
【図６】本開示による例示的な楕円体についての放射投影点と最接近外点の違いを説明する図である。
【図７】本開示による例示的な指先インタラクションのモデル化を示す図である。
【図８】本開示による素材シミュレーション用の例示的なインタラクティブ処理を示す図である。
【図９】本開示による、(a)均一な結び目を使用する例示的なばねの網を示す図と(b)不均一な結び目をそれぞれ使用する例示的なばねの網を示す図である。
【図１０】本開示による、(a)仮想素材用の例示的なグリッド、(b)例示的なグリッドから導出された高精細なグリッド、及び(c)高精細なグリッドに対応する三角形のメッシュを示す図である。
【図１１】本開示による例示的なレンダリング処理を示す図である。
【図１２】本開示によってシミュレートされた素材との例示的なユーザのインタラクションを示す図である。
【図１３】本開示によってシミュレートされた素材をユーザが見るための例示的な構成を示す図である。
【図１４】本開示による例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【００１２】
例えば素材のモデル化された変形特性と物理的なインタラクションを表すデータ（例えば入力若しくは選択されたデータ）とに基づいて、素材の変形特性をモデル化するために、並びに/又は、素材との物理的なインタラクションの仮想表現を生成するために有利な装置、システム及び方法が提供される。
【００１３】
最初に図1を参照すると、本開示による例示的なシミュレーションシステム100が描写される。シミュレーションシステム100はプロセッサ110を含むことができる。プロセッサ110は、素材の変形特性のモデル化及び/又は素材との物理的なインタラクションの仮想表現の生成に有効な実行可能命令を含む持続性処理可能媒体115と動作的に関連することができる。プロセッサ110と動作的に関連する触覚センサ120は、物理的なインタラクションを表すデータをユーザ入力として受信するために使用することができる。一部の実施形態では、触覚センサ120は、複数の接点との物理的なインタラクションをシミュレートするためのマルチタッチ能力を含むことができる。また、ディスプレイ130は、プロセッサ110と動作的に関連することができ、素材との物理的なインタラクションの仮想表現を表示するために使用することができる。
【００１４】
実際的なユーザ経験に関する重要な考慮事項又は要素は、リアルタイムでの素材シミュレーションである(なお、本明細書において、リアルタイムはリアルタイムに近いことを包含する)。したがって、例示的な実施形態では、素材との物理的なインタラクションはディスプレイ130上でリアルタイムに(又はリアルタイムに近く)シミュレートすることができる。一部の実施形態では、ディスプレイ130及び触覚センサ120は、タッチスクリーンインタフェース120/130であり得る。したがって、例示的な実施形態では、ユーザは、表示された素材の仮想表現とのインタラクションにより、物理的なインタラクションを表すデータを入力することができる。本明細書においてさらに記載するように、例示的な実施形態では、シミュレーションシステム100は、(i)眼球/顔面検出器、(ii)方位センサ、及び(iii)光検出器(ひとまとめにして140)のうちの一つ又は複数をさらに含むことができる。
【００１５】
例示的な実施形態では、素材の変形特性は、図2に描写した反復型ばね質量モデルに基づいてモデル化することができる。図2に描写したように、素材の変形特性は、一組のばねによりグリッド中でお互いに対して結合する大きさのない質量要素(ノードとも呼ばれる)の網200を使用してモデル化することができる。網200は、列と行の中の各近傍のノード間の距離を保存するばね(構造ばねとも呼ばれる)を含むことができる。一般に、構造ばねは、網200に良好な物理的な現実感を提供するのに十分ではない可能性がある。したがって、図2に描写したように、網200は、対角線ノード間の剪断ばね及び/又は交互ノード間の屈曲ばねを含むように改良することができる。好都合にも、剪断ばねは、制御されていない剪断変形を回避/制御するために使用することができ、屈曲ばねは、素材の折り畳みを回避/制御することができる。一部の実施形態(描写せず)では、網200は、特定のノード上のばねの間の角度を制限/制御するために使用できる屈曲ばね、も含むように改良することができる。
【００１６】
例示的な実施形態では、pij(t)、vij(t)、及びaij(t)は、所定のノード(i,j)及び所定の時刻tにおける位置、速度及び加速度の各ベクトルを表すことができる。したがって、網200の数学的基盤は、ニュートンの第二法則
fij=maij
から導き出される。ここで、mは各点での質量であり、fijはでpijで適用された力の総和である。
【００１７】
例示的な実施形態では、各ノードで印加された主要な力はばねの張力からである。この張力はフックの法則に従い、ばねの変形によって作り出される。したがって、ノード上で作り出される内力は、以下の式に従って計算することができる。
【数１】
0006266873.tif 000002
【００１８】
ここで、
【数２】
0006266873.tif 000003
【００１９】
はpijとpklを結ぶばねの自然長又は静止長を意味し、kijklは剛性である。
【００２０】
なお、各ばねの自然長及び剛性などの網200の特性は、モデル化する素材の伸長強度、剪断強度及び弾力性などの実際の変形特性を最も良くモデル化するように選択することができる。内力は、重力、風力、及び他の制約から派生した力などの外力によって補足することができる。例示的な実施形態では、網200は、制約面を考慮に入れて素材の変形特性をシミュレートするために(例えば、表面に置かれたか、又は取り付けられた素材をシミュレートするために)使用することができる。したがって、一部の実施形態では、外力は非常に小さな座屈力を含んで、圧縮力の印加から起こる不安定さを回避/軽減し、素材を制約面から座屈するようにすることができる。
【００２１】
外力及び内力が確立されると、ノードの動作をモデル化するために一組の簡単なオイラーの方程式を使用することができる。
【数３】
0006266873.tif 000004
【００２２】
この連立方程式は、静止系を生成する各時間ステップで解くことができる。陽解法と陰解法のどちらも使用することができ、多くの場合、解法の中の中間ステップが対象である。プロボ(Provot)(1995)及びヴァシレフ(Vassilev)(2000)は実験的な解法を提案した。標準のオイラー、ルンゲクッタも使用することができる。陰解法は、バラフ(Baraff)及びウィトキン(Witkin)(1998)並びに川端(1982)によって提案された解法を含む。
【００２３】
一つの簡易化された解法はベルレ積分(Verlet integration)として知られている。ベルレ積分は分子動力学にその起源がある。それはきわめて安定しており非常に高速である。各ノードの位置及び速度を格納する代わりに、ベルレ積分を利用する装置、システム及び方法は、各ノードの現在の位置pij、及び前の位置
【数４】
0006266873.tif 000005
【００２４】
を格納する。時間ステップは固定することができ、その結果次の位置
【数５】
0006266873.tif 000006
【００２５】
は
【数６】
0006266873.tif 000007
【００２６】
によって定義される。
【００２７】
その後、次式とする。
【数７】
0006266873.tif 000008
【００２８】
(すなわち、前の位置が現在の位置にセットされる。)
例示的な実施形態では、2x-x-=x+(x-x-)であり、ここで(x-x-)は現在速度の推定値である(したがって、オイラーの方程式への関連を表す)。なお、一部の実施形態では、2の因子が多少削減されて、ドラッグをシミュレートできる。
【００２９】
ベルレ積分を使用することにより、制約の統合は簡単及び単純明快である。例示的な実施形態では、ばねは、力の発生器の代わりの制約として扱うことができる(なお、ばねの剛性を大きく操作した素材をシミュレートすることは、きわめて小さな時間ステップを必要とするか、又は、双方向システムには適切でない不安定さを作る。)。したがって、例示的な実施形態では、考慮を必要とする力は、好都合にも削減することができる(例えば、重力及び小さな座屈力)。加えて、表面/接地計画制約(当該制約は、速度用として他の衝突検出とは別に実装することができる)、動作制約、取り付け制約、自己衝突、及び「指」衝突制約も、ベルレ積分を使用して迅速且つ簡単に考慮することができる。制約の解消は、ノードの位置を修正して制約を満足させることにより、ベルレ積分に直接送り込まれる。その際、次のステップ用の速度は、再計算及び/又は補償を必要とする代わりに、直接影響される。
【００３０】
実際には、外部制約及びばね制約の二つのタイプの制約を考慮することができる。外部制約は固定又は平面的であり得る。ばね制約はばねのタイプ(構造、剪断又は屈曲)によって区別することができる。
【００３１】
例示的な実施形態では、固定された制約が、例えば仮想素材の取り付け点を(ユーザが仮想素材を視界の外に移動するのを回避するように)ディスプレイの縁部に表すことができる。そして、この場合、固定点は、繰り返し中変化しない。
【数８】
0006266873.tif 000009
【００３２】
また、ノードは、外部インタラクション（例えば触覚インタフェースとユーザの指との接触点によって表されるインタラクションなど）によって操作されるとき、固定されていると考えることができる。しかしながら、この場合、ノードは、解法システムがそれを移動させることを許されていないと言う意味で固定されているだけである。したがって、ノードの移動は外部インタラクションによって管理することができる。
【数９】
0006266873.tif 000010
【００３３】
ここで、gij(t)は、所定の時刻におけるジェスチャーの一部として生成されたノードの位置である。
【００３４】
本明細書に開示した装置、システム及び方法を使用して考察された一つの例示的なシミュレーション環境は、仮想のPantone(商標) Textile標準カード(X-Rite, Inc.; Grand Rapids, MI)である。Pantone(商標) Textileカードでは、素材（例えば布地）は、素材を平らにする白いカード状の裏当ての上端に沿って取り付けられる。例示的な実施形態では、仮想のカード状の裏当ては、平面制約を使用して実装することができる。この場合、ノードは、簡単な状況評価により、平面を横切ることから回避することができる。制約は指向的であり、一般に、重力とは反対方向に実装することができる。例えば、重力がZ軸に沿って負の方向に指定されている場合、平面制約に必要なすべてはZ軸成分でのチェック
【数１０】
0006266873.tif 000011
【００３５】
である。ここで、
【数１１】
0006266873.tif 000012
【００３６】
は、中間ノード位置であり、最初に計算されたpij(t)の次の位置である。cは平面のz値である。
【００３７】
上述したように、ベルレ積分は、ばねを力の発生器(素材に運動量を与える発生器)として扱うよりは、むしろ、ばねを制約として扱うことに応える。ここでは、ばねの理想的な長さ(又は静止長)が知られている構造ばねを考える。最初に、ノードが、それらの上に働く外力に応答して移動する(又は、固定のインタラクション制約によって移動する)。ばねによって生成された力を考えるよりむしろ、ばねは二つのノードpij及びpklを移動させてばねの理想的な長さに一致させるものとして扱うことができる。したがって、例えば、複数のノードのうちの一つが固定されている場合、すべての移動は、固定されていない（free）ノードに適用することができる。移動は、ばねの軸に適用することができ、例示的な実施形態では、移動は２つの中間ノード位置の間のベクトルとして定義することができる。
【００３８】
例示的な実施形態では、構造ばねは以下の関数に従ってノード位置を修正することができる。
【数１２】
0006266873.tif 000013
【００３９】
なお、上記の式は対称であり、基本的に新しいばねの長さとばねの軸に沿った静止長との間の差分を分割し、例えば差分の半分を各対応するノードに加算(又は負の場合は減算)する。例えば図3を参照のこと。他の実施形態では、式は非対称である。剪断ばねは、構造ばねと同様に扱うことができる。
【００４０】
同様のやり方で屈曲ばねに対処することも可能であるが、距離を維持する簡単な実装形態は問題を引き起こす可能性がある。例示的な実施形態では、ばねは一貫した順序で評価され、一部の点が複数回(場合によりさまざまな方向に)移動したとしても、システムは非常に迅速に安定する。したがって、屈曲ばねが長さを保存する方式で実装された場合、素材が曲がると(例えば、ユーザの外的なインタラクションによって曲がると)、屈曲ばねは構造ばねの伸長を引き起こす(すなわち、屈曲ばねは曲がりに関係なくノードを押し開く)。例えば、図4aを参照のこと。
【００４１】
例示的な実施形態では、最初に構造ばねが評価され、次いで剪断ばね、次いで屈曲ばねが評価される。したがって、屈曲ばねが構造ばね及び剪断ばね用の計算された安定状態を修正することを許すと、システムを不安定にする可能性がある。さらに、通常、屈曲は伸長よりも受け入れやすい。したがって、通常、屈曲ばねは剛性ではない。
【００４２】
図4bに示した例示的な実施形態では、屈曲ばねは、近傍の構造ばねの間の角度を保存するように機能することができる。図4bに示したように、屈曲ばねは、pij及びpklに取り付けることができる。ここで、pmnはノード間の位置である。rmnはベクトル
【数１３】
0006266873.tif 000014
【００４３】
への
【数１４】
0006266873.tif 000015
【００４４】
の投影として定義することができる。
【数１５】
0006266873.tif 000016
【００４５】
次いで、オフセットnは以下のように定義することができる。
【数１６】
0006266873.tif 000017
【００４６】
なお、nの長さは、元の投影ベクトルの二乗である。これは、制約の影響を一部自動的に減少させ、それによって布が曲がることができる。この因子は素材の剛性を制御する。
【００４７】
上記モデルを使用して、新しい点は
【数１７】
0006266873.tif 000018
【００４８】
になる。
【００４９】
pij又はpklがどちらも固定されていない場合、オフセットの半分又はある他の比率は、各外側のノードに適用することができる。pij又はpklが固定されている場合、すべてのオフセットは固定されていないノードに適用することができる。pmnが固定されている場合、すべてのオフセットは外側のノードのどちらにも適用することができる。最後に、外側のノードがどちらも固定されている場合、すべてのオフセットはpmnに適用することができる。
【００５０】
本明細書に提示した反復型質量ばねモデルは故意に簡単にしたが、衝突の検出及び解決は、現実のインタラクティブな経験に必要であり得る。例示的な実施形態では、好都合にも、楕円体との衝突及び自身との交差の少なくとも二つの衝突タイプに対処することができる。なお、平面との衝突は、平面制約として扱うことができる。
【００５１】
楕円体との衝突検出の一つの利点は、衝突を分析的に扱うことである。中心タプル
【数１８】
0006266873.tif 000019
【００５２】
、三つの回転角度
【数１９】
0006266873.tif 000020
【００５３】
、及び三つの倍率
【数２０】
0006266873.tif 000021
【００５４】
を定義することにより、楕円体用のパラメータが提供される。次いで、球体は、これらのパラメータを使用して一般化された楕円体に変換される(例えば図5の楕円体を参照)。実際には、楕円への投影を実行するよりむしろ、パラメータを使用して問題になっている点を球面空間に変換し、次いで球体の外側を投影する方が簡単であり得る。
【００５５】
楕円体との衝突検出の核心は、楕円体についての放射投影点と最接近外点の間に違いがあり得ることである(例えば図6を参照)。これは大きな偏心及び大きな貫通についての問題である。小さな貫通の場合、この違いは無視でき、大きな貫通の場合、次のステップを使用して問題を修正することができる。一般に、偏心は、指先のインタラクションの中で見られる通りであり、そこでは、一つの方向がその他二つの方向より長い(ユーザのインタラクションが指先に関係するので、楕円体の形は適切である)。
【００５６】
ユーザが触覚インタフェースを使用して仮想素材とインタラクトすると、素材は接触で移動するように強制される。最も簡単な実装形態は、仮想素材の網に対して指のノードを固定することを含む。この場合、いくつかのノードは固定されて方位の問題に対処する必要がある。これらのノードが離れすぎている場合、指から離れた素材の中で不自然な変形が起こる。それらが不規則に間隔を空けている場合、再度、不自然な結果が起こる。一つの解決策は、システムの中のノードの密度を高めることである。しかしながら、これは性能に悪い影響を及ぼす可能性もある。
【００５７】
好都合にも、別の解決策は、ほとんど又は全く不自然な結果を伴わない自然なインタラクションを可能にしながら、ノードの密度を低く保つ。この解決策は、衝突検出で、指先を細長い楕円として表現することを含む。指先は常に素材の表面から垂直に方向づけられており、かつ、素材の表面から少し上にあり、平面制約との衝突を避けることができる。このインタラクションは、以前に定義した一組の制約によって実装することができる。ユーザは素材に任意の点で触れることができるので、必ずしも単独のノード(実際にはまれ)である必要がない。図7に描写したように、二つの固定された指のノードpf1及びpf2は、接触点の近くで、水平方向にある小さなデルタhの間隔を空けて、実際の接触点ptから離れて作成することができる。これらのノードは、ユーザがシステムとインタラクトするときの指の位置に追随する。また、新しい構造ばねは、接触点から離れたある特定の距離d内のすべてのノードについて作成することができる。
【００５８】
ユーザがシステムとインタラクトするとき、指のノードは移動することができ、素材は指に沿って移動させられる。指に関連する少なくとも二つの点があるので、指の下の素材の方位は、指の方位に対してある程度固定されたままになる(なお、一部の実施形態では、移動によって十分なねじり力が素材上に及ぼされた場合、方位は少し移動するように構成され得る)。
【００５９】
自身との交差の扱いは、しばしば、素材シミュレーションの最も困難で高価な態様である。残念ながら、布地及び布などの素材は薄く簡単に変形され/折り畳まれるので、自身との交差を把握することは現実感を保つために非常に重要であり得る。力の衝突の強引な検出はo(n2)問題である。素材は行及び列のノードに沿って三角形にされる。次いで、すべての三角形は他のすべての三角形と比較されて、交差があるかどうか判定しなければならない。交差がない場合でも、三角形が布の誤った側にあり、他方の側に移動すべきかどうか判定する必要がある。
【００６０】
この処理をより効率的にするのに利用できるいくつかの技法がある。最初に、軸平行バウンディングボックスツリー(AABB: axis-aligned bounding box tree)と呼ばれる高速分割構造を利用することができる。この構造は簡単で保守しやすい。他の実現可能な実装形態は、有向バウンディングボックスツリー(OBB: oriented bounding box tree)及びクワッドツリー(quad-trees)を含む。AABBツリーは更新についてo(log(n))であり、評価についてo(nlog(n))である。加えて、交差しないと知られている頂点のチェックを避けるために、近傍についての仮定をすることができる。具体的には、例えばお互いの二つの行又は列の中の頂点をもつ三角形は省略することができ、ばねの制約がそれらを交差することから防ぐことが知られている。しかしながら、これらの三角形は、他の交差のためにツリーの中に含まれる必要があり得る。
【００６１】
三角形が潜在的な交差として識別されると、標準の三角形対三角形の交差ルーチンは、交差のタイプを判定し、どのように交差を修正するかについての情報を提供するために使用することができる。最も一般的な修正アルゴリズムは、素材のまわりの反発力を使用して頂点を正しい側に押し戻す。この方法には問題がある可能性がある。例えば、交差しないが布の他方の側に完全に移動した三角形は、戻ることに抵抗する。また、実装形態に応じて、交差を防ぐには、力が、ノードを十分遠くに移動させるのに不十分である場合、その三角形が交差するコンテンツになり、もはや試されない。
【００６２】
例示的な実施形態では、潜在的な境界ボックス衝突が識別されるが、三角形の交差/修正は速度の理由で実行されない。これは、起こり得る自身との交差を制限する素材の剛性及びばねの制約に起因して受け入れることができる。実験的な実装形態では、この技法を使用すると、時に不自然な結果が観察されるに過ぎなかった。
【００６３】
上記に列挙したシミュレーションのさまざまな構成要素は、例えばインタラクションのフレームレートだけ起動される反復型処理の一部になり得る。図8に描写したように、例示的な反復型処理800は、外力の印加(例えば触覚インタフェースとのユーザのインタラクションによる印加)810、オイラーの方程式の積分820、及び制約の解消(例えばベルレ積分の使用)830、自身との交差の修正840、及び衝突の検出/修復(例えば不自然な結果の削除/軽減)850、速度のリセット(例えば次の繰り返しのため)860、及び幾何形状の更新(例えば次の繰り返しだけでなく表示目的のための)870を含むことができる。
【００６４】
上述したように、ばね及びノードの網は、本開示による素材シミュレーションの背後にある仕組みを提供することができる。仮想素材の視覚化は、仮想ディスプレイと互換性がある、関連する幾何形状を必要とする。通常、ノードの格子は三角形のメッシュの中の格子の頂点を兼ねる。残念ながら、ノードの数が増えるにつれて、素材の仕組みの性能は下がる。しかしながら、幾何形状の中のノードが少なすぎる場合、メッシュの中の三角形がはっきりと見え、気が散るもととなる。したがって、課題は、不自然な結果見せることなく仕組みを高速に保つことである。
【００６５】
一つの解決策は、B-スプライン曲面の制御点に対応する、ばねで構成されるメッシュのノードをもつことである。メッシュの頂点は、高精細化[レーン(Lane)1980]として知られている処理によるB-スプラインベースの機能に基づいた制御点の直線的な連結であり得る。通常、均一な結び目構成は表面の端部の近くに細長い点を作る(例えば図9aを参照)。均一サイズの三角形をもつメッシュを作るためには、均一でない結び目が使用される(図9bを参照)。方程式の注意深い分析は、任意の所定の格子構成用の閉形式解を生むために使用することができるが、結び目の位置は、簡潔性及び柔軟性の二分探索によって決定することができる。例示的な実施形態では、四次オーダーC3テンソル積のB-スプラインは、表面が両方向のその曲率において連続であるように使用することができる。格子は、OpenGLグラフィックスエンジンによって効果的に使用することができる(且つDirectXなどの他の標準グラフィックスエンジンに適用される)三角形のストリップに分割することができる。仕組みと幾何形状は独立しているので、高精細化のレベルは、ディスプレイの解像度及び/又はグラフィックスカードの速度のために最適化することができる。一部のモバイル装置の場合、最初の11x11点のグリッドは41x41点に高精細化することができる(例えば、図10参照)。
【００６６】
シミュレーション経験の別の態様は素材の外観に関する。実際には、三角形のメッシュは、各ピクセルの照明（lighting）情報が決定されるグラフィックスエンジンに送信することができる。例示的なレンダリング処理1100を図11に示す。一般に、モバイルレンダリングプラットフォームのハードウェア構成部品は、デスクトップ上のそれらに非常に似たふるまいをする。最も大きな違いは、提供されたAPIコールの多様性及びレンダリングが行われる速度である。幾何形状がグラフィックスエンジンに送信された後、グラフィックスエンジンのピクセル処理は、プログラム可能な頂点プロセッサ1110及び断片プロセッサ1130によってカスタマイズすることができる。プログラム可能な頂点プロセッサ1110、又は頂点シェーダ(shader)の実装はかなり単純明快である。その主な機能は、ピクセル座標、法線、接線、従法線、視点、光線及び視線のベクトルをスクリーン空間に変換することである。次いで、これらの値はラスタ化及び補間フェーズ1120の中で補間され、プログラム可能な断片プロセッサ1130又はピクセルシェーダ(shader)に送信される。ピクセルシェーダは素材の外見を実装する。素材はシミュレートされる素材のタイプに応じた外見を有する。例えば、外見は以下の構成要素のうちの一つ又は複数の組合せから生成することができる。
【００６７】
1)双方向テクスチャ関数(BTF)
2)双方向反射分布関数(BRDF)
3)テクスチャ
4)拡散色
5)鏡面反射色
6)法線マップ
7)ランダムノイズマップ
上記の構成要素は、現実性を表現するのに利用できる視覚モデルのデータ及び/又は能力に従って選択することができる。仮想素材用のいくつかの例示的なプロトタイプが開発/試験された。
【００６８】
第一の例示的なプロトタイプは、X-Rite, Inc. (Grand Rapids, MI)によって製作されたPantone(商標) Textileの標準セットの中で使用された、シンプルなPantone(商標)の綿織物に基づいている。素材は、インチあたり約75スレッドで非常にしっかりしていて、色及びテクスチャが非常に均一な織物である。通常、サンプルの作成は、見えるしわを取り除くための布地の引き伸ばし及び蒸気処理(steaming)を含む。布地のサンプルは、ギザギザの(pinked)側縁部をもつカードの上部に折り重ねられ取り付けられる。シミュレーションは、例えば固定の制約(fixed constraints)を使用して仮想の布地をディスプレイの「上部」に取り付けることによって(詳細に述べると、二つの行は、布地が屈曲に抵抗するように、取り付けられたところに固定することができる)、この布地の表現を模倣する。仮想素材はギザギザの「側」縁部で提示することができる。
【００６９】
そのようなプロトタイプシステムにおける布地のレンダリングはかなり簡単である。各ピクセルは、ライティング方向への標準拡散ランバート反応を使用して、環境から拡散ライティングを決定し、次いで、布の(評価を介して提供され、ユーザによって選択された)アルベド色を掛けて、さらに、繊維布地の変形形態を提供するテクスチャマップを掛けられる。繊維のテクスチャは50%グレーでバランスを取り、全知覚明度を修正しないようにネット0の積分で色を調整する。
【００７０】
第二の、より進歩したプロトタイプは、RIT's Munsell Color Labを介して取得されたデータを使用して開発された。データは、表面の法線のテクスチャマップ、及び、Wardモデルとして知られているBRDFモデルを駆動するための一組のパラメータを含むことができる。この種類では、ランバート及び反射ローブ反応は、Wardパラメータに統合することができる。特定の点での表面の法線は、法線マップの中の位置にアクセスすることによって決定することができる。次いで、Wardパラメータは、拡散に加えて反射ローブの影響を決定することができる。結果として生じた色は、再びテクスチャマップによって調整することができる。或いは、テクスチャマップは、法線マップがシェーディングを提供するところでは、省略することができる。一部の実施形態では、テクスチャマップは、テクスチャマップの調整タイプの代わりにWardモデル用のアルベドを決定することができる。第二のプロトタイプを使用して、いくつかの異なる現象学的BRDFモデルが実装され、性能及びルックアンドフィールについて調査されて良い結果が得られた。
【００７１】
本開示による第三のプロトタイプの実装は、モバイル装置上の汎用BTFに関係する。例示的な実施形態では、この実装は、例えばボン大学で開発されたフォーマットなどの圧縮BTFフォーマットを利用する(ボン大学のフォーマットは、さまざまなリアルタイム及びオフラインのグラフィックスエンジンの中に実装されていて、出願人はモバイル装置用のそれを使用して調査している)。
【００７２】
また、インタラクションは、素材シミュレーション経験の中で重要な役を演ずる。例示的な実施形態では、インタラクションは、二つのタイプのハードウェアである、触覚インタフェース（例えば接触可能なスクリーン）及び一つ又は複数の方位センサ（例えば統合型加速度計）を使用する。実際の一片の素材とのインタラクションは、通常、素材を扱うことに関係する。色及びテクスチャの視覚的な手がかりに加えて、布地の機械的な折り畳み、その感触、及びその重さはすべて、ユーザにあらゆる意味で素材を提供するために結合する構成要素である。残念ながら、布地の感触及び重さはディスプレイを使用して簡単に伝えられない。しかしながら、色、テクスチャ及び仕組みは視覚化することができる。
【００７３】
布地を扱うために、ユーザは触覚インタフェースに触れる、例えば、表示された素材のイメージに基づいてタッチ可能スクリーンに触れる。ユーザが触覚インタフェースを横切ってドラッグすると、布地はスクリーンに対するその元の方位を維持しながら、タッチに追随する。例示的な実施形態では、素材はディスプレイの「上」端部に(布地がPantone(商標) Textileの標準カード上に取り付けられた方法と同様に)取り付けられ、素材はそのような制約によって規定された仕組みに従って変形するので、移動したときに素材が折り重なる方法をシミュレートする(図12aを参照)。例示的な実施形態では、ユーザは、いくつかの指を使用して(一実装形態では5本が可能だが、実際には2本又は3本だけの指が使いやすい)素材を扱い、例えば素材をつまんで、リアルタイムで指の間に素材を折り畳む(図12bを参照)。このタイプのインタラクションはきわめてもっともらしく、素材の性状についての重要な情報をユーザに伝える。例えば素材の物理的な性状/特徴に基づいて屈曲重量を変更することによって、素材の柔軟性を制御することができる。例示的な実施形態では、ユーザのタッチスクリーンとのインタラクションは、同時に複数の表示された仮想素材を扱って、例えば、それらの間の比較を容易にすることができる。
【００７４】
例示的な実施形態では、仮想素材の色及び外観は、主要な照明（lighting）の方向によって大きく影響を受ける可能性がある。拡散する(又は、より詳細には反射しない)布地のような素材の場合、それらが見られる全体環境はあまり重要ではない。一部の実施形態では、主要な照明（lighting）の方向は装置の上でまっすぐであると仮定することができる。他の実施形態では、検出器は主要なライティングの方向を判定するために使用することができる。一部の実施形態では、ユーザは光に対して45度の角度で装置を見ているように仮定することができる(図13を参照)。加速度計は、例えば光に対する装置の方位を与えることができる。したがって、ユーザの光源に対する視野角は、装置の方位に基づいて計算することができる。例えば、一部の実施形態では、ユーザは表示面に対して固定された角度で、例えば表示面に対して直角に装置を見ていると仮定することができる。他の実施形態では、例えば(スクリーンに対して)前向きのカメラを使用した眼球/顔面追跡は、表示面に対するユーザの視野角を取得するために使用することができる。また、GPS及び時刻のデータは統合されて、太陽などの移動する光源についてのデータを提供することができる。上記技法を使用して、相対的な照明（lighting）方向についてのリアルタイム情報を素材のレンダリング用に適切に提供することができる。照明（lighting）は、素材が屈曲/折り重なるときの色及びシェーディング(shading)に重要である。
【００７５】
本明細書に提示した装置、システム及び方法が、一つ若しくは複数のコンピュータ可読媒体、RAM、ROM、ハードドライブ、及び/又はハードウェア上で保持された実行可能命令と関連する、一つ若しくは複数のプログラム可能処理装置を含むことは、明確に検討される。例示的な実施形態では、例えば、既存のインフラ(例えば、既存のデバイス/処理装置)とともに使用するためのアップグレードモジュールとして、ハードウェア、ファームウェア及び/又は実行可能コードを提供することができる。ハードウェアは、例えば、本明細書において教示した実施形態をコンピューティング処理として実行するための構成部品及び/又は論理回路を含むことができる。
【００７６】
処理されたデータを伝える、例えば仮想の布地を表示するディスプレイ及び/又は他のフィードバック手段も含むことができる。ディスプレイ及び/若しくは他のフィードバック手段はスタンドアロンであり得るか、又は処理装置の一つ若しくは複数の構成部品/モジュールとして含むことができる。例示的な実施形態では、ディスプレイ及び/又は他のフィードバック手段は、触覚インタフェースを通じ、ユーザが表示された仮想素材とのインタラクションを容易にするために使用することができる。一部の実施形態では、ディスプレイ及び/又は他のフィードバック手段は、ディスプレイと触覚インタフェースのどちらとしても機能するタッチスクリーンを含む。触覚インタフェースはマルチタッチ能力をもつことができる。
【００７７】
本実施形態の一部を実装するために使用することができる、実際のソフトウェアコード又は制御ハードウェアは、そのような実施形態の範囲を限定するものではない。例えば、本明細書に記載した実施形態のある特定の態様は、例えば従来の、又はオブジェクト指向のプログラミング技法を使用した、例えばアセンブリコード、C、C#又はC++などの任意の適切なプログラミング言語のタイプを使用して、コードの中に実装することができる。そのようなコードは、例えば磁気式又は光学式の記憶媒体などの、任意のタイプの適切な持続性コンピュータ可読の媒体若しくは複数の媒体に格納又は保持することができる。
【００７８】
本明細書では、「プロセッサ」、「処理装置」、「コンピュータ」又は「コンピュータシステム」は、例えば、無線又は有線のさまざまなマイクロコンピュータ、ミニコンピュータ、サーバ、メインフレーム、ラップトップ、携帯情報端末(PDA)、無線電子メール装置(例えば、「ブラックベリー」、「アンドロイド」若しくは「アップル」の商標指定された装置)、携帯電話、ポケベル、プロセッサ、ファックスマシン、スキャナ、又はその他のプログラム可能装置であり得る。本明細書に開示したコンピュータシステムは、データを取得、処理、及び通信するときに使用される、ある特定のソフトウェアアプリケーションを格納するためのメモリを含むことができる。そのようなメモリは、開示した実施形態の内部にあるか、又は外部にある場合があることを理解することができる。また、メモリは、ハードディスク、光ディスク、フロッピディスク、ROM(リードオンリメモリ)、RAM(ランダムアクセスメモリ)、PROM(プログラマブルROM)、EEPROM(電気的消去可能PROM)、フラッシュメモリの記憶装置などを含む、ソフトウェアを格納するための持続性記憶媒体を含むことができる。
【００７９】
ここで図14を参照すると、例示的な実施形態を実践するのに適切な、例示的なコンピューティング環境が描写される。環境は、例示的な実施形態を実装するための一つ若しくは複数のコンピュータ実行可能命令又はコードを格納するための一つ若しくは複数の媒体を含む、コンピューティング装置102を含むことができる。例えば、コンピューティング装置102の中に含まれたメモリ106は、コンピュータ実行可能命令又はソフトウェア、例えば、処理アプリケーション120を格納することができる。
【００８０】
また、コンピューティング装置102は、通常、メモリ106の中に格納されたソフトウェア、及びシステムハードウェアを制御するための他のプログラムを実行するための、プロセッサ104及び/又は一つ若しくは複数のプロセッサ104'を含む。プロセッサ104及び複数のプロセッサ104'は、それぞれシングルコアプロセッサ又はマルチコアプロセッサ(105及び105')であり得る。コンピューティング装置の中のインフラ及びリソースを動的に共有することができるように、仮想化はコンピューティング装置102の中で採用することができる。また、仮想化されたプロセッサは、記憶装置108の中のアプリケーション120及び他のソフトウェアで使用することができる。仮想マシン103は複数のプロセッサ上で走る処理を扱うように提供することができ、その結果、処理は、複数のコンピューティングリソースよりもむしろ一つのコンピューティングリソースを使用しているように見える。また、複数の仮想マシンは一つのプロセッサで使用することができる。フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、グラフィックス処理装置(GPU)、及び汎用プロセッサ(GPP)などの、他のコンピューティングリソースも、コード及び/又はソフトウェアを実行するために使用することができる。ASIC、FPGAなどの中に実装されたハードウェアアクセラレータ119は、さらに、コンピューティング装置102の全体の処理速度を上げるために使用することができる。
【００８１】
メモリ106には、コンピュータシステムメモリ、又はDRAM、SRAM、EDO RAMなどのランダムアクセスメモリが含まれ得る。メモリ106には、他のタイプのメモリ、又はその組合せが含まれ得る。ユーザは、一つ又は複数のユーザインタフェース115を表示することができる、モバイル装置のディスプレイなどの画像表示装置114を介してコンピューティング装置102とインタラクトすることができる。ま
た、画像表示装置114は、例示的な実施形態の他の態様又は構成要素、例えば、粒子特性用の調整された測定値を表示することができる。コンピューティング装置102は、ユーザからの入力を受信するためのマルチポイントタッチインタフェース110及びポインティングデバイス112などの、他のI/O装置を含むことができる。マルチポイントタッチインタフェース110及びポインティングデバイス112は、画像表示装置114と動作的に関連するか、又は一体であり得る。コンピューティング装置102は他の適切なI/O周辺装置を含むことができる。さらに、コンピューティング装置102は、オペレーティングシステム116並びに他のプログラム、例えば、素材の変形特性のモデル化及び素材との物理的なインタラクションの仮想表現の生成のためのコンピュータ実行命令を含むプログラム120を格納するための、ハードドライブ、CD-ROMなどの記憶装置108、又は他の記憶媒体を含むことができる。
【００８２】
コンピューティング装置102は、標準電話線、ローカルエリアネットワーク(LAN)若しくはワイドエリアネットワーク(WAN)のリンク(例えば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN、フレームリレー、ATM)、無線接続、コントローラエリアネットワーク(CAN)、又は上記の一部若しくは全部の組合せのいくつかを含むが、それらに限定されないさまざまな接続を介して、LAN、WAN又はインターネットとインタフェースする、ネットワークインタフェース118を含むことができる。ネットワークインタフェース118には、ビルトインネットワークアダプタ、ネットワークインタフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、又は、コンピューティング装置102を通信可能な任意のタイプのネットワークにインタフェースし、本明細書に記載した動作を実行するための適切なその他の装置が含まれ得る。さらに、コンピューティング装置102は、ワークステーション、デスクトップコンピュータ、サーバ、ラップトップ、ハンドヘルドコンピュータ、又は、通信能力をもち、本明細書に記載した動作を実行するのに十分なプロセッサ能力及びメモリ容量へのアクセスを有する、コンピューティング装置若しくは遠隔通信装置の他の形態などの、任意のコンピュータシステムであり得る。
【００８３】
コンピューティング装置102は、任意のバージョンのMicrosoft(登録商標) Windows(登録商標)オペレーティングシステム、さまざまなリリースのUnix及びLinuxオペレーティングシステム、任意のバージョンのMacintoshコンピュータ用MacOS(登録商標)、任意の組込み型オペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意のプロプラエタリオペレーティングシステム、任意のモバイルコンピューティング装置用オペレーティングシステム、又は、コンピューティング装置上で実行可能であり、明細書に記載した動作を実行可能なその他のオペレーティングシステムなどの、任意のオペレーティングシステムを実行することができる。オペレーティングシステムは、ネイティブモード又はエミュレートモードで実行することができる。
【００８４】
本明細書における教示を例示的な実施形態及びその実装形態を参照して記載したが、開示した装置、システム及び方法は、そのような例示的な実施形態/実装形態に限定されない。むしろ、本明細書において教示した説明から当業者には容易に明白であるように、開示した装置、システム及び方法は、本明細書の趣旨又は範囲から逸脱することなく、修正、変更及び拡張を受け入れることができる。したがって、本明細書の範囲内のすべてのそのような修正、変更及び拡張は本明細書に包含される。
【図１】
0006266873.tif 000022
【図２】
0006266873.tif 000023
【図３】
0006266873.tif 000024
【図４】
0006266873.tif 000025
【図５】
0006266873.tif 000026
【図６】
0006266873.tif 000027
【図７】
0006266873.tif 000028
【図８】
0006266873.tif 000029
【図９】
0006266873.tif 000030
【図１０】
0006266873.tif 000031
【図１１】
0006266873.tif 000032
【図１２】
0006266873.tif 000033
【図１３】
0006266873.tif 000034
【図１４】
0006266873.tif 000035