(57)【要約】  （２Ｄ）ビジュアルオブジェクトと（３Ｄ）シーンオブジェクトの階層が、（２Ｄ）コンピュータディスプレイ上での（３Ｄ）シーンの（２Ｄ）ビューを含む（２Ｄ）画像のレンダリングのためのシームレスな処理のために統合される。ビジュアル階層における（３Ｄ）モデルオブジェクトと（２Ｄ）ビジュアルオブジェクトの処理が統合されて、（３Ｄ）動作と（２Ｄ）の動作の間で容易に処理が受け渡されるようになる。さらに、表示画像が作成される場合の、ビジュアル（２Ｄ）オブジェクトと（３Ｄ）モデルオブジェクトの処理間の移行の数には、アーキテクチャ上の制限がない。データ構造体は、ビジュアル（２Ｄ）オブジェクトまたは（３Ｄ）モデルオブジェクトを指し示す（３Ｄ）シーンオブジェクトを有するビジュアルツリーオブジェクト階層に、（３Ｄ）画像および（２Ｄ）画像を作成するためのコンピュータプログラムオブジェクトを組み込む。データ構造体は、オブジェクトツリー階層、１つまたは複数のビジュアル（２Ｄ）オブジェクト、および、（３Ｄ）モデルオブジェクトを指し示す１つまたは複数の（３Ｄ）参照またはシーンオブジェクトを含む。ビジュアル（２Ｄ）オブジェクトは、（２Ｄ）画像を描画する動作を定義する。（３Ｄ）参照またはシーンオブジェクトは、１つまたは複数の（３Ｄ）モデルから構成される３次元シーンの２次元ビューをそのオブジェクトと共に描画する動作を有するオブジェクトを指し示す参照を定義する。（３Ｄ）参照またはシーンオブジェクトは、（３Ｄ）モデルオブジェクトおよびカメラオブジェクトを指し示す。カメラオブジェクトは、（３Ｄ）シーンの２次元ビューを定義する。（３Ｄ）モデルオブジェクトは、（３Ｄ）モデルを描画し、モデルの輪郭を描画する際に使用されるメッシュ情報と、モデルの表面テクスチャを描画する際に使用されるマテリアル情報を定義する。モデルの表面テクスチャについてのマテリアル情報は、ビジュアル（２Ｄ）オブジェクト、（３Ｄ）参照またはシーンオブジェクト、あるいは、ビジュアル（２Ｄ）オブジェクトおよび／または（３Ｄ）参照シーンオブジェクトのツリー階層によって定義される。
2007536621.tif 000002
【特許請求の範囲】
【請求項１】
ビジュアル２Ｄオブジェクトおよびビジュアル３Ｄオブジェクトを有するビジュアルツリーオブジェクト階層に、３次元（３Ｄ）画像および２次元（２Ｄ）画像を作成するためのコンピュータプログラムオブジェクトを組み込むためのデータ構造体であって、
オブジェクトツリー階層と、
２Ｄ画像を描画する動作を定義する、前記ツリー階層内の１つまたは複数のビジュアル２Ｄオブジェクトと、
１つまたは複数の３Ｄモデルから構成される３次元シーンの２次元ビューを描画する動作を定義し、１つまたは複数の３Ｄモデルオブジェクトおよび少なくとも１つのカメラオブジェクトを参照する、１つまたは複数の３Ｄシーンオブジェクトと、
それぞれが前記３Ｄシーンについての３Ｄモデルを定義する、前記１つまたは複数の３Ｄモデルオブジェクトと、
前記３Ｄシーンの２次元のカメラビューを定義する、前記カメラオブジェクトとを備えることを特徴とするデータ構造体。
【請求項２】
前記３Ｄモデルオブジェクトの１つまたは複数は、モデルの表面テクスチャについてのマテリアル情報を定義することを特徴とする請求項１に記載のデータ構造体。
【請求項３】
前記マテリアルは、前記表面テクスチャについての２次元画像を描画する動作を定義する、ビジュアル２Ｄオブジェクトを備えることを特徴とする請求項２に記載のデータ構造体。
【請求項４】
モデルの前記テクスチャについての前記マテリアル情報は、３Ｄシーンオブジェクトをさらに備えることを特徴とする請求項２に記載のデータ構造体。
【請求項５】
モデルの前記テクスチャについての前記マテリアル情報は、ビジュアルオブジェクトのビジュアルツリー階層をさらに備えることを特徴とする請求項２に記載のデータ構造体。
【請求項６】
前記３Ｄシーンオブジェクトは、
モデル３Ｄオブジェクトへのポインタ、および少なくとも１つのカメラオブジェクトへのポインタを有する、ビジュアル３Ｄオブジェクトを備えることを特徴とする請求項１に記載のデータ構造体。
【請求項７】
コンピュータからの出力として２次元（２Ｄ）画像と３次元（３Ｄ）画像の混合を作成するための、コンピュータプログラムビジュアルオブジェクトの階層を処理するための方法であって、
リーフオブジェクトおよびブランチオブジェクトを処理するために、ビジュアルオブジェクトの第１のツリー階層のブランチをトラバースするステップと、
次の未処理ビジュアルオブジェクトがビジュアル２Ｄオブジェクトであるか３Ｄシーンオブジェクトであるかを検出するステップと、
ビジュアル２Ｄオブジェクトが検出された場合に、ビジュアルオブジェクトを処理するために２Ｄプロセスを呼び出し、３Ｄシーンオブジェクトが検出された場合に、モデル３Ｄオブジェクトを処理するために３Ｄプロセスを呼び出すステップとを備えることを特徴とする方法。
【請求項８】
前記３Ｄプロセスは、
カメラビューを設定するステップと、
１つまたは複数のモデル３Ｄオブジェクトによって定義された１つまたは複数の３Ｄモデルの画像を描画するステップであって、前記画像は、前記１つまたは複数の３Ｄモデルの前記カメラビューに基づくステップとを備えることを特徴とする請求項７に記載の方法。
【請求項９】
前記３Ｄモデルは、３Ｄシーンオブジェクトによってポイントされる１つまたは複数のモデル３Ｄオブジェクトの、第２のツリー階層として定義されることを特徴とする請求項７に記載の方法。
【請求項１０】
前記第２のツリー内の前記１つまたは複数のモデル３Ｄオブジェクトは、前記３Ｄモデルを描画する際に使用するためのビジュアルオブジェクトの、第３のツリー階層を定義することを特徴とする請求項９に記載の方法。
【請求項１１】
前記第３のツリー階層は、モデル３Ｄオブジェクトの第４のツリー階層を定義する少なくとも１つのビジュアル２Ｄオブジェクトを有し、それにより、３Ｄシーンオブジェクトとビジュアル２Ｄオブジェクトが、オブジェクトツリー階層のブランチに沿った複数の連続したオブジェクトにおいて統合され、当該の２Ｄプロセスおよび３Ｄプロセスによって処理されうることを特徴とする請求項１０に記載の方法。
【請求項１２】
２次元画像についてのビジュアルオブジェクトと３次元モデルの２次元画像についてのビジュアルオブジェクトとを統合するための、コンピュータプログラムオブジェクトのデータ構造体を符号化する、コンピュータ可読媒体であって、前記データ構造体は、
２次元画像を作成するビジュアルオブジェクトのビジュアルツリー階層であって、前記ビジュアルオブジェクトの１つまたは複数は、３Ｄモデルおよび前記３Ｄモデルの２次元ビューを参照する３Ｄシーンオブジェクトである、ビジュアルツリー階層と、
オブジェクトの第２のツリー階層によって定義される前記３Ｄモデルと、
前記３Ｄモデルを描画するための動作を定義する少なくとも１つの描画オブジェクト、および前記３Ｄモデルの照明を定義するライトビジュアルオブジェクトを含む、前記第２のツリーのオブジェクトとを備えることを特徴とするコンピュータ可読媒体。
【請求項１３】
前記３Ｄモデルの前記２次元ビューが、定義された第１の位置および定義された第２の位置のパースペクティブから定義され、前記第１および第２の位置は、前記３Ｄモデルの前記ビューのための照準方向を定義することを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記第１の位置は、カメラ位置決め点（ｐｏｓｉｔｉｏｎ  ｐｏｉｎｔ）であり、前記第２の位置は、「Ｌｏｏｋ−ａｔ」位置決め点であることを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記描画オブジェクトは、前記モデルの表面をテクスチャリングする際に使用されるマテリアル情報を含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１６】
前記マテリアル情報は、オブジェクトの第３のツリー階層を定義することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記データ構造体は、
第２の３Ｄモデルおよび前記第２の３Ｄモデルの２次元ビューを参照する３Ｄシーンオブジェクトである、前記第３のツリー階層の１つまたは複数の前記オブジェクトと、
オブジェクトの第４のツリー階層によって定義される前記第２の３Ｄモデルと、
前記３Ｄモデルを描画する動作を定義するための少なくとも１つの描画オブジェクト、および前記３Ｄモデルの照明を定義するライトビジュアルオブジェクトを含む、前記第４のツリーのオブジェクトとをさらに備えることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記データ構造体における前記描画オブジェクトは、前記３Ｄモデルの輪郭を近似するための平面形状を定義するためのメッシュ情報をさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記３Ｄシーンオブジェクトは、モデル３Ｄオブジェクトおよび少なくとも１つのカメラオブジェクトへのポインタを定義する描画コンテキストを有する、ビジュアル２Ｄオブジェクトを備えることを特徴とする請求項１に記載のデータ構造体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータグラフィックスの分野に関する。より詳細には、本発明は、３次元グラフィックスを２次元合成システムに組み込むことに関する。
【背景技術】
【０００２】
コンピュータシステム上でグラフィックスにアクセスする従来のモデルは、１つの理由として、メモリおよびバス速度がメインプロセッサおよび／またはグラフィックスプロセッサの進歩に追いついていないため、限界に達している。一般に、ビットマップを使用してフレームを準備する現在のモデルは、複雑なグラフィック効果が所望される場合、ハードウェアリフレッシュレートを維持するために、かなりのデータ処理を必要とする。
【０００３】
【特許文献１】MODEL 3D CONSTRUCTION APPLICATION PROGRAM INTERFACE
【特許文献２】VISUAL AND SCENE GRAPH INTERFACE
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、複雑なグラフィック効果を従来のグラフィックスモデルで試みる場合、感知される視覚効果をもたらす変更が、次のフレームに間に合うように完了せずに、いくつかの異なるフレームにわたって追加されて、視覚的に望ましくない結果を引き起こす恐れがある。
【０００５】
さらに、この問題は、３次元（３Ｄ）グラフィックス、および、表示中の３Ｄ画像のアニメーションのような特殊効果の導入によって悪化する。必要とされるのは、３Ｄ画像をリアルタイムでレンダリングし、その画像をコンピュータプログラムによって呼び出されたときに作成することができる、グラフィックス生成および合成システムである。さらに、３Ｄ画像の作成が、ディスプレイ上に３Ｄと２Ｄの画像の混合を提供する必要に応じて、２次元（２Ｄ）グラフィック表示に組み込まれるべきである。上記および他の問題を考慮して本発明は構成されている。
【課題を解決するための手段】
【０００６】
上記および他の問題は、３Ｄモデルオブジェクトを２Ｄビジュアルオブジェクトの階層に組み込み、２Ｄディスプレイ上にレンダリングするために３Ｄ画像と２Ｄ画像をシームレスに処理することによって解決される。ビジュアル階層における（３Ｄ）モデルオブジェクトと（２Ｄ）ビジュアルオブジェクトの処理が統合されて、（３Ｄ）動作と（２Ｄ）の動作の間で容易に処理が受け渡されるようになる。さらに、表示画像が作成される場合の、ビジュアル２Ｄオブジェクトと３Ｄモデルオブジェクトの処理間の移行の数には、アーキテクチャ上の制限がない。したがって、ユーザは、際限なく、２Ｄ画像に３Ｄ画像を、また３Ｄ画像に２Ｄ画像を埋め込んだグラフィックスを自由に作成することができる。例えば、ユーザインターフェースダイアログボックスを、別のダイアログボックスの一部分として表示された球体上にテクスチャリング（ｔｅｘｔｕｒｅ）し、さらに、その球体を円錐体上にテクスチャリングすることができる。
【０００７】
他の態様によれば、本発明は、ビジュアル２Ｄオブジェクト、または３Ｄモデルオブジェクトを指し示す３Ｄシーンオブジェクトを有するビジュアルツリーオブジェクト階層に、（３Ｄ）画像および（２Ｄ）画像を作成するためのコンピュータプログラムオブジェクトを組み込むためのデータ構造体（ｄａｔａ  ｓｔｒｕｃｔｕｒｅ）に関する。データ構造体は、オブジェクトツリー階層、１つまたは複数のビジュアル２Ｄオブジェクト、３Ｄモデルオブジェクトを指し示す１つまたは複数の３Ｄ参照またはシーンオブジェクトを含む。ビジュアル２Ｄオブジェクトは、２Ｄ画像を描画する動作を定義する。３Ｄ参照またはシーンオブジェクトは、１つまたは複数の３Ｄモデルから構成される３次元シーンの２次元ビューを共に描画する動作を有するオブジェクトを指し示す参照を定義する。３Ｄ参照またはシーンオブジェクトは、３Ｄモデルオブジェクト、およびカメラオブジェクトを指し示す。カメラオブジェクトは、３Ｄシーンの２次元ビューを定義する。３Ｄモデルオブジェクトは、３Ｄモデルを描画し、モデルの輪郭を描画する際に使用されるメッシュ情報と、モデルの表面テクスチャを描画する際に使用されるマテリアル情報を定義する。モデルの表面テクスチャについてのマテリアル情報は、ビジュアル２Ｄオブジェクト、３Ｄ参照またはシーンオブジェクト、あるいは、ビジュアル２Ｄオブジェクトおよび／または３Ｄ参照シーンオブジェクトのツリー階層によって定義されうる。
【０００８】
さらに他の態様によれば、本発明は、コンピュータからの出力として２次元（２Ｄ）と３次元（３Ｄ）の画像の混合を作成するためのコンピュータプログラムビジュアルオブジェクトの階層を、処理するための方法に関する。この方法は、ビジュアルオブジェクトの第１のツリー階層のブランチをトラバースして、リーフオブジェクト（ｌｅａｆ  ｏｂｊｅｃｔ）およびブランチオブジェクト（ｂｒａｎｃｈ  ｏｂｊｅｃｔ）を処理すること、および、次の未処理ビジュアルオブジェクトがビジュアル２Ｄオブジェクトであるかビジュアル３Ｄオブジェクトであるかを検出することを含む。ビジュアル２Ｄオブジェクトが検出された場合、ビジュアルオブジェクトを処理するために２Ｄプロセスが呼び出される。ビジュアル３Ｄオブジェクトが検出された場合、ビジュアルオブジェクトを処理するために３Ｄプロセスが呼び出される。３Ｄプロセスは、カメラビューを設定し、ビジュアル３Ｄオブジェクトによって定義された１つまたは複数の３Ｄモデルの画像を描画する。これらの画像が、１つまたは複数の３Ｄモデルのカメラビューに基づいて描画される。
【０００９】
本発明は、コンピュータプロセス、コンピューティングシステム、または、コンピュータプログラム製品やコンピュータ可読媒体などの製造品として実装することができる。コンピュータ可読媒体は、コンピュータシステムによって読取り可能で、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化している、コンピュータ記憶媒体とすることができる。コンピュータ可読媒体はまた、コンピューティングシステムによって読取り可能で、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化している、搬送波上の伝播信号とすることもできる。
【００１０】
本発明を特徴付ける上記および他の様々な特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することによって明らかとなろう。
【発明を実施するための最良の形態】
【００１１】
本発明の一実施形態によれば、図１は、ビジュアル２Ｄオブジェクトと３Ｄ参照またはシーンビジュアルオブジェクトの両方をツリーが有するように、ビジュアルオブジェクトツリー階層に組み込まれている３Ｄ参照またはシーンオブジェクトを示す。本明細書でオブジェクトに関連する場合の「ビジュアル」とは、オブジェクトによってコンピュータ表示画面上にレンダリングされた描画である。このビジュアルツリーの例示的な例では、ルートビジュアルオブジェクト１０は、４個の子を有し、子３Ｄシーンである１個の子について代替実施形態を有する。子ビジュアル２Ｄは、オブジェクト１２、１４、１６であり、３Ｄシーンオブジェクト１８および２０から選択される１つは、ルートビジュアルオブジェクト１０の４番目の子である。
【００１２】
３Ｄシーンオブジェクト１８は、ビジュアル３Ｄオブジェクト１８であり、モデル３Ｄオブジェクト２４に対する参照またはポインタ２３、および、３Ｄモデルを２Ｄ画像として捉えるためのカメラオブジェクト２２に対する参照またはポインタ２５を含む。ビジュアル３Ｄオブジェクトについては、上記の相互参照の特許出願により詳細に説明されている（例えば、特許文献１参照。）。カメラ２２は、オブジェクト２４によって描画された３Ｄモデルを、３Ｄシーンとして捉える。モデル３Ｄオブジェクト２４とカメラオブジェクト２２は一緒に、コンピュータ表示画面上の３Ｄシーンの２Ｄ画像を生成する。３Ｄシーンオブジェクト２０は、描画コンテキストを有するビジュアル２Ｄオブジェクトである。本発明の実施形態では、ビジュアル２Ｄオブジェクトの描画コンテキストは、モデル３Ｄオブジェクト２４に対する参照またはポインタ２７、および、カメラオブジェクト２２に対する参照またはポインタ２９を含む。
【００１３】
画像を作成し表示をレンダリングするために、ビジュアルツリーのブランチは、左から右へトラバースされ処理されるため、図１におけるレンダリング順序（レンダリング  シーケンス）は、左から右に示されている。描画コンテキストを有するビジュアル２Ｄオブジェクト、およびビジュアルツリーの処理については、上記の関連出願の相互参照の本発明の譲受人に譲渡された出願において説明されている（例えば、特許文献２参照。）。その処理の簡潔な説明が、本明細書では図３から図５に関する記述に含まれる。
【００１４】
このレンダリング順序で画像表示がどのように生成されるかを例示するために、ビジュアル２Ｄオブジェクト１２が三角形を作成し、ビジュアル２Ｄオブジェクト１４が円を生成し、ビジュアル２Ｄオブジェクト１６が正方形を生成すると想定する。３Ｄシーンビジュアル３Ｄオブジェクト１８、または３Ｄシーンビジュアル２Ｄオブジェクト２０は、カメラからのビューとして３Ｄシーンを生成する。レンダリング順序は左から右であり、後でレンダリングされるオブジェクトは先にレンダリングされたオブジェクトに対してオーバレイするため、ビジュアルツリー８は、図１における表示画像２５を生成することになる。言い換えれば、ビジュアル１６は、ビジュアル１２および１４の後に処理されるため、ビジュアル１２から生成された三角形、およびビジュアル１４から生成された円は、ビジュアル１６によって生成された正方形によってオーバラップされる。同様に、３Ｄシーンオブジェクト１８または２０によって作成された３Ｄシーンの２Ｄビューは、円のあとに生成され、円にオーバラップする。３Ｄシーンを含む３Ｄシーンオブジェクト、およびそのシーンを捉えるための仮想カメラを提供することによって、３Ｄシーンが、ビジュアルツリーから他の２Ｄ画像としてレンダリングすることができる２Ｄ画像に変換される。さらに、これらの画像は、ビットマップ画像としてではなく描画されるので、コンピュータ表示画面上に、または他のコンピュータビデオ出力として表示をリアルタイムでレンダリングすることができる。
【００１５】
本発明の他の重要な特徴として、３Ｄモデルオブジェクト２４は、マテリアルまたはテクスチャ情報２６を有する。マテリアル情報２６は、ビジュアルオブジェクト２８によって表現される他のビジュアルツリーを指し示すことができる。このビジュアルオブジェクト２８は、ビジュアルツリールートオブジェクト１０と同様に、ビジュアル２Ｄオブジェクトおよび３Ｄシーンオブジェクトを有することができる。したがって、ビジュアルツリー階層は、２Ｄオブジェクトを有するビジュアルツリーに３Ｄシーンオブジェクトを埋め込むことができ、さらに、２Ｄオブジェクトおよび３Ｄシーンオブジェクトを有する第２のビジュアルツリーを、第１のビジュアルツリー内の３Ｄシーンオブジェクトの３Ｄモデルに埋め込むことができる。この一連の３Ｄオブジェクトと２Ｄオブジェクトのツリー階層における交互の埋め込みは、混合された２Ｄ画像と３Ｄ画像の所望される表示を作成するために、グラフィックスプログラム作成者によって所望の回数だけ続けることができる。
【００１６】
ビジュアルツリー階層における３Ｄオブジェクトと２Ｄのオブジェクトの統合のさらに詳細な実例は、図６に示されている。しかし、統合されたビジュアルツリー階層を処理するための例示的動作環境およびソフトウェア環境を示すために、次に、図２〜５について説明する。
【００１７】
例示的動作環境
図２は、本発明を実装することができる適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例であり、本発明の用途または機能の範囲のいかなる限定も示唆しない。また、コンピューティング環境１００は、例示的動作環境１００に示すコンポーネントのいずれか１つまたは組合せに関係するいかなる依存関係または要件も有すると解釈されるべきでない。
【００１８】
本発明は、数多くの他の汎用または専用のコンピューティングシステム環境または構成で動作可能である。本発明で使用される周知のコンピューティングシステム、環境、および／または構成の例として、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサをベースとするシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、および、上記の任意のシステムまたはデバイスを含む分散コンピューティング環境などが挙げられるが、これらに限定されない。
【００１９】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などが含まれる。本発明はまた、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含めたローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【００２０】
図２を参照すると、本発明を実装するための例示的システムは、コンピュータ１１０の形態で汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、処理装置１２０、システムメモリ１３０、ならびに、システムメモリを含めた様々なシステムコンポーネントを処理装置１２０に結合するシステムバス１２１が含まれうるが、これらに限定されない。システムバス１２１は、様々な任意のバスアーキテクチャを使用している、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めたいくつかのタイプのバス構造のうち任意のタイプとすることができる。このようなアーキテクチャには、限定ではなく例として挙げると、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（ビデオ電子規格協会）ローカルバス、ＡＧＰ（アクセラレイティッドグラフィックスポート）バス、および、メザニンバスとしても知られるＰＣＩ（周辺コンポーネント相互接続）バスが含まれる。
【００２１】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができる任意の利用可能な媒体とすることができ、それには、揮発性と不揮発性の両方の媒体、およびリムーバブルと非リムーバブルな媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実施される揮発性と不揮発性、およびリムーバブルと非リムーバブルの両方の媒体が含まれる。コンピュータ記憶媒体には、以下に限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ディスク記憶装置、あるいは、所望の情報を格納するために使用することができコンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波または他の移送メカニズムなどの変調されたデータ信号としてコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具体化し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内で情報を符号化するように１つまたは複数の信号特性が設定または変更された信号を意味する。通信媒体には、限定ではなく例として挙げると、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の任意の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（リードオンリメモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２などの揮発性および／または不揮発性のメモリの形態で含む。始動時などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（基本入出力システム）１３３が、通常、ＲＯＭ１３１に格納されている。ＲＡＭ１３２は、通常、処理装置１２０により、即座にアクセス可能である、かつ／または現在処理されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図２では、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２２】
コンピュータ１１０は、他のリムーバブル／非リムーバブルの揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として示すが、図２は、非リムーバブルで不揮発性の磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ１４１、リムーバブルで不揮発性の磁気ディスク１５２から読取りまたはそれに書込みを行う磁気ディスクドライブ１５１、ならびに、ＣＤ  ＲＯＭまたは他の光媒体などリムーバブルで不揮発性の光ディスク１５６から読み取りまたそれに書き込む光ディスクドライブ１５５を示す。例示的動作環境において使用することができる他のリムーバブル／非リムーバブルで揮発性／不揮発性のコンピュータ記憶媒体として、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、固体ＲＡＭ、および固体ＲＯＭなどが挙げられるが、これらに限定されない。ハードディスクドライブ１４１は、通常、インターフェース１４０などの非リムーバブルメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などのリムーバブルメモリインターフェースによってシステムバス１２１に接続される。
【００２３】
図２に示した上述のドライブおよび関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０のための他のデータのストレージを提供する。例えば、図２では、ハードディスク１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するように図示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７には、これらが少なくとも互いに異なるコピーであることを示すために、ここでは異なる番号が与えてある。ユーザは、タブレット（電子デジタイザ）１６４、マイク１６３、キーボード１６２、ならびに、マウス、トラックボール、またはタッチパッドと通常呼ばれるポインティングデバイス１６１などの入力装置を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星パラボナアンテナ、スキャナなどが含まれうる。上記その他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）など他のインターフェースおよびバス構造によって接続してもよい。モニタ１９１または他のタイプの表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンパネル１９３などと一体化してもよく、タッチスクリーンパネル１９３は、手書きなどのデジタル化された入力を、タッチスクリーンインターフェース１９２などのインターフェースを介して、コンピュータシステム１１０に入力することができる。モニタおよび／またはタッチスクリーンパネルは、タブレット型パーソナルコンピュータなどとしてコンピューティングデバイス１１０が収容されるハウジングに物理的に結合することができ、タッチスクリーンパネル１９３は、実質的にタブレット１６４として機能することに留意されたい。さらに、コンピューティングデバイス１１０などのコンピュータは、出力周辺装置インターフェース１９４などを介して接続することができるスピーカ１９５およびプリンタ１９６など他の出力周辺装置を含むこともできる。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードとすることができ、図２ではメモリ記憶装置１８１のみが示されているが、コンピュータ１１０に関係する上記の要素の多くまたは全部を含む。図２に示す論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１、およびＷＡＮ（広域ネットワーク）１７３を含むが、他のネットワークも含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【００２５】
ＬＡＮネットワーク環境で使用する場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用する場合、コンピュータ１１０は、通常、インターネットなどのＷＡＮ１７３を介して接続を確立するためのモデム１７２または他の手段を含む。モデム１７２は、内蔵でも外部のモデムでもよく、ユーザ入力インターフェース１６０または他の適切なメカニズムを介して、システムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関係して示されたプログラムモジュールまたはその部分を、リモートメモリ記憶装置に格納することができる。図２では、限定ではなく例として、メモリ装置１８１に常駐するリモートアプリケーションプログラム１８５が示されている。ここに示したネットワーク接続は例示であり、コンピュータ間で接続リンクを確立する他の手段を使用することもできることは理解されよう。
【００２６】
ビジュアルツリー階層を処理するためのソフトウェア環境
図３は、ビジュアルツリーが処理されうる概略的な階層化アーキテクチャ２００を示す。図３に示すように、本発明の態様に従って、プログラムコード２０２（例えば、アプリケーションプログラムまたはオペレーティングシステムコンポーネントなど）は、イメージング２０４、ベクターグラフィック要素２０６、および／または、ビジュアルＡＰＩ（アプリケーションプログラミングインターフェース）層２１２に直接配置される関数／メソッド呼出しを介することを含めて、１つまたは複数の種々の方法で、グラフィックスデータを出力するように開発することができる。一般に、イメージング２０４は、画像、例えばビットマップのロード、編集、および保存のためのメカニズムを有するプログラムコード２０２を提供する。後述するように、これらの画像は、システムの他の部分で使用することができ、基本描画コードを使用して画像を直接描画する方法もある。ベクターグラフィックス要素２０６は、残りの（後述の）オブジェクトモデルと合致する、画像を描画する他の方法を提供する。ベクターグラフィック要素２０６は、マークアップ言語を介して作成することができ、要素／プロパティシステム２０８およびプレゼンタシステム２１０が、マークアップ言語を解釈して、ビジュアルＡＰＩ層２１２に適切な呼出しをする。
【００２７】
グラフィックス層アーキテクチャ２００は、高水準合成およびアニメーションエンジン２１４を含み、高水準合成およびアニメーションエンジン２１４は、キャッシュデータ構造体（ｃａｃｈｉｎｇ  ｄａｔａ  ｓｔｒｕｃｔｕｒｅ）２１６を含むか、あるいはそれに関連付けられている。キャッシュデータ構造体２１６は、後述のように、定義されたオブジェクトモデルに従って管理される階層的に配列されたオブジェクトを有する、シーングラフを含んでいる。一般に、ビジュアルＡＰＩ層２１２は、オブジェクトの作成や、データをオブジェクトに提供するためのオブジェクトのオープンおよびクローズなどの能力を含む、キャッシュデータ構造体２１６に対するインターフェースを有するプログラムコード２０２（およびプレゼンタシステム２１０）を提供する。言い換えれば、高水準合成およびアニメーションエンジン２１４が、統一されたメディアＡＰＩ層２１２を公開し、それによって、開発者は、グラフィックス情報を表示するためのグラフィックスおよびメディアに関する意図を表現し、基礎をなすプラットフォームが、プログラムコードに対するハードウェアの使用を最適化することができるように、プラットフォームに十分な情報を提供することができる。例えば、基礎をなすプラットフォームは、キャッシング、リソースの折衝、およびメディアの統合を受け持つ。
【００２８】
高水準合成およびアニメーションエンジン２１４は、命令ストリーム、および場合によっては他のデータ（例えば、ビットマップに対するポインタ）を、高速の低水準合成およびアニメーションエンジン２１８に渡す。本明細書で使用される用語「高水準」および「低水準」は、他のコンピューティングシナリオと同様であり、一般に、より低水準のソフトウェアコンポーネントは、より高水準のコンポーネントに関係し、それよりもハードウェアに近い。したがって、例えば、高水準合成およびアニメーションエンジン２１４から送られたグラフィックス情報は、低水準合成およびアニメーションエンジン２１８で受け取ることができ、ハードウェア２２２を含むグラフィックスサブシステムにグラフィックスデータを送るために使用される。
【００２９】
高水準合成およびアニメーションエンジン２１４はプログラムコード２０２と共に、シーングラフを作成して、プログラムコード２０２によって提供されるグラフィックスシーンを表現する。例えば、描画される各アイテムは、描画命令によってロードすることができ、システムは、各アイテムを、シーングラフデータ構造体２１６にキャッシュすることができる。後述するように、データ構造体２１６および描画される内容を規定する、多数の様々な方法がある。さらに、高水準合成およびアニメーションエンジン２１４は、タイミングおよびアニメーションシステム２２０と一体化して、宣言型の（または他の）アニメーション制御（例えば、アニメーション間隔）およびタイミング制御を提供する。アニメーションシステムは、例えば、要素プロパティレベル２０８、ビジュアルＡＰＩ層２１２の内部、および他の任意のリソースを含めてシステム内の実質的に任意の場所に、アニメーション値（ａｎｉｍａｔｅ  ｖａｌｕｅ）を渡すことを可能にすることに留意されたい。タイミングシステムは、要素およびビジュアルのレベルで公開される。
【００３０】
低水準合成およびアニメーションエンジン２１８は、シーンの合成、アニメーション、およびレンダリングを管理し、それらは、次いで、グラフィックスサブシステム２２２に提供される。低水準エンジン２１８は、複数のアプリケーションのシーンについてのレンダリングを構成し、コンポーネントのレンダリングと共に、グラフィックスの画面への実際のレンダリングを実施する。ただし、時には、一部のレンダリングは、より高水準で行われることが必要および／または有利となりうることに留意されたい。例えば、より低水準の層のサービスが複数のアプリケーションに対する要求を行う場合、より高水準の層は、アプリケーション単位でインスタンス化され、それにより、イメージング機構２０４を介して、時間を浪費するようなまたはアプリケーションに特定的な高水準でのレンダリングを行い、ビットマップに対する参照を低水準層に渡すことが可能になる。
【００３１】
図４および５は、例示的シーングラフ３００および４００を示し、それぞれは、ビジュアルと呼ばれるベースオブジェクト（ｂａｓｅ  ｏｂｊｅｃｔ）を含む。一般に、ビジュアルは、ユーザに対する仮想表面を表すオブジェクトを含み、ディスプレイ上の視覚表現を有する。図４に示すように、トップレベル（またはルート）ビジュアル３０２は、ビジュアルマネージャオブジェクト３０４に接続され、また、グラフィックデータがプログラムコードのための出力であるウィンドウ（ＨＷｎｄ）３０６または同様のユニットとの（例えば、ハンドルを介した）関係を有する。ビジュアルマネージャ３０４は、ウィンドウ３０６に対するトップレベルのビジュアル（および、このビジュアルの任意の子）の描画を管理する。描画のために、ビジュアルマネージャ３０４は、ディスパッチャ３０８によるスケジュールに従ってシーングラフを処理し（例えば、トラバースまたは転送）、グラフィックス命令および他のデータを、対応するウィンドウ３０６用の低水準コンポーネント２１８（図３）に提供する。シーングラフ処理は、通常、低水準コンポーネント２１８および／またはグラフィックスサブシステム２２２のリフレッシュレートより比較的低速のレートで、ディスパッチャ３０８によってスケジュールされることになる。図４は、トップレベル（ルート）ビジュアル３０２の下に階層的に配置された複数の子ビジュアル３１０〜３１５を示し、子ビジュアルのうちいくつかには、（その一時的な性質を表現するために破線で示されている）描画コンテキスト３１６、３１７を介して、例えば描画プリミティブおよび他のビジュアルを含む関連付けられた命令リスト３１８および３１９がそれぞれ取り込まれるように表されている。ビジュアルは、以下の例示的ビジュアルクラスに示されるように他のプロパティ情報も含むことができる。
【００３２】
【表１】
2007536621.tif 000003
【００３３】
表から分かるように、ｇｅｔメソッドを介して設定および／または読取りが可能な、変形（ｔｒａｎｓｆｏｒｍ）、クリップ（ｃｌｉｐ）、不透明度（ｏｐａｃｉｔｙ）、および場合によっては他のプロパティを提供することによって、ビジュアルは、サービスを提供する。さらに、ビジュアルは、それがどのようにヒットテスト（ｈｉｔ  ｔｅｓｔｉｎｇ）に関与するかを制御するフラグを有する。表示（Ｓｈｏｗ）プロパティは、ビジュアルを表示し、かつ隠し、例えば、ビジュアルは偽の場合に不可視であり、そうでなければ可視である。
【００３４】
変形プロパティによって設定される変形は、ビジュアルのサブグラフについての座標系を定義する。変形前の座標系は、変形前座標系と呼ばれ、変形後の座標系は、変形後座標系と呼ばれ、すなわち、変形を有するビジュアルは、変形ノードを親として有するビジュアルと等価である。ビジュアルツリーおよび合成システムのさらに完全な説明は、上記相互参照の関連特許出願に含まれている（例えば、特許文献２参照。）。
【００３５】
ビジュアル３Ｄのビジュアルツリー階層への組込み
上述のハードウェアおよびソフトウェア環境に留意し、図６は、ビジュアル２Ｄオブジェクトも有するビジュアルツリー階層への３Ｄシーンオブジェクトの組込みを示す。図１を参照して先に説明したように、ビジュアル３Ｄシーンオブジェクトは、２Ｄ画像、つまり３Ｄシーンのカメラビューを作成する。図１に関して上述したように、３Ｄシーンオブジェクトは、３Ｄモデルへのポインタを伴うビジュアル３Ｄオブジェクト、または、３Ｄモデルへのポインタを伴い描画コンテキストを有するビジュアル２Ｄオブジェクトとして実装される。やはり図１に関して説明したように、図１に示されたカメラオブジェクトに対する第２のポインタがある。図６の例では、３Ｄシーンオブジェクトから３Ｄモデルへのポインタは、ポインタ６０２によって表されている。ポインタ６０２は、３Ｄモデルプリミティブ６０４を指し示し、３Ｄモデルプリミティブ６０４は、３Ｄオブジェクトを描画するが、３Ｄオブジェクトを描画する際に、メッシュ情報６０６およびマテリアル情報６０８を利用する。
【００３６】
メッシュ情報６０６は、３Ｄモデルの３Ｄ輪郭を近似するために使用されうる２Ｄ形状のメッシュを示す。例えば、椅子などの３Ｄモデルに対して、布のメッシュネットを押し当てることを表す場合、このネットは椅子の輪郭を想定する。典型的には、メッシュは、平面の三角形の形状から構成される。このような三角形は、通常、かなり小さく、それにより、３Ｄ輪郭をたどるために用いることができるきめ細かいメッシュを形成する。三角形の他に、４以上の辺または連続的な辺を有する他の２Ｄ形状を、メッシュを形成するために使用することもできるが、三角形の３点は平面を定義し、これでメッシュの計算が簡易にされるので、三角形が好ましい。
【００３７】
マテリアル情報６０８は、やはり３Ｄモデルオブジェクト６０４に関連付けられており、３Ｄモデルの画像の表面を埋めるために使用されるテクスチャを示す。テクスチャは、陰影、色、または追加のビジュアル画像とすることができる。図６では、マテリアルに対する追加のビジュアル画像は、３Ｄシーンオブジェクト６１０である。
【００３８】
３Ｄシーンオブジェクト６１０は、図１で説明したように、ビジュアル３Ｄオブジェクトあるいはビジュアル２Ｄオブジェクトでありうる。いずれの場合も、３Ｄモデルに対するポインタ、および、カメラオブジェクトに対するポインタを有する。ポインタ６１２は、３Ｄシーンの２Ｄビューをレンダリングするためのカメラパラメータを定義するために、カメラオブジェクトを指し示す。図６における３Ｄオブジェクトに対するポインタ６１６は、３Ｄコンテンツ６１２の一部分である。ポインタ６１６は、３Ｄビジュアルツリーを構成するモデル３Ｄオブジェクトのルートオブジェクト６１８を指し示す。ルートオブジェクトは、３Ｄモデルグループオブジェクト６１８である。３Ｄモデルグループオブジェクトは、１つまたは複数のモデル３Ｄプリミティブオブジェクトを含む３Ｄビジュアルツリーにおける、ルートノードまたはコレクションノード（ｃｏｌｌｅｃｔｉｏｎ  ｎｏｄｅ）の役割をする。プリミティブオブジェクトは、ビジュアル３Ｄツリーにおけるブランチの葉にあり、３Ｄモデルを作成するための描画情報を含む。図６では、２つのモデル３Ｄプリミティブオブジェクトすなわちプリミティブ６２０およびプリミティブ６２２と、モデル３Ｄライトオブジェクト（ｍｏｄｅｌ  ３Ｄ  ｌｉｇｈｔ  ｏｂｊｅｃｔ）６２４がある。ライトオブジェクト６２４のライト情報コンテンツは、３Ｄモデルから構成される３Ｄシーンを照明する光、ならびに、該当する場合は光線の方向を定義する。各３Ｄモデルプリミティブの描画情報コンテンツは、メッシュ情報およびマテリアル情報を含む。このコンテンツは、プリミティブ６２２についてのみ、メッシュ情報６２６およびマテリアル情報６２８として図示されている。マテリアル情報６２８は、単に描画コンテンツ情報を有しても、あるいは、ビジュアル２Ｄオブジェクトまたは３Ｄシーンオブジェクトの一方あるいは両方を有してもよい。図６の例では、マテリアル情報６２８は、ビジュアル２Ｄオブジェクト６３０を有する。
【００３９】
図６に例示される組込みを検討するために、図６において、図１のオブジェクト１８または２０のような３Ｄシーンオブジェクトからモデル３Ｄオブジェクト６０４への、ポインタから開始する。モデル３Ｄオブジェクト６０４は、マテリアル情報６０８を有し、マテリアル情報６０８はさらに、モデル３Ｄグループオブジェクト６１８およびカメラオブジェクト６１４を指し示す３Ｄシーンオブジェクト６１０を有する。子を有する３Ｄグループ６１８によって定義される３Ｄシーンにおいて、３Ｄプリミティブオブジェクト６２２は、ビジュアル２Ｄオブジェクト６３０を指し示すマテリアル情報を有する。このようにして、２Ｄビジュアルオブジェクトを有するビジュアルツリー階層は、３Ｄシーンオブジェクトによって作成された３Ｄシーンを、その中に組み込むことができる。一方、３Ｄシーンツリーにおけるモデル３Ｄオブジェクトは、第２のビジュアルツリーを指し示す情報を有することができ、第２のビジュアルツリーは、他のビジュアル２Ｄオブジェクトと３Ｄシーンオブジェクトの一方または両方のタイプのオブジェクトを、その中に組み込む。この３Ｄシーンオブジェクトとビジュアル２Ｄオブジェクトの組込みは、永続的に行うことができる。
【００４０】
本発明の際立った特徴の１つは、ビジュアルオブジェクトおよびモデル３Ｄオブジェクトは、生成すべき画像のビットマップを格納せず、代わりに、ビジュアルツリーが処理される場合に画像を描画するための命令を提供することである。このようなビジュアルツリーに関する処理は、すぐ上で説明した。３Ｄシーンビジュアルツリーの処理は、それと同様であるが、モデル３Ｄオブジェクトによって定義された３Ｄシーンの２Ｄビューを作成するいくつかの動作が追加される。
【００４１】
３Ｄシーンオブジェクトは、カメラビュー、すなわち３Ｄシーンの２Ｄビューを作成する。カメラビューは、仮想カメラ「位置（ｐｏｓｉｔｉｏｎ）」、カメラの「Ｌｏｏｋ  ａｔ」または照準方向、およびカメラビューの「視野（ｆｉｅｌｄ）」を識別するパラメータによって規定される。図７には、カメラのパラメータの例が示されており、カメラ位置または視点が、ＸＹＺ座標の（２，７，０）に位置している。カメラのＬｏｏｋ−ａｔまたは照準方向は、Ｌｏｏｋ−ａｔ位置のＸＹＺ座標（６，１，２）によって特定されている。カメラの視野は、３０°として指定されている。これらのカメラパラメータは、３Ｄプリミティブによって作成された３Ｄモデルを描画する場合に、カメラまたは２Ｄビューを設定するために使用される。
【００４２】
これらのカメラパラメータは、パースペクティブビューカメラ（ｐｅｒｓｐｅｃｔｉｖｅ  ｖｉｅｗ  ｃａｍｅｒａ）を反映する。本発明の譲受人に譲渡された上記の関連出願の相互参照の特許出願において説明されているカメラのような他のカメラを使用することもできる（例えば、特許文献１参照。）。例えば、平行投影カメラは、すべての光線が平行であり、主なカメラパラメータが、照準またはＬｏｏｋ−ａｔ方向および視野である、平行投影を提供する。
【００４３】
図８および９は、ビジュアル２Ｄオブジェクトと３Ｄシーンオブジェクトの両方を含むビジュアルツリーを処理するための動作フローを示す。図１０は、図８および９における動作によって処理されるビジュアルツリーの例として、図８および９の説明中に参照される。図８および９の論理操作は、（１）コンピューティングシステム上で実行されている一連のコンピュータに実装された動作またはプログラムモジュール、および／または、（２）コンピューティングシステム内で相互接続された機械論理回路または回路モジュールとして実装される。この実装形態は、本発明を実装するコンピューティングシステムの性能要件に応じて選択される問題である。したがって、本明細書に説明した本発明の実施形態を構成している論理操作は、オペレーション、構造装置、動作、またはモジュールのように様々な名称で呼ばれる。これらのオペレーション、構造装置、動作、およびモジュールは、添付の特許請求の範囲において列挙された本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用デジタル論理、およびそれらの任意の組合せとして実装されうることは、当業者には理解されよう。
【００４４】
図１０の例では、ビジュアルツリーは、コンピュータ表示画面上のウィンドウを表している。このウィンドウのためのビジュアル２Ｄルートオブジェクト１００２は、３個の子、すなわち、パネルビジュアルオブジェクト１００４、チェックボックスビジュアルオブジェクト１００６、およびビジュアル３Ｄオブジェクト１００８を有する。パネルビジュアルオブジェクト１００４は、コンテナビジュアルオブジェクトであり、２個の子、すなわち、ボタンビジュアルオブジェクト１０１０およびスクロールバービジュアルオブジェクト１０１２を有する。したがって、プログラマは、２Ｄ画像として捉えられた３Ｄシーンを提供するための３Ｄシーンオブジェクトと共に、ボタン、スクロールバー、およびチェックボックスを有するウィンドウを作成している。
【００４５】
３Ｄシーンオブジェクト１００８は、ポインタ１００９を用いてカメラパラメータ１０１１を指し示し、ポインタ１０１４を用いて３Ｄシーン１０１６を指し示す。３Ｄシーンは、２つのモデル３Ｄグループオブジェクト１０１８および１０２０、２つのモデル３Ｄプリミティブオブジェクト１０２４および１０２５、ならびにモデル３Ｄライトオブジェクト１０２２から構成される。各３Ｄプリミティブは、描画コンテキストを含み、それぞれが、異なる描画コンテキストの実現性を例示している。ライトオブジェクト１０２２およびプリミティブオブジェクト１０２４は、グループオブジェクト１０２０の子であり、ライトオブジェクト１０２２は、プリミティブオブジェクト１０２４によって描画されたモデルの照明を規定する。プリミティブオブジェクト１０２４は、メッシュ情報１０２６およびマテリアル情報１０２８を含む。プリミティブ１０２５は、メッシュ情報１０２７およびマテリアル情報１０２９を含む。マテリアル情報１０２９は、さらなるビジュアルツリーを指し示し、このビジュアルツリーは、ビジュアルツリールート１０３０、ならびに、ビジュアル２Ｄオブジェクト１０３２と３Ｄシーンオブジェクト１０３４の両方を有する。
【００４６】
図１０におけるビジュアルツリーを処理するための動作フローは、３Ｄシーンオブジェクト処理への橋渡しを伴うビジュアル２Ｄオブジェクト処理を示す図８において開始する。この動作フローの説明から分かるように、図８および９のフローは、再帰的フローである。この動作フローは、ツリーのブランチから葉に向かって処理を行い、次いで、他のブランチから葉に向かって処理を行う。図１で説明したように、ツリーのトラバースならびに画像のレンダリングの順序は、左から右であったが、この順序は、多数のやり方で編成することが可能であり、例えば、ツリーにおいて右から左への順序や、ブランチの長さによる順序、あるいは、ツリーをトラバースする他の任意のプログラマが実施したい優先順位にすることができる。
【００４７】
図８では、図８の外部の呼出し動作（図示せず）によってビジュアルツリープロセスが呼び出された場合に、図１０におけるビジュアルツリーの処理が開始する。その呼出し動作は、ウィンドウオブジェクト１００２を開始するウィンドウを作成するためのプロセスに対する一次呼出し側である。ウィンドウを作成する動作フローは、ビジュアルツリープロセス入口８００に入る。移動動作８０１は、未処理のツリー内の次のオブジェクトに処理を移動する。最初の該当するオブジェクトは、ウィンドウオブジェクト１００２である。動作フローは、呼出し動作８０３および追加オブジェクト判定動作７０４を含む、ループ８０２に入る。ビジュアル２Ｄオブジェクトの処理に伴い、ループ８０２における動作は、ツリーを経由してプロセスを進める。
【００４８】
呼出し動作８０３は、２Ｄプロセス入口点８０５を呼び出す。入口点８０５で、動作フローは、３Ｄシーン判定動作８０６に移る。判定動作８０６は、オブジェクトが３Ｄシーンオブジェクトかそれともビジュアル２Ｄオブジェクトであるかを検出する。図１０におけるウィンドウオブジェクト１００２の場合のように、オブジェクトがビジュアル２Ｄオブジェクトである場合、動作フローは、「いいえ」に分岐してビジュアル処理動作（ｖｉｓｕａｌ  ｏｐｅｒａｔｉｏｎ）８０８に進む。処理動作８０８は、ウィンドウオブジェクト１００４を実行して、ウィンドウ画像を描画する。この動作８０８については、上記の相互参照の関連特許出願に説明されている（例えば、特許文献２参照。）。ビジュアル処理動作８０８が完了した後、リターン動作８１０で、動作フローは呼出し動作８０３に戻る。
【００４９】
呼出し動作８０３で、追加オブジェクト判定動作（ｔｅｓｔ  ｏｐｅｒａｔｉｏｎ）８０４にフローが導かれる。追加オブジェクト判定動作８０４は、処理すべき追加のオブジェクトがビジュアルツリーに存在するかどうかを検出する。存在する場合、動作フローは、「はい」に分岐して移動動作８０１に進む。移動動作８０１は、ツリーの最も左のブランチを進み、次の未処理オブジェクトである図１０のパネルオブジェクト１００４に移動する。ツリーのブランチは、左から右に処理される。
【００５０】
パネルオブジェクト１００４は、もう１つのビジュアル２Ｄオブジェクトであり、上述のウィンドウオブジェクト１００２と同様に処理される。リターン動作で、再び、フローは呼出し動作８０３に戻り、そして、移動動作８０１に移る。ここで、処理は、パネルオブジェクト１００４の第１の子であるボタンビジュアル２Ｄオブジェクト１０１０に移動する。ボタンオブジェクトは、上述のオブジェクト１００２と同様に処理され、フローは、呼出し動作８０３に戻り、したがって移動動作８０１に進む。同じブランチにおける次の未処理オブジェクトは、スクロールバービジュアルオブジェクト１０１２である。これは、ビジュアル２Ｄオブジェクトであり、動作フローは、再び、３Ｄシーン判定動作８０６を経て、ビジュアル２Ｄ処理動作８０８に移動する。ビジュアル２Ｄ処理動作８０８は、上述のウィンドウオブジェクト１００２の処理と同様に、スクロールバービジュアルオブジェクト１０１２を処理する。動作フローは、再び、呼出し動作８０３に戻り、そして、移動動作８０１は、図６におけるビジュアルツリーを介して、次のブランチ内の第１のオブジェクトすなわちチェックボックスオブジェクト１００６に進む。
【００５１】
チェックボックスビジュアル２Ｄオブジェクト１００６が処理された後、移動動作８０１は、ツリーを介して３Ｄシーンオブジェクト１００８に進む。３Ｄシーンオブジェクト１００８は、判定動作８０６によって検出され、動作フローは、「はい」に分岐して呼出し動作８１２で３Ｄシーン呼出しプロセスに進む。この３Ｄシーンプロセスの動作フローは、図９に示されており、呼出し動作８１２は、動作フローを図９の３Ｄシーン入口点９００に渡す。
【００５２】
図９では、移動動作９０１が、未処理の３Ｄシーンツリーにおける次のオブジェクトに処理を移動させる。最初の該当するオブジェクトは、３Ｄシーンツリーのルートノードでもある３Ｄグループオブジェクト１０１８である。動作フローは、呼出し動作９０３および追加オブジェクト判定動作９０４を含む、ループ９０２に入る。３Ｄシーンツリー１０１６におけるモデル３Ｄオブジェクトの処理に伴い、ループ９０２における動作フローは、左から右に３Ｄシーンツリーのブランチを移動してプロセスを進める。呼出し動作９０３は、３Ｄプロセスモジュール入口点９０９を呼び出す。
【００５３】
入口点９０９で、動作フローは、グループオブジェクト判定動作９１４に移る。第１のオブジェクトは、３Ｄグループオブジェクト１０１８である。グループ判定動作９１４は、グループオブジェクトを検出し、３Ｄグループ処理動作９３０に動作フローが分岐する。グループ動作は、変形動作、あるいは、モデルクリップ動作、シェーディング動作、ワイヤフレーム動作などの設定のような他の動作でありうる。グループ処理動作９３０の後、呼出し側に戻る動作９２０で、フローは、再び、呼出し動作９０３に戻る。
【００５４】
呼出し動作９０３に戻ると、フローは、ループ９０２を回り、追加オブジェクト判定動作９０４に進む。追加オブジェクト判定動作９０４は、３Ｄシーンツリー内に処理すべき追加のオブジェクトが存在するかどうかを検出する。存在する場合、動作フローは、「はい」に分岐して移動動作９０１に進む。移動動作９０１は、３Ｄシーンツリーの最も左のブランチを進み、次の未処理オブジェクトである図１０の３Ｄグループオブジェクト１０２０に移動する。ツリーのブランチは、左から右に処理される。
【００５５】
モデル３Ｄオブジェクト１０２０は、もう１つのグループオブジェクトであり、グループ判定動作９１５は、「はい」に分岐して、グループオブジェクト１０２０を処理するためにグループ処理動作９３０に進む。リターン動作９２０で、再び、フローは呼出し動作９０３に戻り、そして、移動動作９０１に移る。ここで、処理は、３Ｄシーンツリー１０１６の同じブランチ内の次の未処理オブジェクトである、モデル３Ｄライトオブジェクト１０２２に移動する。グループオブジェクト判定動作は、フローをライトオブジェクト判定動作９１６に渡す。ライトオブジェクト１０２２が検出され、ライトオブジェクト処理動作９１８に渡される。ライト処理動作は、３Ｄグループオブジェクト１０２０によって収集された３Ｄシーンのためのライトを設定し、次いで、フローは、呼出し側に戻る動作９２０に移動する。
【００５６】
フローは呼出し動作９０３に戻り、したがって移動動作９０１に進む。同じブランチにおける次の未処理オブジェクトは、３Ｄプリミティブオブジェクト１０２４である。プリミティブオブジェクトは、３Ｄモデルを描画する。グループオブジェクト判定９１４およびライトオブジェクト判定９１６は、プリミティブオブジェクト１０２４を検出した場合、否定的結果で応答する。したがって、動作フローは、「いいえ」に分岐して、ライトオブジェクト判定９１６から、カメラパラメータを取得するカメラ取得動作９２２に進む。次いで、ビュー設定動作９２４が、カメラまたは２Ｄビューを設定し、動作フローは、２Ｄコンテンツ判定動作９２６に移る。図１０におけるプリミティブオブジェクト１０２４は、ビジュアルオブジェクトを持たず、したがって２Ｄコンテンツが付着されていないので、動作フローは、「いいえ」に分岐してプリミティブ描画動作９２８に進む。プリミティブ描画動作９２８は、モデル３Ｄプリミティブオブジェクト１０２４に含まれるメッシュ情報１０２６およびマテリアル情報１０２９に基づいて、３Ｄモデルを描画する。このモデルは、カメラパラメータに基づいてカメラビューのパースペクティブから描画される。その結果は、ライトオブジェクト１０２２に従って照射された３Ｄモデルの２Ｄ画像となる。呼出し側に戻る動作９２０で、動作フローは、呼出し動作９０３に再び戻る。追加オブジェクト判定動作９０４は、３Ｄシーンツリー内に処理すべき追加のオブジェクトが存在することを検出する。移動動作９０１は、３Ｄシーンツリーを介して次のブランチに進み、次の未処理オブジェクトである３Ｄプリミティブオブジェクト１０２５に移動する。
【００５７】
３Ｄプリミティブオブジェクト１０２５は、ビジュアル２Ｄオブジェクトとビジュアル３Ｄシーンオブジェクトの両方をマテリアル情報に含む、マテリアル情報１０２９を有する。したがって、動作フローは、２Ｄコンテンツ判定動作９２６から「はい」に分岐して、ビジュアルツリープロセス呼出し動作９３２に進む。ビジュアルツリープロセス呼出しは、図８におけるビジュアルツリー入口点８００を呼び出し、そして、移動動作８０１が、ビジュアル２Ｄオブジェクト１０３０の処理のためにプログラム制御を移動する。呼出し動作８０３は、２Ｄプロセスを呼び出し、ビジュアル処理動作８０８によってビジュアル２Ｄオブジェクト１０３０が処理される。動作フローは、呼出し側に戻る動作８１０に移り、呼出し動作８０３に戻る。次いで、移動動作８０１は、２Ｄコンテンツツリーを介してビジュアル２Ｄオブジェクト１０３２に進む。２Ｄプロセスが、ビジュアル２Ｄオブジェクト１０３２を処理するために再び呼び出される。ビジュアル処理動作によってオブジェクト１０３２が処理され、動作フローは、ループ８０２に戻る。ここで、移動動作８０１は、３Ｄシーンオブジェクト１０３４に制御を移動する。
【００５８】
呼出し動作８０３は、２Ｄプロセスを呼び出し、３Ｄシーンオブジェクト１０３４が、３Ｄシーン判定動作８０６によって検出される。その結果、呼出し動作８１２が、図９の３Ｄシーン処理を呼び出して、３Ｄシーンのモデル３Ｄオブジェクト（図示せず）が処理される。この処理は、上述の３Ｄシーン１０１６の例と同様である。図９における３Ｄシーンオブジェクト１０３４は、ビジュアル３Ｄオブジェクト１０３４によって表現される３Ｄシーンモデルを処理するために呼び出され、３Ｄシーンオブジェクト１０３４に関する最後のモデルが描画された場合、動作フローは、図９における呼出し側に戻る動作９２０に移動する。この状況における呼出し側は、呼出し動作９０３である。
【００５９】
呼出動作９０３は、追加オブジェクト判定９０４にフローを渡し、追加オブジェクト判定では、３Ｄシーンオブジェクト１０３４に関連付けられた追加のオブジェクトが存在しないことが検出される。動作フローは、「いいえ」に分岐して、呼出し側に戻る動作９０６に戻り、動作９０６は、呼出し動作８１２にフローを返す。呼出し動作は、呼び出し動作８０３にフローを渡す。追加オブジェクト判定動作８０４は、処理するべき追加のオブジェクトが、オブジェクト１０３０、１０３２、および１０３４からなる２Ｄコンテンツツリーに存在しないことを検出する。したがって、フローは「いいえ」に分岐して、呼出し側に戻る動作８１４に進む。この場合、２Ｄコンテンツツリーを取り扱うためにビジュアルツリープロセスを呼び出した呼出し動作９３２に戻る。ここで、３Ｄプリミティブ描画動作９３４が、２Ｄコンテンツツリーオブジェクト１０３０、１０３２、および１０３４によって表現されるマテリアル情報を使用して、プリミティブオブジェクト１０２５に対する３Ｄモデルを描画する。次いで、呼出し側に戻る動作９２０で、フローは呼出し動作９０３に戻る。
【００６０】
次いで、追加オブジェクト判定動作９０４が、３Ｄシーンツリー１０１６に追加のオブジェクトが存在しないことを検出し、フローを呼出し側に戻る動作９０６に渡す。ここで、リターン動作９０６は、図８の３Ｄシーン呼出し動作８１２にフローを返す。次いで、リターン動作８１０によって、フローは呼出し動作８０３に返される。追加オブジェクト判定動作８０４は、図１０のビジュアルツリーが完全に処理されたことを検出し、したがって、呼出し側に戻る動作８１０に動作フローを渡す。呼出し側に戻る動作は、プログラム制御を呼出し側９３２に返す。呼出し動作９３２は、図８の２Ｄプロセスを呼び出し、２Ｄプロセスは、ここでは、ビジュアル２Ｄオブジェクト１０３０を処理する。ビジュアル２Ｄオブジェクト１０３０は、マテリアル情報１０２８についてのルートオブジェクトである。ビジュアル処理動作８０８は、ルートオブジェクト１０３０を処理し、呼出し側に戻る動作８１０が、図１０のビジュアルツリーを処理するために呼出しを行った一次呼出し側（図示せず）にプログラム制御を返す。これで、ツリーの組み込まれた３Ｄシーンオブジェクトとビジュアル２Ｄオブジェクトを用いた図１０の例示的ビジュアルツリーの処理が完了する。
【００６１】
本発明は、コンピュータの構造的特徴、方法論的動作、およびコンピュータ可読媒体に特有の言葉で説明されているが、添付の特許請求の範囲に定義された本発明は、上述の特定の構造、動作、または媒体に必ずしも限定されないことは理解されよう。したがって、特定の構造的特徴、動作、および媒体が、請求項に係わる発明を実装する例示的な実施形態として開示されている。
【００６２】
上述の様々な実施形態は、単に例示のために示されており、それらにより本発明が限定されると解釈されるべきではない。本明細書に例示され説明された例示的実施形態および適用に従うことなく、また、添付の特許請求の範囲に示される本発明の真の趣旨および範囲から逸脱することなく、本発明に加えられうる様々な修正および変更は、当業者には容易に理解されよう。
【図面の簡単な説明】
【００６３】
【図１】３Ｄオブジェクトを２Ｄオブジェクトのビジュアルツリーに埋め込むために本発明の一実施形態により編成されたビジュアルオブジェクト階層を示す図である。
【図２】本発明の実施形態を実装することができる適切なコンピューティングシステム環境の一例を示す図である。
【図３】本発明を実装することができるグラフィックス層アーキテクチャを概略的に示すブロック図である。
【図４】グラフィックスコマンドおよび他のデータを提供するために、シーングラフをトラバースすることなどによってシーングラフを処理するための、ビジュアルおよび関連するコンポーネントのシーングラフを示す図である。
【図５】バリデーションビジュアル（ｖａｌｉｄａｔｉｏｎ  ｖｉｓｕａｌ）、描画ビジュアル、および構成された関連する描画プリミティブのシーングラフを示す図である。
【図６】ビジュアルツリー階層の一部分の詳細な例を示す図であり、ビジュアル３Ｄオブジェクトが、ビジュアル３Ｄコンテンツを有するプリミティブ３Ｄオブジェクトを有する３Ｄモデルオブジェクトを指し示していて、さらに、それが３Ｄモデルのグループからなる３Ｄシーンを指し示し、そのような３Ｄモデルはそれぞれマテリアルコンテンツとしてビジュアル２Ｄオブジェクトを有する図である。
【図７】３Ｄシーンまたはモデルのカメラビューまたは２Ｄビューを定義するのに使用されるカメラパラメータを示す図である。
【図８】ビジュアルツリーにおけるビジュアル２Ｄオブジェクトを処理するための動作フロー、および、同じビジュアルツリーにおけるビジュアル３Ｄオブジェクトの処理の移行を示す動作フローチャートである。
【図９】ビジュアルツリーにおけるビジュアル３Ｄオブジェクトを処理するための動作フロー、および、同じビジュアルツリーにおけるビジュアル２Ｄオブジェクトの処理の移行を示す動作フローチャートである。
【図１０】図８および９の動作フローチャートによる処理の例示的ビジュアルオブジェクトツリーを示す図である。
【図１】
2007536621.tif 000004
【図２】
2007536621.tif 000005
【図３】
2007536621.tif 000006
【図４】
2007536621.tif 000007
【図５】
2007536621.tif 000008
【図６】
2007536621.tif 000009
【図７】
2007536621.tif 000010
【図８】
2007536621.tif 000011
【図９】
2007536621.tif 000012
【図１０】
2007536621.tif 000013
【手続補正書】
【提出日】平成19年7月30日(2007.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータからの出力として２次元（２Ｄ）画像と３次元（３Ｄ）画像の混合を作成するための、コンピュータプログラムビジュアルオブジェクトの階層を処理するための方法であって、
ビジュアルオブジェクトの第１のツリー階層のブランチをトラバースして、リーフオブジェクトおよびブランチオブジェクトを処理するステップと、
次の未処理ビジュアルオブジェクトがビジュアル２Ｄオブジェクトであるか３Ｄシーンオブジェクトであるかを検出するステップと、
ビジュアル２Ｄオブジェクトが検出された場合に、２Ｄプロセスを呼び出してビジュアルオブジェクトを処理し、３Ｄシーンオブジェクトが検出された場合に、３Ｄプロセスを呼び出してモデル３Ｄオブジェクトを処理するステップと
を備えることを特徴とする方法。
【請求項２】
前記３Ｄプロセスは、
カメラビューを設定するステップと、
１つまたは複数のモデル３Ｄオブジェクトによって定義された１つまたは複数の３Ｄモデルの画像を描画するステップであって、前記画像は、前記１つまたは複数の３Ｄモデルの前記カメラビューに基づくステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記３Ｄモデルは、３Ｄシーンオブジェクトによってポイントされる１つまたは複数のモデル３Ｄオブジェクトの、第２のツリー階層として定義されることを特徴とする請求項２に記載の方法。
【請求項４】
前記第２のツリー内の前記１つまたは複数のモデル３Ｄオブジェクトは、前記３Ｄモデルを描画する際に使用するためのビジュアルオブジェクトの、第３のツリー階層を定義することを特徴とする請求項３に記載の方法。
【請求項５】
前記第３のツリー階層は、モデル３Ｄオブジェクトの第４のツリー階層を定義する少なくとも１つのビジュアル２Ｄオブジェクトを有し、それにより、３Ｄシーンオブジェクトとビジュアル２Ｄオブジェクトが、オブジェクトツリー階層のブランチに沿った複数の連続したオブジェクトにおいて統合され、当該の２Ｄプロセスおよび３Ｄプロセスによって処理されることを特徴とする請求項４に記載の方法。
【請求項６】
２次元画像についてのビジュアルオブジェクトと３次元モデルの２次元画像についてのビジュアルオブジェクトとを統合するための、コンピュータプログラムオブジェクトのデータ構造体で符号化されたコンピュータ可読媒体であって、前記データ構造体は、
２次元画像を作成するビジュアルオブジェクトのビジュアルツリー階層と、
３Ｄモデルおよび前記３Ｄモデルの２次元ビューを参照する３Ｄシーンオブジェクトである、１つまたは複数の前記ビジュアルオブジェクトと、
オブジェクトの第２のツリー階層によって定義される前記３Ｄモデルと、
前記３Ｄモデルを描画するための動作を定義する少なくとも１つの描画オブジェクト、および前記３Ｄモデルの照明を定義するライトビジュアルオブジェクトを含む、前記第２のツリーのオブジェクトと
を備えることを特徴とするコンピュータ可読媒体。
【請求項７】
前記３Ｄモデルの前記２次元ビューが、定義された第１の位置および定義された第２の位置のパースペクティブから定義され、前記第１および第２の位置は、前記３Ｄモデルの前記ビューのための照準方向を定義することを特徴とする請求項６に記載のコンピュータ可読媒体。
【請求項８】
前記第１の位置は、カメラ位置決め点（ｐｏｓｉｔｉｏｎ  ｐｏｉｎｔ）であり、前記第２の位置は、「Ｌｏｏｋ−ａｔ」位置決め点であることを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記描画オブジェクトは、前記モデルの表面をテクスチャリングする際に使用されるマテリアル情報を含むことを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項１０】
前記マテリアル情報は、オブジェクトの第３のツリー階層を定義することを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記データ構造体は、
第２の３Ｄモデルおよび前記第２の３Ｄモデルの２次元ビューを参照する３Ｄシーンオブジェクトである、前記第３のツリー階層の１つまたは複数の前記オブジェクトと、
オブジェクトの第４のツリー階層によって定義される前記第２の３Ｄモデルと、
前記３Ｄモデルを描画する動作を定義するための少なくとも１つの描画オブジェクト、および前記３Ｄモデルの照明を定義するライトビジュアルオブジェクトを含む、前記第４のツリーのオブジェクトと
をさらに備えることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記データ構造体における前記描画オブジェクトは、前記３Ｄモデルの輪郭を近似するための平面形状を定義するためのメッシュ情報をさらに含むことを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
２次元画像のためのビジュアルオブジェクトと、３次元モデルの２次元画像とを統合するコンピュータプログラムオブジェクトのデータ構造をインスタンス化するステップと、
前記コンピュータプログラムオブジェクトのデータ構造を符号化するステップと
を実行するためのコンピュータ実行可能命令を有し、
前記データ構造は、
２次元画像を作成するための、ビジュアルツリー階層のビジュアルオブジェクトと、
３Ｄモデルおよび３Ｄモデルの２次元画像を参照するための３Ｄシーンオブジェクトである１つまたは複数のビジュアルオブジェクトと、
少なくとも前記３Ｄモデルを描画するための動作を定義する描画オブジェクトおよび前記３Ｄモデルの証明を定義するライトビジュアルオブジェクトを有する、第２のツリーのオブジェクトと
を有することを特徴とするコンピュータ可読媒体。
【請求項１４】
定義された第１の位置および定義された第２の位置のパースペクティブから定義される前記３Ｄモデルの前記２次元ビューを符号化するステップであって、そこでは、前記第１および第２の位置は、前記３Ｄモデルの前記ビューのための照準方向を定義することを特徴とするステップのための命令をさらに有することを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
カメラ位置決め点（ｐｏｓｉｔｉｏｎ  ｐｏｉｎｔ）としての前記第１の位置および「Ｌｏｏｋ−ａｔ」位置決め点としての前記第２の位置を符号化するステップのための命令をさらに有することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記モデルの表面をテクスチャリングする際に使用するマテリアル情報を含む前記描画オブジェクトを復号化するための命令をさらに有することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
オブジェクトの第３のツリー階層を定義する前記マテリアル情報を符号化するための命令をさらに有することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記データ構造を符号化するための命令は、
第２の３Ｄモデルおよび前記第２の３Ｄモデルの２次元ビューを参照する３Ｄシーンオブジェクトである、前記第３のツリー階層の１つまたは複数のオブジェクトを符号化するステップと、
第４のツリー階層のオブジェクトにより定義される前記第２の３Ｄモデルを符号化するステップと、
前記３Ｄモデルを描画するための動作を規定する描画オブジェクトおよび前記３Ｄモデルの証明を定義するライトビジュアルオブジェクトを少なくとも含ませるために前記第４のツリーのオブジェクトを符号化するためのステップと
のための命令を有することを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記３Ｄモデルの輪郭を近似するための平面形状を定義するためのメッシュ情報を有する、前記データ構造の中の前記描画オブジェクトを符号化する命令をさらに有することを特徴とする請求項１８に記載のコンピュータ可読媒体。
【国際調査報告】
2007536621.tif 000014