(57)【要約】  ３Ｄ面上に配置された２Ｄコンテンツとのインタラクションを可能にする様々な技術および技法が開示される。システムは、３Ｄ面に関して入力装置がどこに配置されているか判定する。入力装置が３Ｄ面をヒットしている場合は、２Ｄ内の隠されたコンテンツは、３Ｄ面上のヒットされたエリアを表す点が２Ｄ内の隠されたコンテンツ上の対応する点と一列に並ぶように配置される。例えば、入力装置がシーン内の位置で検出されときに入力装置の位置を求める要求が受信された場合は、３Ｄ面が２次元に投影される。投影された３Ｄ面上の入力装置の２Ｄ位置への最近点が算出される。最近点は、隠されたコンテンツを３Ｄ面の対応する点と共に配置する際に使用されるために、それに応答して、提供される。
2010511228.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読媒体であって、
３Ｄ面に関して入力装置がどこに配置されているか判定することと、
前記入力装置が前記３Ｄ面をヒットしている場合は、２Ｄ内の隠されたコンテンツを、前記３Ｄ面上のヒットされたエリアを表す点が２Ｄ内の前記隠されたコンテンツ上の対応する点と一列に並ぶように配置することと
を備えるステップをコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項２】
前記入力装置が前記３Ｄ面をヒットしなかった場合は、前記隠されたコンテンツを非アクティブにすること
を備えるステップをコンピュータに実行させるためのコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記３Ｄ面に関して前記入力装置がどこに配置されるか判定する前に前記隠されたコンテンツを更新する必要があると判定すること
を備えるステップをコンピュータに実行させるためのコンピュータ実行可能命令をさらに有することを特徴とする請求項１に記載のコンピュータ可読媒体。
【請求項４】
３Ｄ面に関して入力装置の位置を提供するための方法であって、
シーン内の位置で入力装置が検出された場合、入力装置の位置を求める要求を受信するステップと、
３Ｄ面を前記シーン内の２次元に投影するステップと、
前記投影された３Ｄ面上の前記入力装置の２Ｄ位置への最近点を算出するステップと、
前記要求に応答して前記最近点を返すステップと
を備えることを特徴とする方法。
【請求項５】
前記入力装置はマウスであることを特徴とする請求項４に記載の方法。
【請求項６】
前記入力装置はスタイラスであることを特徴とする請求項４に記載の方法。
【請求項７】
前記要求は領域から受信されることを特徴とする請求項４に記載の方法。
【請求項８】
前記領域は任意の３Ｄ幾何学的形状であることを特徴とする請求項７に記載の方法。
【請求項９】
請求項４に記載のステップをコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１０】
３Ｄ面上に配置された２Ｄコンテンツとのインタラクションを可能にするための方法であって、
３Ｄシーンにある２Ｄ内の隠されたコンテンツが更新される必要があると判定するステップと、
前記３Ｄシーン内の前記入力装置の位置を判定するステップと、
前記３Ｄシーン内の３Ｄ面がキャプチャを有しない場合は、前記入力装置が前記３Ｄシーン内の前記３Ｄ面をヒットしたかどうか判定し、前記入力装置が前記３Ｄ面をヒットした場合は、３Ｄ三角形上のテクスチャ座標を使用して、２Ｄ内の前記隠されたコンテンツ上の複数の点のうちのどの点がヒットされたか判定し、前記隠されたコンテンツを、前記隠されたコンテンツが前記３Ｄ面上の対応する点と一列に並ぶような位置に移動するステップと
を備えることを特徴とする方法。
【請求項１１】
前記３Ｄシーン内の前記３Ｄ面がキャプチャを有する場合は、前記入力装置がキャプチャコンテンツを有する前記３Ｄ面をヒットしたかどうか判定するステップ
をさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記３Ｄシーン内の前記３Ｄ面がキャプチャを有する場合であって、前記入力装置が前記キャプチャコンテンツを有する前記３Ｄ面をヒットしたと判定された場合は、前記３Ｄ三角形上のテクスチャ座標を使用して、２Ｄ内の前記隠されたコンテンツ上の複数の点のうちのどの点がヒットされたか判定し、前記隠されたコンテンツを、前記隠されたコンテンツが前記３Ｄ面上の前記対応する点と一列に並ぶような前記位置に移動するステップ
をさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記３Ｄシーン内の前記３Ｄ面がキャプチャを有する場合で、前記入力装置が前記キャプチャコンテンツを有する前記３Ｄ面をヒットしなかったと判定された場合は、前記キャプチャコンテンツの前記境界を算出し、前記境界上の前記入力装置の前記位置への最近点を見つけ、前記最近点を前記入力装置の前記位置の下の前記境界上に配置するステップ
をさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１４】
前記隠されたコンテンツは前記入力装置からのオンムーブイベント（on move event）の発生時に更新される必要があると判定されることを特徴とする請求項１０に記載の方法。
【請求項１５】
前記入力装置はマウスであることを特徴とする請求項１０に記載の方法。
【請求項１６】
前記入力装置はスタイラスであることを特徴とする請求項１０に記載の方法。
【請求項１７】
前記隠されたコンテンツを更新する前記必要は、領域から前記入力装置の前記位置を求める要求を受信したときに判定されることを特徴とする請求項１０に記載の方法。
【請求項１８】
前記領域は任意の３Ｄ幾何学的形状であることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記３Ｄシーン内の前記３Ｄ面がキャプチャを有しない場合であって、前記入力装置が前記３Ｄシーン内の前記３Ｄ面をヒットしなかったと判定された場合は、前記隠されたコンテンツを前記入力装置の前記位置から離すステップ
をさらに備えることを特徴とする請求項１０に記載の方法。
【請求項２０】
請求項１０に記載のステップをコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
２次元（２Ｄ）環境では、システムは、アクティビティ（activity）のＸおよびＹ座標を判定するだけで、ユーザがどのエリアを選択したか、またはそうでなければどのエリアとインタラクトしているか知ることができる。しかし、３次元（３Ｄ）の世界では、３Ｄ面上のインタラクティブな２Ｄ要素に関するＸ／Ｙ座標を見つけることは必ずしも簡単ではない。例えば、ユーザインターフェースなどの２Ｄ対象物は、球体などの３Ｄ面上に配置されることができる。そのような２Ｄ対象物が３Ｄ面上に配置されている場合、現在３Ｄ内に投影されている２Ｄ対象物とのユーザのインタラクションを処理することは難しい。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
３Ｄ面上に配置された２Ｄコンテンツとのインタラクションを可能にする様々な技術および技法が開示される。システムは、３Ｄ面に関して入力装置がどこに配置されているか判定する。入力装置が３Ｄ面をヒットしている場合は、２Ｄ内の隠されたコンテンツは、３Ｄ面上のヒットされたエリアを表す点が２Ｄ内の隠されたコンテンツ上の対応する点と一列に並ぶように配置される。一実施形態では、インタラクティブな２Ｄ要素の境界の上方にない入力装置がシーン内の位置で検出された場合、入力装置の位置を求める要求が受信されると、３Ｄ面は２次元に投影される。投影された３Ｄ面上の入力装置の２Ｄ位置への最近点（closest point）が算出される。最近点は、隠されたコンテンツを３Ｄ面の対応する点と共に配置する際に使用されるために、それに応答して、提供される。
【課題を解決するための手段】
【０００３】
一実施形態では、特定の３Ｄ面がキャプチャ（capture）を有するか有しないかによって様々なプロセスが引き続いて実行される。例えば、３Ｄシーン内の３Ｄ面がキャプチャを有しない場合で、入力装置が３Ｄ面をヒットした場合は、２Ｄ内の隠されたコンテンツ上のどの点がヒットされたか判定するために３Ｄ三角形上でテクスチャ座標（texture coordinates）が使用される。次いで、隠されたコンテンツは、隠されたコンテンツが３Ｄ面上の対応する点と一列に並ぶような位置に移動される。同様に、３Ｄシーン（scene）内の３Ｄ面がキャプチャを有する場合で、入力装置がキャプチャコンテンツを有する３Ｄ面をヒットしたと判定された場合は、前述のテクスチャ座標およびプロセスを使用して隠されたコンテンツを一列に並べる。
【０００４】
他の実施形態では、３Ｄシーン内の３Ｄ面がキャプチャを有する場合で、入力装置がキャプチャコンテンツを有する３Ｄ面をヒットしなかったと判定された場合は、システムは、キャプチャコンテンツの境界を算出し、境界上の入力装置の位置への最近点を見つけ、境界上の最近点を入力装置の位置の下に配置する。
【０００５】
本概要は、以下の「発明を実施するための形態（Detailed Description）」でさらに詳細に説明されている概念の抜粋を簡略化された形で紹介するために提供された。本概要は、クレーム主題の主要な特徴または本質的な特徴を識別することを意図するものではなく、クレーム主題の範囲を判定するのに支援として使用されることを意図するものでもない。
【図面の簡単な説明】
【０００６】
【図１】一実施形態のコンピュータシステムの概略図である。
【図２】図１のコンピュータシステム上で動作する一実施形態のインタラクティブな３Ｄアプリケーションの概略図である。
【図３】図１のシステムの一実施形態のためのハイレベルプロセス（high-level process）の流れ図である。
【図４】入力装置の位置に３Ｄ対象物を提供することに関係する段階を例示する、図１のシステムの一実施形態のためのプロセスの流れ図である。
【図５】３Ｄ面に配置された２Ｄコンテンツとのインタラクションを可能にすることに関係するさらに詳細な段階を例示する、図１のシステムの一実施形態のためのプロセスの流れ図である。
【図６】キャプチャがない場合の隠されたコンテンツの２Ｄ表現を例示する、図１のシステムの実施形態のためのシミュレートされた画像である。
【図７】キャプチャがない場合の隠されたコンテンツとインタラクトする３Ｄ面を例示する、図１のシステムの一実施形態のシミュレートされた画像である。
【図８】キャプチャがない場合の３Ｄ面でオーバレイされる２Ｄ表現を例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【図９】キャプチャがある場合の表示されたボタンおよびテキストを有する３Ｄ面を例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【図１０】キャプチャがある場合の選択されたテキストの一部分を有する図９に示された３Ｄ面を例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【図１１】入力装置が、図１０に示されているような３Ｄ面の位置上の２Ｄに関係すると予期される場所の最近縁点を例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【図１２】キャプチャを有する２Ｄテキストボックスを例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【図１３】２Ｄ内で３Ｄ上の２Ｄコンテンツの輪郭を与えるために、図１２の画像の縁を取得し、それらの縁を２Ｄ内に投影し返すことを例示する、図１のシステムの一実施形態のためのシミュレートされた画像である。
【発明を実施するための形態】
【０００７】
次に、本発明の原理の理解を促進するために、図面に例示された実施形態が参照され、これを説明するために特定の言語が使用される。それにもかかわらず、それによって範囲のいかなる限定も意図されないことが理解されるであろう。説明された実施形態の任意の代替形態およびさらなる変更形態、ならびに本明細書に記載の原理の任意のさらなる適用形態は当業者に一般に思いつかれるであろうように企図される。
【０００８】
システムは、３Ｄ面上に配置された２Ｄコンテンツとのインタラクションを提供するアプリケーションとして一般的コンテキストで説明されることができるが、システムは、これらに加えて他の目的にもかなう。一実施形態では、本明細書に記載の１つまたは複数の技法が、ＭＩＣＲＯＳＯＦＴ（登録商標）ＷＩＮＤＯＷＳ（登録商標）などのオペレーティングシステム環境に含まれるものなど、グラフィックスレンダリングプログラム（graphics rendering program）の中の特徴として、あるいはグラフィックスレンダリングを処理する任意の他のタイプのプログラムまたはサービスから実施されることができる。他の実施形態では、本明細書に記載の１つまたは複数の技法が、２Ｄコンテンツが３Ｄ面と共に使用されることができるようにすることを取り扱う他のアプリケーションを用いて特徴として実施される。
【０００９】
一実施形態では、システムは、隠された２Ｄコンテンツを使用することにより３Ｄ面とのインタラクションを提供する。実際のインタラクティブな２Ｄコンテンツは隠されたままであるが、隠された２Ｄコンテンツの外観は隠されず、３Ｄ上に配置される。隠されたコンテンツは、３Ｄ面上のコンテンツのレンダリングされた（rendered）外観とインタラクトしようとするユーザの試みを阻止するように配置される。本明細書で使用される用語「隠されたコンテンツ」は、不可視である、見られることができないような大きさにされる、別の対象物の背後に配置されるなどのために、ユーザによって気づかれない２Ｄコンテンツを含むことを意図される。他の実施形態では、２Ｄコンテンツのいずれかの部分が入力装置の位置を要求するかまたはキャプチャを要求する場合、その２Ｄコンテンツの３Ｄ表現は２Ｄに投影し返される。次いで、この投影されたコンテンツの境界は、キャプチャされた３Ｄ面からの任意の入力要求にどのように応答するべきか判定するために使用される。本明細書で使用される用語「キャプチャ」は、いつ２Ｄコンテンツが入力装置の状態変化を通知されるよう要求するかを意味する。
【００１０】
図１に示されているように、システムの１つまたは複数の部分を実施するために使用すべき例示的コンピュータシステムは、コンピューティング装置１００などのコンピューティング装置を含む。その最も基本的な構成では、コンピューティング装置１００は、通常、少なくとも１つの処理ユニット１０２およびメモリ１０４を含む。コンピューティング装置の正確な構成およびタイプに応じて、メモリ１０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはそれら２つの何らかの組合せでもよい。この最も基本的な構成は、図１に破線１０６によって示されている。
【００１１】
さらに、装置１００はまた、追加の特徴／機能を有してもよい。例えば、装置１００はまた、磁気あるいは光ディスクまたはテープを含むが、それらに限定されない（取り外し可能なおよび／または取り外し不可能な）追加の記憶装置を含んでもよい。そのような追加の記憶装置は、図１に、取り外し可能な記憶装置１０８および取り外し不可能な記憶装置１１０によって例示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能なおよび取り外し不可能な媒体を含む。メモリ１０４、取り外し可能な記憶装置１０８、および取り外し不可能な記憶装置１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶するために使用されることができ、装置１００によってアクセスされることができる任意の他の媒体を含むがそれらに限定されない。そのようないかなるコンピュータ記憶媒体も装置１００の一部であり得る。
【００１２】
コンピューティング装置１００は、コンピューティング装置１００が他のコンピュータ／アプリケーション１１５と通信することができるようにする１つまたは複数の通信接続１１４を含む。装置１００はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置（１つまたは複数）１１２を有してもよい。ディスプレイ、スピーカ、プリンタなどの出力装置（１つまたは複数）１１１が含まれてもよい。これらの装置は、当技術分野ではよく知られており、ここでは詳細に議論される必要はない。一実施形態では、コンピューティング装置１００は、インタラクティブな３Ｄアプリケーション２００を含む。インタラクティブな３Ｄアプリケーション２００は、図２でさらに詳細に説明される。
【００１３】
次に、図１に続いて図２を参照すると、コンピューティング装置１００上で動作するインタラクティブな３Ｄアプリケーション２００が例示されている。インタラクティブな３Ｄアプリケーション２００は、コンピューティング装置１００上に常駐するアプリケーションプログラムのうちの１つである。しかし、インタラクティブな３Ｄアプリケーション２００は、代替としてまたは追加として、１つまたは複数のコンピュータ上でコンピュータ実行可能命令として、および／または図１に示されているのとは違う変形形態で実施されることができることが理解されるであろう。代替としてまたは追加として、インタラクティブな３Ｄアプリケーション２００の１つまたは複数の部分は、システムメモリ１０４の部分でもよく、他のコンピュータおよび／またはアプリケーション１１５上にあってもよく、あるいは当コンピュータソフトウェア技術分野の業者に思いつかれるであろうような他の変形形態でもよい。
【００１４】
インタラクティブな３Ｄアプリケーション２００は、本明細書に記載の技法のいくつかまたはすべてを実行する役割を担うプログラムロジック２０４を含む。プログラムロジック２０４は、（例えば、要求を受信したとき、またはプログラマチックに判定したとき）隠されたコンテンツを更新する必要があると判定するためのロジック２０６と、３Ｄ面に関して入力装置（例えば、マウス、スタイラスなど）がどこに配置されているか判定するためのロジック２０８と、入力装置が３Ｄ面をヒットしたかしなかったか判定するためのロジック２１０と、入力装置が３Ｄ面をヒットしなかったとシステムが判定した場合、隠されたコンテンツを非アクティブにする（例えば、ユーザが隠されたコンテンツと偶然にインタラクトしないように、隠されたコンテンツを入力装置から離す、あるいはそうでなければ除去するかまたは非アクティブにする）ためのロジック２１２と、入力装置が３Ｄ面をヒットしたとシステムが判定した場合は、３Ｄ面上の点が入力装置をヒットし、隠されている２Ｄ対象物が一列に並ぶ（例えば、同じ点が一列に並ぶように移動する）ように２Ｄ対象物を配置するためのロジック２１４と、隠されたコンテンツを更新する必要があるという別の指示を待って（例えば、要求を受信して、またはプログラマチックに判定して）、しかるべく応答するためのロジック２１６と、アプリケーションを動作させるための他のロジック２２０と、を含む。一実施形態では、プログラムロジック２０４は、プログラムロジック２０４における手順への単一のコールを使用するなどして、別のプログラムからプログラマチックにコールされるように動作可能である。
【００１５】
図１〜２に続いて図３〜５を参照すると、インタラクティブな３Ｄアプリケーション２００の１つまたは複数の実施形態を実施するための段階がさらに詳細に説明されている。図３は、インタラクティブな３Ｄアプリケーション２００のためのハイレベルプロセスの流れ図である。一形態では、図３のプロセスは、コンピューティング装置１００の動作ロジック（operating logic）において少なくとも部分的に実行される。手順は、開始点２４０から開始し、（例えば、要求を受信したとき、またはプログラマチックに判定したとき）隠されたコンテンツを更新する必要があると任意選択で判定する（段階２４２）。システムは、３Ｄ面に関して入力装置（例えば、マウス、スタイラスなど）がどこに配置されているか判定する（段階２４４）。入力装置が３Ｄ面（例えば、３Ｄ空間内の全領域）をヒットしなかった（例えば、接触しなかった）場合は（判断点２４６）、隠されたコンテンツは、非アクティブにされる（例えば、ユーザが隠されたコンテンツと偶然にインタラクトしないように、入力装置から離される、あるいはそうでなければ除去されるかまたは非アクティブにされる）（段階２４８）。入力装置が３Ｄ面をヒットした場合は（判断点２４６）、２Ｄ対象物は、３Ｄ面上の点が入力装置をヒットし、隠されている２Ｄ対象物が一列に並ぶ（例えば、同じ点が一列に並ぶように移動する）ように配置される（段階２５０）。システムは、任意選択で、隠されたコンテンツを更新する必要があるという別の指示を待って、しかるべく応答する（段階２５２）。プロセスは、終了点２５６で終了する。
【００１６】
図４は、３Ｄ面に関して入力装置の位置を提供することに関係する段階の一実施形態を例示する。一形態では、図４のプロセスは、コンピューティング装置１００の動作ロジックにおいて少なくとも部分的に実行される。手順は、開始点２７０から開始し、シーンのどこかで入力装置が検出された場合、入力装置の位置を求める要求または照会を（例えば、任意の３Ｄ幾何学的形状、球体などの領域から）受信する（段階２７２）。３Ｄ面が撮られ、２次元に投影される（段階２７４）。この投影画像上の入力装置の２Ｄ位置への最近点が算出される（段階２７６）。投影対象物上のその最近点は、要求または照会に応答して（例えば、３Ｄ空間内の要求対象物に）返された位置である（段階２７８）。プロセスは、終了点２８０で終了する。
【００１７】
図５は、３Ｄ面上に配置された２Ｄコンテンツとのインタラクションを可能にすることに関するさらに詳細な段階の一実施形態を例示する。一形態では、図５のプロセスは、コンピューティング装置１００の動作ロジックにおいて少なくとも部分的に実行される。手順は、開始点３１０から開始し、隠されたコンテンツ（「オン（On）」イベントなど）を更新する必要があると任意選択で判定する（段階３１２）。システムが、３Ｄ面がキャプチャを有しないと判定した場合は（判断点３１４）、３Ｄ面に関して入力装置がどこに配置されているか判定するために、ヒットテスト３Ｄシーン（hit test 3D scene）が行われる（段階３１６）。３Ｄ面がヒットされなかった場合は（判断点３２０）、隠されたコンテンツは入力装置から離される（段階３２４）。３Ｄ面がヒットされた場合は（判断点３２０）、２Ｄコンテンツ上でどの点がヒットされたか見つけるために３Ｄ三角形上でテクスチャ座標が使用される（段階３２６）。２Ｄコンテンツは隠された層に配置され、隠された層は、点が一列に並べられるように移動される（段階３２６）。
【００１８】
３Ｄ面がキャプチャを有するとシステムが判定した場合は（判断点３１４）、３Ｄ面に関して入力装置がどこに配置されているか判定するためにヒットテスト３Ｄシーンが行われる（段階３１８）。システムは、キャプチャコンテンツを有する３Ｄ面が（例えば、入力装置によって）ヒットされたかどうか判定する（判断点３２２）。ヒットされた場合は、２Ｄコンテンツ上でどの点がヒットされたか見つけるために、３Ｄ三角形上でテクスチャ座標が使用される（段階３２６）。２Ｄコンテンツは隠された層に配置され、隠された層は、点が一列に並べられるように移動される（段階３２６）。キャプチャコンテンツを有する３Ｄ面がヒットされなかったとシステムが判定した場合は（判断点３２２）、キャプチャされたコンテンツの境界が算出される（段階３２８）。境界上の入力装置の位置への最近点が特定され、境界上の最近点が入力装置の位置の下に配置される（段階３２８）。プロセスは終了点３３０で終了する。
【００１９】
次に、図６〜１３を参照すると、図３〜５の段階をさらに詳細に例示するためにシミュレートされた画像が使用されている。図６〜８では、３Ｄ面がキャプチャを有しない場合のいくつかの可能なシナリオを例示するためにいくつかの例示的なシミュレートされた画像が使用されている。これらのシミュレートされた画像およびそれらの付随する説明は、図５の段階３１４、３１６、３２０、３２４、および３２６、ならびに／または本明細書に記載の他のいくつかの技法のさらなる例示を提供する。図６は、キャプチャがない場合の隠されたコンテンツの２Ｄ表現を例示する、図１のシステムの一実施形態のためのシミュレートされた画像４００である。シミュレートされた画像５００は、球体にマッピングされるコンテンツを含む。図７は、球体（例えば、３Ｄ）にマッピングされる図６の画像４００を示すシミュレートされた画像５００を含む。図８は、３Ｄ面上で入力装置がその上方にあるスライダの一部分が２Ｄ内のそれと同じであるように、隠されたコンテンツがどのように整列されるかを示すシミュレートされた画像６００を含む。次いで、入力装置をクリックすることは、サムコントロール（thumb control）とインタラクトすることになる。このマッピングは維持されるので、３Ｄ面は、入力装置がいつ３Ｄ面に入りそれらから出るか、ならびに３Ｄ面がそれら自体のどの部分の上方にあるか、正確に通知される。これは、３Ｄ上の２Ｄコンテンツとインタラクトすることができるという結果を生じる。一実施形態では、入力装置の移動は、隠されたコンテンツが更新される必要があるという信号としてトラッキングされる。
【００２０】
次に、図６〜８に示されている結果を達成するために２Ｄコンテンツが３Ｄ面にどのようにマッピングされるか説明するためにいくつかの非限定的な例が使用される。入力装置が３Ｄ面の上方にない場合は、隠された層は、入力装置がそれの上方にないような位置ならどこに配置されてもよい。一実施形態では、所望の振る舞いは、３Ｄ面上の２Ｄコンテンツは、入力装置がそれの上方にあるかのように振る舞わず、いかなる他のイベントもそれに影響を与えるべきではないということである。隠された層を入力装置から離して配置することは、それが移動またはクリックなどを通知されないようにする。
【００２１】
例のために、全ての３Ｄ面は三角形からなり、全ての三角形はそれらに関連するテクスチャ座標を有すると仮定する。テクスチャ座標は、画像のどの部分（テクスチャ）が三角形上に表示されるべきかを指定する。例えば、テクスチャ座標は（０，０）から（１，１）までの範囲にあり、この場合、（０，０）は画像の上部左隅であり、（１，１）は画像の下部右隅であると仮定する。その場合、テクスチャ座標が（０，０）、（１，０）、および（０，１）である場合は、画像の上部左半分が三角形上に表示される。さらに、３Ｄ面上に表示される２Ｄコンテンツが画像として表されることができ、この画像は、それが適用される３Ｄ面のためのテクスチャであると仮定する。例えば、図６はテクスチャとみなされることができ、テクスチャ座標は、図７に示されているように、テクスチャを球体に巻きつかせるものである。
【００２２】
次に、入力装置が３Ｄ面の上方にある場合は、それが３Ｄ面のどの部分と交差するかを見るために、光線が３Ｄシーンに発射される。これは、多くの標準的な技法を用いて行われることができる。システムが、何と交差したかを知った後は、ヒットされた三角形上の点、ならびにそのためのテクスチャ座標が、判定されることができる。テクスチャ座標が判定された後は、テクスチャも知られているので、システムはテクスチャ座標から２Ｄコンテンツ上の位置にマッピングすることができる。この位置は、３Ｄ面上の上方にある正確な点である。正確に配置するために、システムは、前の部分で算出された位置が入力装置の位置のすぐ下にあるように隠されたコンテンツを移動する。３Ｄ面の上方の点は、隠されたコンテンツ上のその同一の位置の真下にあり、それらは両方とも入力装置の真下にある。したがって、ユーザがこの位置をクリックした場合、またはそうでなければこの位置から入力した場合、それらは隠されたコンテンツと３Ｄ上にある２Ｄコンテンツの両方の上の全く同一の点をクリック／入力していることになる。さらに、入力装置が移動した場合、配置のために、隠されたコンテンツと３Ｄ上のそれの２Ｄ表現の両方は、全く同一の点の上方の入力装置の移動を通知されることになる。
【００２３】
次に、図９〜１３を参照すると、３Ｄ面がキャプチャを有する場合のいくつかの可能なシナリオを例示するために、いくつかの例示的なシミュレートされた画像が示されている。これらのシミュレートされた画像およびそれらの付随する説明は、図５の段階３１４、３１８、３２２、３２６、および３２８、ならびに／または本明細書に記載のいくつかの他の技法のさらなる例示を提供する。一実施形態では、３Ｄ上の２Ｄ要素がキャプチャを取得した場合、正確な隠されたコンテンツの配置はさらに複雑になり得る。一例として、３Ｄでは、３Ｄの２Ｄ平面上への投影のために、入力装置の位置は実際に３Ｄ空間内の線に対応する。さらに、キャプチャを有する３Ｄ面はまた、いかなる任意の幾何学的形状にもマッピングされることができる。したがって、入力装置が３Ｄ面の上方にある場合、ヒットテスティングは、入力装置が２Ｄ画像に関してどこにあるかを示す。それが３Ｄ面から離れている場合は、上記の問題のために、もはやこの質問に対する簡単な答えはない。２Ｄ点は３Ｄ線に対応し、２Ｄコンテンツは任意の幾何学形状上にあってもよい。さらに、３Ｄ面はキャプチャを有するので、全てのイベントを受信したがる。前には、キャプチャが含まれていなかった場合は、システムは、入力装置がいつも確実に正しい対象物の上方にあることを必要とするだけであった。今は、キャプチャを有するので、システムは、隠されたコンテンツをそれがキャプチャを有する対象物に関して適切な位置にあるように配置する必要がある。図９〜１１に示されているシミュレートされた画像は、これをさらに詳細に例示している。
【００２４】
一実施形態では、この問題に対する１つの可能な解決策は、３Ｄ問題を２Ｄに還元し戻すことである。通常の２Ｄの場合には、コンテンツに適用される変換は、入力装置の位置をコンテンツのローカル座標系（local coordinate system）に変換するために使用されることができる。次いで、この変換された位置は、コンテンツに入力装置がそれに関してどこにあるかを知らせる。３Ｄでは、多くの幾何学的形状の位置およびテクスチャ座標のレイアウトのために、３Ｄ点が３Ｄ上の２Ｄコンテンツの関連座標系のどこにあるかを言うことが難しい場合があり得る。一実施形態では、これを概算するために、３Ｄ上の２Ｄコンテンツの輪郭が、スクリーン空間に投影された後で、算出され、次いで、この投影画像に基づいて入力装置が配置される。図９〜１１はこれをさらに詳細に例示している。
【００２５】
図９のシミュレートされた画像７００は、３Ｄ上の２Ｄコンテンツを示す。図１０上のシミュレートされた画像７５０はテキストが選択されたことを示し、入力装置は対象物から離れた点に移動される。図１１は、テキストボックスの輪郭（すなわち、キャプチャを有する対象物）を有するシミュレートされた画像８００を示す。次いで、この輪郭は、隠されたコンテンツを配置するために使用される。
【００２６】
輪郭が利用可能になった後で、この輪郭上の入力装置への最近点が算出され、その場合、輪郭上のこの点は、「ヒット」されたものとみなされ、入力装置の位置の下に配置される。示されている例では、ハイライトが画像７５０の中央部の「Ｔ」まで行われている。隠されたコンテンツは入力装置が３Ｄ上の２Ｄコンテンツ上で最も近いものに基づいて配置され、入力装置は最近縁点の側に配置されるので、インタラクションは２Ｄでのように振舞う傾向にある。隠されたコンテンツを最近縁点に配置することにより、システムは、入力装置が２Ｄに関して３Ｄ面の位置上のどこにあるとシステムが予期するかについて示している。
【００２７】
図９〜１１を参照しながら説明されたプロセスを実際に実行するために、システムは、それがその中に含まれている２Ｄコンテンツに関してキャプチャを有する対象物の境界を算出する。一例として、図１２〜１３に示されている２Ｄコンテンツを考察する。テキストボックスはキャプチャを有すると仮定する。図１２では、画像９００に含まれるテキストボックスは、肉太の線で輪郭を描かれている。これらの境界は、キャプチャを有する３Ｄ面の境界が知られており、全体としての２Ｄコンテンツのサイズも知られているので、テクスチャ座標に変換されることができる。次いで、システムは、テクスチャ座標によって、３Ｄ面がその上にあるメッシュの全ての三角形を調べ、境界座標と交差するテクスチャ座標を含む三角形がないか探すことができる。例えば、三角形があると仮定すると、図１２の２Ｄコンテンツ上に示されているように、テクスチャ座標を有する三角形が描かれている。システムは、三角形の縁がキャプチャを有する３Ｄ面の境界と交わっているかどうか調べて確認する。この場合は、三角形の縁はキャプチャを有する３Ｄ面の境界と交わっている（キャプチャを有するテキストボックスと交わっている）。三角形がビューア（viewer）に面していて、境界縁のいずれかがそれと交差する場合は、境界縁と三角形が交差する縁が最終リストに加えられる。加えられるであろう縁は、図１３の画像９５０に示されている。これらのステップを実行することにより、キャプチャされた３Ｄ面の境界と交差する可視縁が判定される。
【００２８】
一実施形態では、システムはまた、どの三角形がビューアに面しているか、どの三角形が面していないかをトラッキングする。１つはユーザに面し、１つは面していない、１つの縁を共有する２つの三角形がある場合は、システムはまた、キャプチャされた３Ｄ面の境界の中にあるこの共有縁の一部分を最終リストに加えることができる。これは、可視境界が算出されるために必要であり得る。この状況の非限定的な例として、図９の球体を考察する。左の縁も右の縁も両方ともシルエット縁（silhouette edge）である（すなわち、１つの縁が可視三角形と不可視三角形の両方を有する）。システムは、（図１１に示されているように）キャプチャされた３Ｄ面の可視輪郭全体を算出するためにこれらを加える。そうでなければ、左端の画像および右端の画像はなくなり、完全な輪郭は算出されないであろう。縁のリストが判定された後は、それらは２Ｄに投影し返される。これは、２Ｄ内で３Ｄ上の２Ｄコンテンツの輪郭を与える。次いで、入力装置に最も近いこれらの縁上の点が算出される。この点はそれ自体のテクスチャ座標を有し、次いで、このテクスチャ座標は、上記のように、隠されたコンテンツを配置するために使用される。所望の振る舞いに応じて、キャプチャされた３Ｄ面の境界は、キャプチャされた３Ｄ面からさらに離される必要がある場合は、太くされることができる。
【００２９】
主題は、構造的特徴および／または方法論的行為に特有の言語で説明されてきたが、添付の特許請求の範囲の請求項で定義された主題は、上記で説明された特定の特徴または行為に必ずしも限定されないことを理解されたい。そうではなく、上記で説明された特定の特徴および行為は、請求項を実施する例示的形態として開示されている。本明細書および／または添付の特許請求の範囲の請求項に記載の実施形態の範囲に入る全ての同等形態、変更形態、および修正形態が保護されるよう望まれる。
【００３０】
例えば、本明細書で議論された実施例で説明されたようなクライアントおよび／またはサーバ構成、ユーザインターフェーススクリーンコンテンツ、ならびに／あるいはデータレイアウトは、実施例で描写されたようなものより少ないまたはそれらに追加のオプションまたは特徴を含むために１つまたは複数のコンピュータ上で異なる仕方で編成されることもできることを当コンピュータソフトウェア技術分野の業者は理解するであろう。
【図１】
2010511228.tif 000003
【図２】
2010511228.tif 000004
【図３】
2010511228.tif 000005
【図４】
2010511228.tif 000006
【図５】
2010511228.tif 000007
【図６】
2010511228.tif 000008
【図７】
2010511228.tif 000009
【図８】
2010511228.tif 000010
【図９】
2010511228.tif 000011
【図１０】
2010511228.tif 000012
【図１１】
2010511228.tif 000013
【図１２】
2010511228.tif 000014
【図１３】
2010511228.tif 000015
【国際調査報告】
2010511228.tif 000016
2010511228.tif 000017