(57)【要約】      （修正有）【課題】ユーザシステムリソースの使用を最小限にし且つ速度を犠牲にせず3Dオブジェクトのリアルなレンダリングを生成する。【解決手段】複数解像度のオブジェクトの3次元視覚表示を生成する方法及び装置。オブジェクトの頂点リストを検索し、該頂点リストで識別された頂点の崩壊順序を決定し、該決定された崩壊順序に応じて頂点リストで識別された頂点を再順序付けし、該崩壊順序に応じて頂点崩壊リストを作成する。頂点崩壊リストはターゲット頂点に対して崩壊させられるために隣接する頂点を指定する。オブジェクトのポリゴン数及びオブジェクトの位置、速度、及び領域に基づくフレームを動的に管理する実行時管理手段が開示される。異なる解像度レベルが伝送されるリモート接続全体にわたるデータの連続的な転送のためのシステムも開示される。【選択図】図２Ａ
2010157228.tif 000002
【特許請求の範囲】
【請求項１】
複数の解像度を有するオブジェクトの３次元視覚表現を生成する方法であって、
オブジェクトの頂点の座標を獲得するステップと
頂点崩壊リスト中に指定された前記頂点の崩壊順序を判定するステップと、
判定された崩壊順序に応じて、前記頂点リスト中に指定された頂点の順序を変更するステップと、
前記頂点崩壊リスト中に指定された崩壊順序に応じて、ターゲット頂点に関する崩壊先である隣りの頂点を指定する頂点崩壊リストを生成するステップと、
からなる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元グラフィックスの生成分野に関し、特に３次元環境における多解像度オブジェクトの生成分野に関する。
【背景技術】
【０００２】
ゲームその他のソフトウェアアプリケーションで使用するためのリアルな３次元オブジェクトレンダリングは、長い間コンピュータ業界のソフトウェアメーカ及びハードウェアメーカの目標であった。しかしながら、一般的なユーザの家庭用コンピュータ上でのリアルな３次元オブジェクトレンダリングの達成を妨げる極めて多数の問題がある。
３次元グラフィックスは、ポリゴンを用いて、レンダリングされるべきオブジェクトを作成する。かかるポリゴンが生成され操作されて、オブジェクトの湾曲及びディテールが描かれる。１つのオブジェクトの作成に使用するポリゴンの数が多くなればなるほど、該オブジェクトは詳細でリアルなものとなる。しかしながら、１つのオブジェクトの作成に使用するポリゴン数が多くなるほど該オブジェクトのレンダリングに要する計算が多くなり、このため、該オブジェクトをレンダリングする速度が低下することになる。このため、開発者の見地からすれば、速度とリアリズムとの間のトレードオフが存在する。
【０００３】
この問題の解決は容易ではない。大抵のユーザは、最新の高性能パーソナルコンピュータを有していないので、開発者は、製品を最大数の潜在的なユーザを対象とするものにしたい場合には、最小公分母のためにオブジェクトを設計しなければならない。このため、開発者は、ユーザのプロセッサが遅いものであって毎秒少数の三角形をレンダリングする能力しかないものであると仮定しなければならない。このため、開発者は、上述のトレードオフを行う場合には、（速度とリアリズムとの）方程式の速度側を支持し、一層速いマシンが全ユーザにより使用されている場合よりも少数の三角形を用いてオブジェクトを設計しなければならない。しかしながら、この解決策は、ローエンドコンピュータを有するユーザもハイエンドコンピュータを有するユーザも満足させるものとはならない。リアリズムを完全に犠牲にすることを開発者が望まないため、ローエンドコンピュータを有するユーザは、依然として低速でむらのある(choppy)イメージを得ることになる可能性が高く、またハイエンドコンピュータを有するユーザは、当該アプリケーションがハイエンドマシンの一層大きな処理能力を利用するよう設計されていないため、不自然でロボットのようなイメージを得ることになる。実際に、ハイエンドシステムによっては、ポリゴン数が少な過ぎるためにアプリケーションの処理が高速過ぎて再生や対話ができなくなる。
【０００４】
開発者が直面するもう１つの問題は、同じオブジェクトでも、該オブジェクトが必要とする詳細部分は、それが画面に近い場合の方が背景にある場合よりも多くなる、という事実である。オブジェクトが画面に近づくと、該オブジェクトを構成するポリゴンの角及び直線縁部を一層明確に見ることができる。このとき、オブジェクトの角を滑らかにし、及びオブジェクトのリアルなレンダリングを続行するためには、より多くのポリゴンが必要となる。しかしながら、最も詳細なバージョンのオブジェクトを用いたオブジェクトのレンダリングが常に可能であるとは限らない。これは、アプリケーションがあまりにも大きな計算力を必要とするために、画面上に迅速にかつ滑らかにイメージをレンダリングすることができなくなるからである。滑らかな３Ｄアニメーションを達成するために、プロセッサは、20〜60フレーム／秒で３Ｄオブジェクトをレンダリングしなければならない。各オブジェクト毎にあまりにも多くのポリゴンが使用され、及びオブジェクトが画面に近づいた際に該オブジェクトに必要となるリアリズムを提供する場合には、プロセッサは、滑らかなレンダリングのために必要となる上述の最小限のフレームレートを達成することができなくなる。
【０００５】
３次元のオブジェクトのリアルなレンダリングを可能にすると共に画面上のポリゴン数を制限する１つの解決策として、詳細レベルマッピング（Level of Detail mapping）の使用が挙げられる。詳細レベルマッピングは、画面までのオブジェクトの距離に基づいてオブジェクトの異なる解像度レベルを提供するものである。異なる詳細レベルを生成するために、開発者は、必要とされる各レベル毎に異なるバージョン（即ち変形版）のオブジェクトを生成しなければならない。典型的には、３つまたは４つのレベルしか使用されない。これは、レンダリングされるべき複数バージョンのオブジェクトの各々の格納がユーザのシステムリソースをあまりにも多く消費し得るからである。
【０００６】
詳細レベル法には幾つかの欠点がある。第１に、この方法は、上述のように、システムリソースに大きな衝撃を与えるものとなる。該方法の場合、各オブジェクトは、以前に各バージョンのオブジェクトの格納に必要とされた記憶スペースよりも３倍または４倍も多くの記憶スペースを必要とする。各レベルは、別個の頂点リスト並びに別個のデータ構造を必要とする。第２に、あるレベルから別のレベルへと遷移する際にオブジェクトポッピングとして知られる効果が発生する。オブジェクトが画面に向かって移動する際に、一層高い詳細バージョンのオブジェクトが突然レンダリングされて観察者のところで「ポップアウト(pop out)」し（即ち急に展開し）、これによりアプリケーションの３Ｄ沈み品質（immersive qualities）が破壊される。詳細レベル法はまた、各バージョンのオブジェクトの余分な生成を必要とし、このため、開発者は一層多くの時間が必要となる。詳細レベル法はまた、上述の最小公分母の問題に対処していない。各オブジェクトの最高の詳細レベルは、アプリケーションを使用することになる非能率的なコンピュータを有するユーザを考慮して作成されなければならない。このため、最高の詳細レベルは、ポリゴンを大量に含むことはできず、さもないと、ユーザのローエンドコンピュータ上に現れるイメージは、低速でむらのあるものとなる。更に、かかるイメージは、ハイエンドコンピュータの一層大きな処理能力を利用することができないものであるため、ユーザのハイエンドコンピュータ上では、角張ったロボットのようなものとなって現れることになる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明によれば、３Ｄオブジェクトのリアルなレンダリングを生成する一方、ユーザのシステムリソースの使用を最小限にし、及び速度を犠牲にすることなく忠実度を最大限にする、装置、システム、及び方法が開示される。
【課題を解決するための手段】
【０００８】
本発明は、画面上のオブジェクトの位置その他の因子に応じて頂点マージ処理を使用してオブジェクトの連続的な詳細レベルを生成し、これによりオブジェクトのポッピング効果を除去する。オブジェクトが背景に向かって移動し、このためリアルなレンダリングを提供すべくポリゴンを削減する必要がある場合には、最小限の視覚的な歪みしか生じないよう設計された方法でオブジェクトの頂点が共にマージ（即ち合併）される。頂点がマージされると、オブジェクト内の幾つかのポリゴンが除去される。したがって、オブジェクトが画面から遠くに離れるよう移動するにつれてオブジェクトのポリゴン数が連続的に減少することになる。また、オブジェクトが画面に向かって移動する場合には、オブジェクトに頂点が追加されて、該オブジェクトにポリゴンが追加される。このため、オブジェクトがユーザに近づいて精巧な詳細（即ち細部）が必要になる際に、該オブジェクトの一層リアルな描写が提供されることになる。従って、任意の所与の瞬間には、画面上のあらゆるオブジェクトは、オブジェクトのリアルなレンダリングを提供するために必要となる数のポリゴンしか有していない。不必要なポリゴンが描画されることは決してなく、このため、ユーザのシステムは最適な状態で利用されていることになる。３Ｄ環境でのオブジェクトの動きに基づき、オブジェクトに対してポリゴンが連続的に付加または除去されるため、オブジェクトのポッピング効果は生成されない。
【０００９】
更に、本発明は、ユーザのシステム上で１つのバージョンのオブジェクトが生成され格納されることしか必要とせず、このためシステムリソースに対する衝撃が最小限となる。１つの頂点リスト（これは好適には最高の詳細レベルを指定するものとなる）を使用するため、本発明によるシステムは、画面上に表示するためのオブジェクトの連続的な詳細レベルを生成することができる。また、該システムは、有利にもオブジェクトの解像度をオンザフライで上げたり下げたりすることが可能である。また、表示中の現在の詳細レベルしか格納されないため、必要となるメモリの使用が最小限となる。解像度の変更を誘導するための実行時に先立って決定される特定の最小限の情報を格納することにより、解像度の変更が最適速度で実行時に行われる。本発明の別の利点は、開発者が自分の好みに従って頂点のマージ処理を微調整する（tweak：つまむ、つねる）ことを可能にする能力にある。最後に、本発明は、ユーザのシステムの能力に応じて画面内のポリゴンの数を自動式に調節し、これにより、あらゆるユーザにとって最適なイメージが提供される。一実施態様では、本発明は、システムを監視して、フレームがレンダリングされるフレームレートを決定し、それに従い一度に画面上に許容されるポリゴンの総数を調節する。
【００１０】
更に、ターゲットフレームレートをセットすることが可能であり、これにより、シーンがレンダリングされるべき速度をユーザが指定することが可能となる。本発明は、ポリゴンの総数を動的に調節して、フレームレートが確実に維持されるようにする。代替的には、本発明は、ポリゴン数を指定することを可能にし、フレームレートにかかわらず画面上に常に該一定量のポリゴンが存在することを確実にする。
【００１１】
好適実施例では、多数の解像度を有する１つのオブジェクトの３次元の視覚的な表現の生成が、次のようにして行われる。即ち、オブジェクトについての頂点リストを読み出し、該頂点リスト中で識別された頂点に関する崩壊順序を決定し、該決定された崩壊順序に応じて前記頂点リスト中で識別された頂点の再順序付けを行い、及び前記崩壊順序に応じて頂点崩壊リストを作成する。ここで、頂点崩壊リストは、ターゲットとなる頂点（以下、ターゲット頂点と称す）について、それが崩壊させられることになる隣接する頂点を指定するするものである。該頂点リストは、他の頂点の属性を参照することなく頂点の３Ｄ座標から構成することが可能であり、また、代替的な実施例では、頂点リストは、色または法線（normal）といった頂点の他の属性を参照することも可能である。
【００１２】
より詳細には、好適実施態様では、オブジェクトの崩壊順序の決定が、次のようにして行われる。即ち、一組の崩壊経路から１つの最適な崩壊経路を決定し、該選択された崩壊経路について視覚的な歪みの因子を計算し、前記選択された崩壊経路について崩壊値を決定し、該崩壊値の比較を前記一組の崩壊経路における各経路毎に繰り返し行ってオブジェクトに対して最も小さい視覚的な歪みを生じさせる崩壊経路を決定し、崩壊させるべき次の頂点を選択し、選択された崩壊経路に沿ってオブジェクトを崩壊させ、これを最小限の解像度レベルが達成されるまで繰り返す。
【図面の簡単な説明】
【００１３】
【図１Ａ】本発明によるコンピュータシステムの好適実施例を示すブロック図である。
【図１Ｂ】本発明によるモジュール式分散型アーキテクチャによるコンピュータシステムの好適実施例を示すブロック図である。
【図２Ａ】本発明による崩壊順序リスト作成の好適実施例を示す概要図である。
【図２Ｂ】頂点が崩壊される前のオブジェクトの第１の例を示す説明図である。
【図２Ｃ】本発明に従って頂点が崩壊された後の図２Ｂのオブジェクトを示す説明図である。
【図２Ｄ】一層低い解像度のオブジェクトを示す説明図である。
【図２Ｅ】頂点が追加された図２Ｄのオブジェクトを示す説明図である。
【図３】本発明による崩壊順序の決定の好適実施例を詳細に示す説明図である。
【図４】本発明による一組の崩壊経路の決定の好適実施例を詳細に示す説明図である。
【図５】本発明による崩壊経路を選択の好適実施例を詳細に示す説明図である。
【図６】本発明による視覚的歪み因子の計算の好適実施例を詳細に示す説明図である。
【図７】本発明による選択された崩壊経路についての崩壊値の決定の好適実施例を詳細に示す説明図である。
【図８】本発明による崩壊順序の決定の代替的な好適実施例を示す説明図である。
【図９】本発明による一組の崩壊経路の決定の代替的な実施例を示す説明図である。
【図１０】本発明による実行時管理手段の好適実施例を示すフローチャートである。
【図１１】本発明による実行時管理手段の代替的な実施例を示すフローチャートである。
【図１２】本発明によるオブジェクトの最適な崩壊レベルの分析の実施例を示す説明図である。
【図１３】データのリモート伝送で使用するための本発明の一実施例を示す説明図である。
【発明を実施するための形態】
【００１４】
図１Ａは、本発明によるコンピュータシステム100の好適実施例を示している。該コンピュータシステム100は、典型的には、Intel社製Pentium（商標）プロセッサを有し、Microsoft社製Windows95（商標）オペレーティングシステムを実行するパーソナルコンピュータ等のコンピュータシステム100で実施される。ＲＯＭ112は、不変の機能を有するデータを格納する読み出し専用メモリである。ディスク124は、例えばオペレーティングシステムのモジュールやデータベースその他のモジュールといった即時アクセスを必要としないデータを格納する。一実施例では、開発者166による使用時には、ディスク124は、頂点リスト生成モジュール138、崩壊経路決定モジュール142、崩壊値分析モジュール146、崩壊経路選択モジュール150、頂点リスト158、及び崩壊リスト154を格納する。ユーザ170により使用される場合の一実施例では、ディスク124は、アプリケーション、実行時管理手段162、及び崩壊リスト154を格納する。格納されているモジュールへのアクセスが要求されると、該モジュールがＲＡＭ108へと移動される。該ＲＡＭ108は、更なる即時アクセスを必要とするデータを格納するものである。ディスプレイ120及び入力装置116は、バス118を介してプロセッサ104に接続され、ユーザ170又は開発者166がディスク124に格納されているモジュールとの対話を行うことを可能にする。
【００１５】
図１Ｂは、本発明の好適実施例を実施した分散型アーキテクチャを示している。頂点リスト生成手段180は、メモリに接続された特定用途向け集積回路（ＡＳＩＣ）から構成され、頂点リスト158を生成する。該頂点リスト158は、崩壊経路決定手段184へ送られ、該崩壊経路決定手段184は、受信した頂点リスト158から崩壊経路を決定する。この崩壊経路のデータは、崩壊値分析手段188に送られ、該崩壊値分析手段188が、該崩壊経路データを分析して、各崩壊経路毎に崩壊値を決定する。該崩壊値は、崩壊経路自体と共に崩壊経路選択手段192へと送られ、該崩壊経路選択手段192は、選択された崩壊経路に沿ってオブジェクトが崩壊された場合に該崩壊を見ている観察者に対して最小の視覚的な歪みを生成することになる崩壊経路を頂点リストから選択する。該選択された崩壊経路は、崩壊リストメモリ194に格納され、該選択された崩壊経路に応じて、新たな一組の頂点が頂点リスト生成手段138により生成される。該システムは、リストを生成する元となる残りの頂点を頂点リスト生成手段が有さなくなるまで崩壊経路の生成及び選択を続行し、次いでシステムの処理が完了する。最終的なの崩壊リストは、崩壊リストメモリから開発者のコンピュータ100のプロセッサ104へと伝送される。
【００１６】
データソース196は、処理対象となる元の頂点リストを格納する。該データソースは、オブジェクトのモデリングを要求するアプリケーション、即ち、本発明によるモデリングを必要とするオブジェクトを格納する二次のソースを含む。一実施例では、モジュール138,142,146,150は、一組のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array)として実施され、上述の別個の機能を実行するようにプログラムされる。分散型アーキテクチャにおいて別個の機能を区画化することにより、より高速でより堅牢な処理が達成される。
【００１７】
図２Ａは、崩壊順序を生成するための本発明の好適実施例の処理を示している。まず頂点リスト158を獲得する(200)。典型的には、頂点リスト158は、開発者166がモデリングすることを望む各オブジェクト毎に、該開発者166により提供される。頂点リスト158は、３Ｄ座標マップへの索引を含むことが可能であり、又は、頂点リスト158は、テクスチャマップ等の他のマップ若しくは通常のマップへと索引付けすることが可能である。頂点リスト158は、普通はその処理前に「クリーニング」される。典型的には、頂点リスト158は、互いに接近するが実際に重なることのない縁部を有する三角形を指定することが可能である。クリーニング操作を実行しなければ、それら近接する縁部が一部をなす三角形が２つの別個のポリゴンとみなされることになり、これは、モデルの一層低い解像度において孔部または割れ目を生じさせるものとなる。このため、本システムは、頂点リスト内の冗長な頂点データを探し、該冗長性を排除する。
【００１８】
頂点リスト158は、オブジェクトに使用する最大数の一組の頂点を指定し、又は、オブジェクトに使用する最大数の一組の頂点及び最小数の一組の頂点を指定することが可能である。最小数の一組の頂点は、最小限の品質レベルであって該品質レベルを超えてオブジェクトが崩壊することのできない最小限の品質レベルが規定されるように、開発者166により指定される。オブジェクト内で崩壊する頂点が多くなるほど、近くで検査した場合に該オブジェクトのリアルさが低下して見えることになる。このため、幾つかのオブジェクトについて、開発者166は、或るポイントが存在することを決定することが可能である。この或るポイントとは、該ポイントを超えた場合にオブジェクトがその真の形状としてもはや認知できなくなるポイントである（該ポイントにおけるオブジェクトが画面上で極めて小さいものであり、それ故、十分な細部を指定するために多数のポリゴンを必要としない場合であっても）。かかるオブジェクトについて、開発者166は、最小数の一組の頂点を指定する。オブジェクトは、該最小数の頂点まで崩壊することが可能となる。本システムは、その処理中にそれらの頂点を識別し、オブジェクト中のそれらの頂点を崩壊させることはない。また、頂点リスト158は、オブジェクトの漸進的に低下する解像度を表すネストされた一組の頂点を指定することができる。この場合、システムは、ネストされた頂点の組の間の補間を行う崩壊リストを生成する。
【００１９】
頂点リストを獲得した後、システムは、崩壊順序の決定（204）へと進む。オブジェクトの崩壊順序は、個々の頂点が他の頂点にマージされる順序を指定するものとなる。頂点は、考え得る最小の視覚的な歪みをオブジェクトに生じさせる目的で、崩壊経路に沿って崩壊される。例えば、図２Ｂに示すように、オブジェクトは多数の頂点を有しており、そのうちの３つがV1,V2,V3として明記されている。本発明によるシステムが、第１の崩壊経路がV1→V2であると決定した場合には、オブジェクトは図２Ｃに示すようになる。図２Ｃのオブジェクトは、図２Ｂのオブジェクトよりもレンダリングすべきポリゴンが少ない。従って、図２Ｃのオブジェクトは、図２Ｂのオブジェクトよりも低い解像度を有しており、該オブジェクトが背景に一層接近して配置された場合、又は以下で詳述する他の因子に起因して、又は解像度を高くしてもユーザ170により気づかれない可能性が高い場合に、表示されるべきものである。背景に一層接近する際に、一層少ないポリゴンを含むバージョンのオブジェクトを表示することにより、プロセッサは、前景に一層接近しているオブジェクトの処理に一層多くの時間を充てることが可能となる。これにより、フレームレートに影響を与えることなく、前景のオブジェクトが一層多くのポリゴン数を有することが可能となる。
【００２０】
オブジェクトについての崩壊順序を決定した後、該崩壊順序により指定される順序へと頂点リスト158の再順序付けを行う（208）。最初に崩壊させるべき頂点が識別され、その他の頂点が、それら頂点の崩壊優先順位に基づいて順序付けされる。システムは、この情報を格納するために、別の構成を用いる代わりに既存の頂点リスト158を用いることにより、そのメモリ中での専有面積を有利に最小限にする。次いで、システムは、頂点崩壊リスト154を生成する（212）。該頂点崩壊リストは、ターゲット頂点が崩壊される際の対象となる頂点を指定するものとなり、代替的には、該リストは、追加された頂点の接続対象となる頂点を指定するものとなる。オブジェクトの頂点を崩壊させて一層低い解像度を達成する場合、システムは、所望の解像度が得られるまで頂点リスト中で順序付けされた通りに単純に頂点を削除することが可能である。しかしながら、頂点を追加することによりオブジェクトの解像度を上げるためには、一層多くの情報が必要となる。何れの場合にも、正しい三角形のリストが、所望の解像度でシステムにより生成されなければならない。該三角形のリストは、所望の解像度を達成するためにレンダリングされなければならない三角形の全てに関する連結情報を指定するものである。
【００２１】
例えば、図２Ｄに示されているように、オブジェクトは最初は低解像度の状態にある。図２Ｅでは、該オブジェクトに頂点が追加されてポリゴン数が増大し、これにより該オブジェクトの解像度が上げられている。しかしながら、図示のように、更なる情報が存在しない場合には、システムは、該新たな頂点に接続すべき頂点を知ることができない。このため、一層多くの情報が頂点崩壊リスト154に格納される。該頂点崩壊リスト154は、各頂点が接続されることになる隣接する頂点についての連結情報を格納する。図２Ｄ及び図２Ｅの例では、V1の接続対象となる頂点も頂点崩壊リスト154中で指定され、このため、システムは描画すべき正しい縁部を知ることができる。前記連結情報を使用することにより、各解像度毎に正しい三角形リストが生成される。好適実施例では、処理を最適化するために、２つのリスト154,158に関する情報が同じ位置に格納される。崩壊情報を格納するために好適には配列その他のデータ構造が使用されるため、ターム（即ち関係）リストが記述的に使用される。
【００２２】
図３は、本発明による崩壊順序の決定の好適実施例を一層詳細に示す説明図である。最初に、一組の崩壊経路が決定される（300）。この一組の崩壊経路は、オブジェクトの現在の解像度において、各頂点と、その接続対象となる他のあらゆる頂点との間における考え得るあらゆる崩壊経路を識別するものである。したがって、図２Ｂのオブジェクトには11の頂点（V1〜V11）が存在する。V2については、４つの潜在的な崩壊経路（C1,C2,C3,C4）を識別することが可能である。
【００２３】
次いで、該一組の崩壊経路から１つの崩壊経路が選択される(304）。該選択された崩壊経路について視覚的な歪みの因子が計算される（308）。視覚的な歪みの因子は、オブジェクトに対する所定の崩壊による影響の大きさである。崩壊経路のなかには、他の崩壊経路よりも遙かに大きな視覚的影響をユーザに与えるものがある。例えば、V1がV2へと崩壊する場合、オブジェクトはその幅が顕著に縮むように見えるであろう。しかしながら、V8がV11へと崩壊する場合には、ユーザにはオブジェクトが歪んだようには見えないであろう。システムは、以下で詳述するように、面積変化、角度変化、及び局所的な体積変化を含む、幾つかの視覚的歪み因子を計算することにより、上記の差異を捉える。
【００２４】
各崩壊経路には、該崩壊経路について計算された視覚的歪み因子の関数として、崩壊値が１つずつ与えられる（312）。該崩壊値は、好適には、崩壊経路の視覚的歪み因子の重み付けられた組み合わせである。異なる因子を重み付けすることにより、開発者166が開発対象となる特定アプリケーションで適用される因子の重要性を指定することが可能となる。
【００２５】
システムは、崩壊経路が更に存在するか否かを決定する（316）。崩壊経路が更に存在する場合には、次の崩壊経路が選択され（304）、上述の処理が繰り返される。また、崩壊経路がそれ以上存在しない場合には、システムは、崩壊経路の崩壊値を比較して、オブジェクトに対して最も小さな視覚的歪みを生じさせる崩壊経路を決定する（320）。
【００２６】
崩壊すべき頂点は、前記決定された崩壊経路に応じて識別され（324）、該頂点に対して崩壊優先順位が割り当てられ（326）、該崩壊優先順位が頂点リストの再順序づけを行う際に使用される。オブジェクトは前記崩壊経路に沿って崩壊される（328）。システムは、最小数の頂点からなる頂点の組以外に２つ以上の頂点が残っているか否かを判定する（332）。かかる頂点が２つ以上残っていない場合には、次いでシステムは頂点リスト158の再順序づけへと移行する。また、かかる頂点が２つ以上残っている場合には、システムは、該崩壊されたオブジェクトを新たに処理されるべきオブジェクトとして扱い、上述の処理を繰り返す。システムは、最小限の視覚的歪みをオブジェクトに生じさせる一組の崩壊経路が決定され、該崩壊経路によりオブジェクトがその最大限の解像度から最小限の解像度へと縮小されるまで、オブジェクトの処理を行う。格納される各崩壊経路毎に、ターゲット頂点が接続されることになる頂点、及び三角形リストにより表される連結性の変化が格納される。これにより、頂点がオブジェクトに追加された際に、該追加された頂点に他の頂点がどの三角形によって接続されるかをシステムが識別することが可能となる。この情報は、上述のように頂点崩壊リスト154中に格納される。
【００２７】
図４は、一組の崩壊経路を決定する方法の代替実施例を示している。まずターゲット頂点が選択される（400）。オブジェクトの既存の頂点のうちの任意の１つを選択することが可能であり、この際に順序は重要ではない。次いで、各頂点を検査するために最大数の隣接する頂点を指定する入力が受信される（404）。これは、開発者166がシステムの処理時間を制御することを可能にする。各頂点毎にシステムにより検査される隣接する頂点の数を制限することにより、システムはその分だけ多くの計算を実施する必要がなくなる。
【００２８】
次いで、隣接する頂点が識別される（408）。隣接する頂点は、ターゲット頂点への縁部に沿って接続される頂点である。隣接する頂点は、ターゲット頂点に直接に接続される任意の頂点、並びに別の１つ又は２つ以上の頂点を介してターゲット頂点へと接続される任意の頂点を含むものとなる。このリストは、あらゆる頂点が処理される場合には極めて大きなものとなり得る、ということが推測されよう。しかしながら、上述のように、隣接する頂点の最大数を指定して処理を最小限にすることが可能である。
【００２９】
隣接する頂点を識別した後、ターゲット頂点と隣接する頂点との間で崩壊経路が決定される（412）。システムは、最大数の崩壊経路に達したか否かを判定する（416）。最大数の崩壊経路に達した場合には、システムは更なる頂点が存在するか否かを判定する（420）。更なる頂点が存在する場合には、上述のように他の頂点についての崩壊経路が計算される。また、更なる頂点が存在しない場合には、システムは、一組の崩壊経路から１つの崩壊経路を選択する（304）。
【００３０】
図５は、崩壊経路の選択の一実施例を示している。該実施例では、崩壊値を有することになる崩壊経路の数を制限することにより、プロセッサによる計算が最小限にされる。オブジェクトを介した最初の反復のために、あらゆる崩壊経路について崩壊値が計算される。崩壊経路が選択された後、該崩壊経路に沿ってオブジェクトが崩壊される。新たな一組の崩壊経路が、上述のように生成される。しかしながら、この反復では、オブジェクトを崩壊させるために以前に使用された崩壊経路から所定距離内にある崩壊経路について、崩壊値が生成される。前回の崩壊の後、多数の崩壊経路が同じ状態を維持し、それらの崩壊値（即ち、オブジェクトについての崩壊による視覚的な影響の測定値）もまた同じ状態を維持することになる。
【００３１】
例えば、図２Ｂにおいて、C1が崩壊経路として選ばれた場合、その結果として図２Ｃに示すオブジェクトが得られる。V8とV11との間の崩壊経路の崩壊値は、かかる２つの変形前後のオブジェクトで同じ状態を維持する。これは、V8及びV11の周りの頂点がC1の崩壊による影響を受けないからである。従って、V8〜V11についての崩壊経路の崩壊値を再計算する必要がない。あらゆる崩壊の後にあらゆる崩壊経路について視覚的歪み因子を計算するということがないため、システムの計算は大幅に最小限なものとなり、処理速度が遙かに速くなる。    
【００３２】
したがって、図５に示すように、システムは、崩壊経路が前の崩壊経路からしきい値距離内にあるか否かを判定する（500）。該しきい値は、開発者166がプリセットし又は規定することが可能なものである。開発者166は、異なるしきい値で実験を行い、計算を最小限にしつつ精度を最大限にすることが可能である。崩壊経路がしきい値内にある場合には、システムは、該崩壊経路について視覚的歪み因子を計算する（308）。また、崩壊経路がしきい値内にない場合には、既存の崩壊値が該崩壊経路の崩壊値として続けて使用され、そして次の崩壊経路が選択される。
【００３３】
図６は、本発明の好適実施例に従って好適に計算される３つの視覚的歪み因子を示している。第１に、選択された崩壊経路に沿ったオブジェクトの崩壊に応じてオブジェクトの面積変化が計算される（600）。該オブジェクトの面積変化の計算は、崩壊前のオブジェクトの表面積を計算し、次いで崩壊後のオブジェクトの表面積を計算することにより行われる。該２つの表面積間の差は、崩壊処理を受けることになるオブジェクトの表面積に対する影響を示すものとなる。第２に、崩壊経路に沿ったオブジェクトの崩壊に応じて角度変化が計算される（604）。該角度変化は、崩壊を受けることになるオブジェクトの局所的な曲率に対する影響の尺度となるものである。システムは、頂点が一部をなす三角形の法線を計算する。大きい曲率を表す複数の点は、オブジェクトの視覚的な外観にとって一層重要なものである。従って、かかる点には、それらの崩壊優先順位を低下させる尺度が割り当てられる。第３に、崩壊に応じて局所的な体積変化が計算される（608）。ターゲット頂点を角錐の頂点として用いて、該ターゲット頂点から角錐が生成される。該角錐の基部は、３つの連続する隣接した頂点より形成された三角形である。かかる一連の角錐が、隣接する三つ組の頂点の連続する複数組から構築され、それらの体積が合計される。オブジェクトの体積が決定され、ターゲット頂点が崩壊経路に沿って崩壊されて、再び体積が計算される。この体積変化は、オブジェクトの視覚的外観に対する影響を表すものとして使用される。角錐の「局所的な体積」の変化の計算は、オブジェクトの「真の」体積の計算よりも遙かに速く、またオブジェクトの幾何学的配置を一層精確に示すものとなる。当業者にとって既知である他の視覚的歪みの尺度もまた本発明に従って使用することが可能である。表面偏差といった誤差の統計的尺度もまた、視覚的歪みの計算に使用することが可能である。
【００３４】
図７は、選択された崩壊経路についての崩壊値の決定の代替実施例を示している。該実施例では、システムは、開発者166から、異なる因子についてその優先順位の重みを指定する入力を受容する（700）。システムは、各因子に指定された優先順位重みを乗算し（704）、次いで各因子を結合して崩壊値を得る（708）。開発者166が重みを指定することを可能とすることにより、一層独創的な制御が開発者166に許容されることになる。開発者166は、オブジェクトが極めて先がとがったものであり、それ故、角度変化因子に最も高い重みを与えるべきである、と決定することが可能である。よって、開発者166は、角度変化因子に高い重みを指定することになる。大きな角度変化因子を有するオブジェクトの崩壊は、崩壊のための優先順位が一層低く設定されることになる。また、オブジェクトが有機的な形状を表すものである場合には、局所的体積因子が一層重要になる。開発者166は、局所的体積因子に一層高い重みを指定し、局所的体積に大きな影響を与える崩壊の優先順位が一層低く設定されることになる。開発者166が、重みを指定しない場合には、各因子を均等に重み付けするデフォルト値が使用される。一実施例では、開発者166は、因子を考慮対象から外すことにより、システムの処理速度を上げることが可能である。例えば、開発者166は、局所的な体積変化は特定のオブジェクトには関係しないものである、と決定することが可能である。次いで、開発者166は、該オブジェクトについて局所的な体積変化が計算されるべきでないことを指定する。これにより、システムはオブジェクトを遙かに高速に処理することが可能となる。
【００３５】
図８は、崩壊順序決定ステップ204の代替実施例を示している。該実施例により、開発者166が崩壊順序を対話的に「微調整する」ことが可能となる。オブジェクトの視覚的な歪みは本質的に主観的な決定であるため、本発明は、開発者166の主観的な嗜好をオブジェクトの崩壊態様に導入することを有益にも可能とする。最初に、一組の崩壊経路が上述のように決定される（800）。次いで、オブジェクトがユーザに対して現在の解像度レベルで表示される。これが最初の反復である場合には、該オブジェクトは最大の解像度レベルとなる。システムは、前記一組の崩壊経路から１つの崩壊経路をランダムに選択して、オブジェクトを崩壊させる。システムは、該崩壊させたオブジェクトを開発者166に対して表示し、該開発者166はオブジェクトに対する崩壊の影響を確認することができる。開発者166が該崩壊を是認した場合、該開発者166は該経路を選択する。該経路を選択する入力をシステムが受信した（820）場合、システムは、既に選択されている経路の数に基づき前記経路に崩壊の優先順位付けを行う。また、開発者166が崩壊を是認しない場合には、次の崩壊経路が選択されて処理が繰り返される。
【００３６】
一実施例では、各崩壊経路毎に崩壊値が計算され、該経路が上述のように優先順位付けされる。最初に崩壊するように指定された崩壊経路は、崩壊されるべき最初の経路として選択されて、開発者166に対して表示される。該崩壊経路を開発者166が選択する場合には、該経路はその優先順位を維持する。新たな一組の崩壊経路が生成され、該新たな一組の崩壊経路から最も高く優先順位付けされた崩壊経路が選択されて、開発者166に対して表示される。該崩壊経路を開発者166が選択しない場合には、次の最も高く優先順位付けられた経路が選択されて、開発者166に対して表示される。勿論、開発者166は、いつでも、該開発者166が崩壊させることを望むオブジェクト内に見える特定の経路を指定することが可能である。かかる開発者166による選択は、システムによる事前のあらゆる優先順位付けに優先するものとなる。
【００３７】
図９は、本発明の一実施例を示すものであり、この場合には、崩壊経路の計算を行う前に最小数の頂点からなる組が開発者166により指定される。上述のように、該最小数の頂点からなる組は、開発者166が崩壊させることを望まない一組の頂点である。したがって、図９に示すように、崩壊経路が選択された（900）後、システムは、該崩壊経路が、前記最小数の一組の頂点において指定された１つの頂点を崩壊させるものであるか否かを決定する(904)。最小数の一組の頂点における頂点が存在する場合には、前記崩壊経路は選択されない。
【００３８】
別の実施例では、テクスチャマップが頂点により索引付けされる。テクスチャマップは、マップされた領域にテクスチャを提供してリアルな外観をオブジェクトに与えるものである。異なる三角形についてのテクスチャは互いに全く異なるものとなる可能性がある。従って、１つの三角形を崩壊させる場合、システムは、オブジェクトの外観に対する三角形のテクスチャの損失による影響を判定しなければならない。崩壊がオブジェクトの外観に与えることになる影響のため、テクスチャの不連続部分の縁上にある頂点は崩壊させない。このため、崩壊経路を選択する場合には、崩壊経路内の頂点を検査して、該頂点がテクスチャの不連続部分の縁上に位置しているか否かを判定する。該頂点がテクスチャの不連続部分の縁上に位置している場合には、該崩壊経路は選択しない。
【００３９】
図１０は、本発明の実行時管理手段を示している。該実行時管理手段は、アプリケーションのリアルタイム実行時に必要に応じてオブジェクトに対してポリゴンの追加または削減を実行するものである。該実行時管理手段は、コンピュータのグラフィックシステム、及びオブジェクトの処理を行ったアプリケーションプログラムと関連して動作する。アプリケーションの開始時に、実行時管理手段は、該アプリケーションにおいて参照されるオブジェクトを崩壊させる（1000）。実行時管理手段は、オブジェクトの各崩壊レベル毎の拡張された頂点崩壊情報をテーブル中に格納する（1004）。該拡張された頂点崩壊情報は、頂点崩壊リスト154中に格納されている情報であり、該頂点崩壊リスト154は、崩壊する各頂点の崩壊先となる頂点、並びにモデルから削除する必要のある三角形を指定するものである。拡張された頂点崩壊情報をテーブルに格納することにより、プロセッサがポリゴンの追加及び削除を一層高速に行うことが可能となる。これは、プロセッサが、追加、削除、又は再索引付けの対象となる頂点及び三角形を決定するのに単に前記テーブルにアクセスするだけでよく、過度に要求される計算を全く実行する必要がないからである。
【００４０】
一実施例では、各オブジェクト毎の拡張されたテーブルが開発段階で既に作成されており、該テーブルは、アプリケーションの開始時にアクセスを容易させるべくデータメモリに単にロードされる。実行時管理手段は、オブジェクトからの崩壊レベルに関するアプリケーションからの要求を待つ。各オブジェクトの当初の外観は、デフォルトの解像度で表される。アプリケーション又はグラフィクスプログラムが、実行時管理手段からの増大または低下された解像度を要求（1008）する際に、実行時管理手段は、該要求された解像度が、オブジェクトの現在の崩壊レベルよりもより大きい崩壊レベルを必要とするものであるか否かを決定する（1012）。オブジェクトの現在の崩壊レベルは、メモリに格納されているオブジェクトの唯一のものであるため、現在の崩壊レベルは既知である。要求された解像度が、オブジェクトについて一層高い崩壊レベルを必要とするものである場合には、該要求された崩壊レベルが満たされるまで、テーブル中の頂点崩壊情報に従ってオブジェクトに頂点が追加される。この連続的な頂点の追加は、オブジェクトの滑らかなレンダリングを提供し、上述のオブジェクトポッピングという問題を無くすものとなる。同様に、要求された解像度が、現在の崩壊レベルより低い崩壊レベルを必要とするものである場合には、オブジェクトの正しい解像度が達成されるまで頂点が崩壊される（1016）。また、前記テーブルは、オブジェクトに対してポリゴンの追加および削除をその要求時に瞬時に行うことも可能にする。該テーブルはまた、全バージョンのオブジェクトを格納する必要がないため、本発明により最小限のメモリ占有率が達成可能となる。また、オブジェクトに対する連続的なポリゴンの追加または削減により、オブジェクトポッピングによるアーチファクトがなくなる。したがって、本発明によれば、多数レベルの解像度を提供すると共にリソースの使用を最小限にする、効率が高くて高速のオブジェクトモデリングプロセスが開示される。
【００４１】
図１１は、オブジェクトを分析して崩壊レベルを決定する実行時管理手段の代替実施例を示している。該実施例では、上述のように、オブジェクトが崩壊され（1100）、各崩壊レベル毎に頂点情報が格納される（1104）。しかしながら、該実施例では、オブジェクトが分析されて（1108）最適な崩壊レベルが決定される。実行時管理手段が一層高い解像度を必要とする最適な崩壊レベルを決定する場合（1112）には、オブジェクトに頂点が追加される（1120）。また、最適な崩壊レベルが現在の解像度よりも低い解像度を必要とする場合には、頂点が崩壊される（1116）。
【００４２】
図１２は、オブジェクトの最適な崩壊レベルを分析するための幾つかの方法を示している。これらの方法のうちの１つ又は全てを本発明に従って使用して最適な崩壊レベルを決定することができる。最初に、オブジェクトの速度が決定される（1200）。該オブジェクトの速度は、オブジェクトが現在のフレームと直前のフレームとの間で移動した距離を測定し、該距離をそれらフレーム間で経過した時間で除算することにより、決定される。代替的には、該速度は、最も最近レンダリングされた複数のフレームのうちの幾つかに亘って移動した距離を測定し、該距離を、該最近のフレームシーケンス全体のレンダリングについての全経過時間で除算することにより、計算される。次いで、該決定された速度が、オブジェクトの速度を崩壊レベルへとマップするテーブルと比較される。このテーブルは、所与のオブジェクトに関して特に設計されたものとすることが可能であり、又は、速度と崩壊レベルとの間の一般的な相関関係を与える大域テーブルとすることが可能である。オブジェクトは、その移動速度が増大すると、そのリアルなレンダリングのために一層低い解像度を必要とする。これは、かかる動きが、オブジェクトの一層細かな詳細を不明瞭にする傾向を有するものだからである。このため、オブジェクトの現在の速度がテーブルと比較されて、該速度で必要となる解像度が決定される。該必要となる解像度が当該オブジェクトの現在の崩壊レベルよりも大きい崩壊レベルであると実行時管理手段が決定した場合（1232）には、上述のように一層多くのポリゴンが追加される（1236）。オブジェクトが必要とする解像度が、現在の崩壊レベルにより与えられる解像度よりも低い場合には、ポリゴンが削減される（1240）。このように、実行時管理手段は、オブジェクトの解像度を動的に管理して、最適な忠実度を提供すると共に処理パワーの使用を最小限にする。
【００４３】
オブジェクトの突出した領域は、オブジェクトについての最適な崩壊レベルを決定するために実行時管理手段により使用されるもう１つの因子である。オブジェクトの突出した領域は、ディスプレイ上へのレンダリング時にオブジェクトが占有することになる領域である。該オブジェクトの突出した領域が大きいほど、必要となる解像度が高くなる。システムは、オブジェクトの現在の突出した領域を決定し（1208）、該突出した領域を、突出した領域と崩壊レベルとを相関させるテーブルと比較する（1212）。次いで、該比較結果に従ってポリゴン数が調整される（1232）。
【００４４】
本発明はまた、大域的なポリゴン数の管理も提供する。この実施例では、ユーザは、各フレーム毎にターゲットとなるポリゴン数（以下、ターゲットポリゴン数と称す）を選択する。該実施例では、システムは、１フレーム中に現在表示されているポリゴン数を決定する（1216）。１フレーム中に表示されているポリゴンの総数は、画面上にあるオブジェクトを判定して、その各オブジェクトのポリゴン数を合計することにより、または、１フレームで画面上に描画した三角形の数に関する内部的なタリーをレンダリング手段に保持させることにより、計算することが可能である。この数は、所定のターゲットポリゴン数と比較（1220）される。実行時管理手段が、現在のポリゴン数がターゲットポリゴン数よりも小さいと判定した場合（1232）には、更なるポリゴンが追加される（1236）。また、現在のポリゴン数がターゲットポリゴン数よりも大きいと判定された場合には、ポリゴンが削減される（1240）。どのオブジェクトにポリゴンを追加し、どのオブジェクトからポリゴンを削減するかについての決定は、多くの方法で実施することが可能である。全てのポリゴンに対してポリゴンを一様に追加し又は削除することが可能である。代替的には、オブジェクトを一つ一つ分析し、個々のオブジェクト単位でポリゴンの追加または削除を行うことが可能である。
【００４５】
代替的には、ユーザ170がターゲットとなるフレームレート（以下、ターゲットフレームレートと称す）を選択することが可能である。実行時管理手段は、プロセッサのクロックを監視して、フレームのレンダリングに要した時間を判定することにより、現在のフレームレートを決定する（1224）。次いで、該現在のフレームレートがターゲットフレームレートと比較される（1228）。実行時管理手段が、現在のフレームレートがターゲットフレームレートよりも速いと判定した場合（1232）には、フレームにポリゴンを追加して（1236）フレームレートを遅くする。また、現在のフレームレートがターゲットフレームレートよりも遅い場合には、フレームからポリゴンを削減して（1240）フレームレートを速くする。このように、実行時管理手段は、ユーザ170からの最小限の入力しか必要としない動的及び大域的なポリゴン管理を可能にする。この管理プロセスにより、本発明を万能のプラットフォームとすることが可能となり、あたかも本発明が一層低速のプロセッサを有するシステムで使用されているかのように、ターゲットフレームレートまたはポリゴン数を低く設定することが可能となり、また上述の利益が依然として提供される。しかしながら、一層高速のプロセッサを有するシステムは、一層高いフレームレートまたはポリゴン数を有するように設定することが可能であり、該システムの一層高い処理能力が本発明により最大限にされる。
【００４６】
図１３に示すように、本発明は、リモート接続を介してデータを伝送するために使用することも可能である。リモート接続（例えばインターネット）を介してデータを受信する場合、ユーザ170は、要求したオブジェクトが表示される前にデータがダウンロードされるのを待つことが多い。本発明によれば、リモート接続を介してオブジェクトを要求する際に、最小限の頂点セット即ち最低の崩壊レベルのオブジェクトがユーザ170へと伝送される。この最低解像度バージョンのオブジェクトは、表示に必要となるデータが一層少ないものであり、このため、ユーザ170に遙かに速く伝送される。次いで、追加の崩壊レベルがユーザ170に連続して送られて、オブジェクトの解像度がその最大の解像度まで増大される。各崩壊レベルは、典型的には２、３のポリゴンしか追加しないものであるので、各崩壊レベルもまた極めて迅速に伝送される。この方法により、ユーザが、最低解像度バージョンのオブジェクトを極めて迅速に受信し、次いでその後にまもなく完全な解像度バージョンのオブジェクトを受信することが可能となる。ユーザ170は、完全な解像度のオブジェクトを必要としない場合には、不要なデータ（一層高解像度のデータ）が伝送されるのを待った後にオブジェクトを見る、という必要はない。また、ユーザ170が、最大解像度には達しないが一層高い解像度を必要とする場合であっても、本発明は、該一層高い解像度をパケットで伝送し、これにより、ユーザ170は、最大解像度バージョンのオブジェクト全体がダウンロードされるのを待つのに要することになる時間よりも短い時間でオブジェクトを見ることが可能となる。
【００４７】
図１３に示されているように、リモート接続にわたりオブジェクトについての要求が受信される（1300）。該要求に応じて、最小解像度のオブジェクトが要求側へと送信される（1304）。該最小解像度のオブジェクトは、表示可能であると共にオブジェクトを依然として精確に表現することが可能である最低解像度のオブジェクトである。オブジェクトの最小限の数の頂点からなる組が、開発者166によって指定された場合、該組は、送信すべき最小限の解像度として使用される。次いで、オブジェクトの崩壊レベルを次の一層高い解像度まで上げるために必要となる頂点を含む１パケットの情報が送信される（1308）。上記で詳述したように、該情報は、オブジェクトの解像度を上げるために必要となる頂点および接続を含むものとなる。次いで、システムは、最大解像度またはターゲット解像度が送信されたか否かを判定する（1312）。オブジェクトの解像度をその最大解像度まで上げるために必要となる情報を含むパケットが送信された場合に、システムは、最大解像度が達成されたことを知る。代替的には、オブジェクトのダウンロードを要求する際に、ユーザ170が、ターゲット解像度を指定することが可能である。該ターゲット解像度の随意選択により、ユーザが、該ユーザの忠実度上の必要性を満たすようデータ転送に必要となる時間を最適化することが可能となる。ユーザ170が、最大解像度のオブジェクトを必要としない場合、ユーザは、その旨の指定を行うことができ、中間的な解像度のオブジェクトのみが送信される。該随意選択は、例えば、ユーザ170がダウンロード中のものとは異なるオブジェクトを見たがっている場合、または、ユーザ170が高解像度で見ることができないコンピュータを有している場合に、有益なものである。ターゲット解像度または最大解像度が満たされなかった場合には、別のパケットがユーザ170に送信される。ターゲット解像度が満たされた場合には、データ伝送が完了する。
【００４８】
本発明の例示的実施形態を以下に列挙する。
１．多数の解像度を有するオブジェクトの３次元の視覚的な表現を生成するための方法であって、
オブジェクトの頂点の座標を獲得し、
該頂点のリスト中で識別された頂点について崩壊順序を決定し、
該決定された崩壊順序に応じて前記頂点のリスト中で識別された頂点の再順序付けを行い、
ターゲット頂点等について崩壊先となる隣接する頂点を指定する頂点崩壊リストを前記崩壊順序に応じて生成する、
という各ステップを有する、多数の解像度を有するオブジェクトの３次元の視覚的な表現を生成するための方法。
２．崩壊順序を決定する前記ステップが、
一組の崩壊経路を決定し、
該一組の崩壊経路から１つの崩壊経路を選択し、
該選択された崩壊経路について視覚的歪み因子を計算し、
該計算された視覚的歪み因子に応じて前記選択された崩壊経路について崩壊値を決定し、
崩壊経路を選択する前記ステップ、視覚的歪み因子を計算する前記ステップ、及び各崩壊経路毎に崩壊値を決定する前記ステップを繰り返し、
崩壊させるべき次の頂点を、最小の視覚的歪みをオブジェクトに生じさせる崩壊経路を有する頂点として選択し、
該崩壊させるべき次の頂点をそれに対応する崩壊経路に沿って崩壊させ、
最小の解像度レベルが達成されるまで上記各ステップを繰り返す、
という各ステップを有する、１に記載の方法。
３．視覚的歪み因子を計算する前記ステップが、
前記選択された崩壊経路について面積変化因子を計算し、
前記選択された崩壊経路について角度変化因子を計算し、
前記選択された崩壊経路について局所的体積変化因子を計算する、
という各ステップを有する、２に記載の方法。
４．前記選択された崩壊経路について面積変化因子を計算する前記ステップが、
前記崩壊経路に沿ってターゲット頂点を崩壊させた後にオブジェクトの面積を計算し、
該計算された面積を前記崩壊の前のオブジェクトの面積から除算する、
という各ステップを有する、３に記載の方法。
５．前記選択された崩壊経路について局所的体積変化因子を計算する前記ステップが、
前記崩壊経路に沿ってターゲット頂点を崩壊させた後にオブジェクトの体積を計算し、
該計算された体積を前記崩壊の前のオブジェクトの体積から減算する、
という各ステップを有する、３に記載の方法。
６．体積を計算する前記ステップが、
角錐の頂点となるべきターゲット頂点を選択し、
該ターゲット頂点に３つの連続し隣接する頂点を接続する三角形から前記角錐の基部を形成し、
該角錐の体積を計算し、
３つの連続し隣接する頂点からなる次の一組の頂点から次の角錐を形成し、
該次の角錐の体積を計算し、
３つの連続し隣接する頂点からなる一意の組の全てについて、次の角錐を形成する前記ステップと体積を計算する前記ステップとを繰り返し、
前記角錐の前記体積を合計してオブジェクトの体積を得る、
という各ステップを有する、５に記載の方法。
７．ユーザから視覚的歪み因子についての優先順位重みを指定する入力を受信するステップを有し、崩壊値を決定する前記ステップが、前記計算された視覚的歪み因子と前記優先順位重みとに応じて前記選択された崩壊経路についての崩壊値を決定するステップを有する、２に記載の方法。
８．崩壊させるべき次の頂点をそれに対応する崩壊経路に沿って崩壊させる前記ステップに応じて前記次の頂点に対する局所的な崩壊経路が識別され、選択された崩壊経路ごとに視覚的歪み因子を計算する前記ステップ及び選択された崩壊経路について崩壊値を決定する前記ステップが、前記局所的な崩壊経路についてのみ繰り返される、２に記載の方法。
９．一組の崩壊経路を決定する前記ステップが、
１つのターゲット頂点を選択し、
１つのターゲット頂点についての最大数の隣接頂点を指定する入力を受信し、
該受信された入力に応じて多数の隣接頂点を識別し、
前記１つのターゲット頂点及び前記識別された隣接頂点の１つの座標に応じて崩壊経路を決定し、
該決定ステップを前記識別された隣接頂点の全てについて繰り返し、
ターゲット頂点を選択する前記ステップ、隣接頂点を識別する前記ステップ、崩壊経路を決定する前記ステップ、及び該決定ステップを前記識別された隣接頂点の全てについて繰り返す前記ステップを、複数の頂点について繰り返す、
という各ステップを有する、２に記載の方法。
１０．前記崩壊経路の選択に応じて、該選択された崩壊経路に沿ってオブジェクトが崩壊される前に該オブジェクトを表示し、
前記選択された崩壊経路に沿って前記オブジェクトを崩壊させ、
前記選択された崩壊経路に沿って崩壊された後に前記オブジェクトを表示し、
崩壊経路を選択する入力の受信に応じて、該崩壊経路及びそれに対応する頂点を、崩壊させるべき次の頂点として崩壊順序リストに格納する、
という各ステップを有する、２に記載の方法。
１１．最小数の一組の頂点を指定する入力を受信するステップを有し、崩壊順序を決定する前記ステップが、前記指定された最小数の一組の頂点が崩壊されないように崩壊順序を決定するステップを有する、１に記載の方法。
１２．多数の解像度レベルのオブジェクトが存在する場合における１に記載の方法であって、
前記解像度レベルを最高解像度レベルから最低解像度レベルへと順序付けし、
崩壊のために最高解像度レベルを選択し、
崩壊順序を決定する前記ステップが、最高解像度レベルについて崩壊順序を決定するステップを含み、このとき、次に低い解像度レベルの頂点は崩壊されず、
前記選択ステップ及び前記決定ステップを各解像度レベル毎に繰り返す、
という各ステップを有する、１に記載の方法。
１３．前記頂点の座標に頂点の属性が関連づけされる、１に記載の方法。
１４．頂点がテクスチャマップ座標を有している、２に記載の方法であって、
選択された崩壊経路に応じて第１の頂点を第２の頂点へと崩壊させて新たな頂点を生成し、該新たな頂点に前記第２の頂点のテクスチャマップ座標を割り当て、
前記第１の頂点及び前記第２の頂点がテクスチャ不連続部の縁部上にあることに応じて前記崩壊経路を使用すべきでない崩壊経路として識別する、
という各ステップを有する、２に記載の方法。
１５．頂点が法線マップ座標を有している、２に記載の方法であって、
選択された崩壊経路に応じて第１の頂点を第２の頂点へと崩壊させて新たな頂点を生成し、該新たな頂点に前記第２の頂点の法線マップ座標を割り当てる、
という各ステップを有する、２に記載の方法。
１６．頂点がカラーマップ座標を有している、２に記載の方法であって、
選択された崩壊経路に応じて第１の頂点を第２の頂点へと崩壊させて新たな頂点を生成し、新たな頂点に前記第２の頂点のカラーマップ座標を割り当て、
前記第１の頂点及び前記第２の頂点がカラー不連続部の縁部上にあることに応じて前記崩壊経路を使用すべきでない崩壊経路として識別する、
という各ステップを有する、２に記載の方法。
１７．オブジェクトについて頂点リスト及び隣接リストが格納され、前記頂点リスト中の頂点が崩壊優先順位によって識別され、前記隣接リストが前記頂点についての崩壊経路を識別する、オブジェクトの表示方法であって、
前記頂点リスト及び前記隣接リストに応じてオブジェクトの崩壊を実行し、
現在の崩壊レベルの次に高い崩壊レベル及び現在の崩壊レベルの次に低い崩壊レベルにおけるオブジェクトにどの頂点が存在するかを示す頂点情報を各崩壊レベル毎に格納し、
オブジェクトについての崩壊レベルを要求する入力を受信し、
現在の崩壊レベルよりも高い解像度を必要とする前記要求された崩壊レベルに応じて、前記頂点リスト及び前記格納された頂点情報に応じてオブジェクトに頂点を追加し、
現在の崩壊レベルよりも低い解像度を必要とする前記要求された崩壊レベルに応じて、前記頂点リスト及び前記格納された頂点情報に応じてオブジェクト中の頂点を崩壊させる、
という各ステップを有する、オブジェクトの表示方法。
１８．頂点についての三角形連結情報を含む拡張された崩壊情報を格納するステップを有する、１７に記載の方法。
１９．オブジェクトについて頂点リスト及び隣接リストが格納され、前記頂点リスト中の頂点が崩壊優先順位によって識別され、前記隣接リストが前記頂点についての崩壊経路を識別する、オブジェクトの表示方法であって、
前記頂点リスト及び前記隣接リストに応じてオブジェクトの崩壊を実行し、
現在の崩壊レベルの次に高い崩壊レベル及び現在の崩壊レベルの次に低い崩壊レベルにおけるオブジェクトにどの頂点が存在するかを示す頂点情報を各崩壊レベル毎に格納し、
オブジェクトを分析して崩壊レベルを決定し、
該決定された崩壊レベルが一層高い解像度を必要とするものであることに応じて、前記頂点リスト及び前記格納された頂点情報に応じてオブジェクトに頂点を追加し、
前記決定された崩壊レベルが一層低い解像度を必要とするものであることに応じて、前記頂点リスト及び前記格納された頂点情報に応じてオブジェクト中の頂点を崩壊させる、
という各ステップを有する、オブジェクトの表示方法。
２０．オブジェクトを分析する前記ステップが、
オブジェクトの速度を決定し、
オブジェクトの突出した領域を決定する、
という各ステップを有する、１９に記載の方法。
２１．オブジェクトを分析する前記ステップが、
現在表示中のポリゴン数を決定し、
該決定されたポリゴン数を所定のターゲットポリゴン数と比較し、
前記現在表示中のポリゴン数が前記所定のターゲットポリゴン数よりも小さいことに応じてオブジェクトにポリゴンを追加する、
という各ステップを有する、２０に記載の方法。
２２．オブジェクトを分析する前記ステップが、
現在のフレームレートを決定し、
該現在のフレームレートを所定のフレームレートと比較し、
該現在のフレーム・レートが該所定のフレームレートよりも小さいことに応じてオブジェクト中の頂点を崩壊させる、
という各ステップを有する、１に記載の方法。
２３．最小解像度のオブジェクトが格納され及び一層高い解像度の前記オブジェクトを生成するためのデータを含む個々の情報パケットが格納されるシステムにおいて、リモート接続にわたりデータを伝送するための方法であって、
表示すべきオブジェクトの伝送のための要求を受信し、
該受信された要求に応じて最低解像度バージョンのオブジェクトを伝送し、
次に高い解像度の前記オブジェクトを生成するためのデータを含む情報パケットを伝送し、
前記オブジェクトのターゲット解像度が満たされたか否かを判定し、
前記オブジェクトのターゲット解像度が満たされていないことに応じて、次に高い解像度の前記オブジェクトを生成するためのデータを含む情報パケットを伝送する前記ステップを繰り返す、
という各ステップを有する、リモート接続にわたりデータを伝送するための方法。
【符号の説明】
【００４９】
100  コンピュータシステム
104  プロセッサ
108  ＲＡＭ
112  ＲＯＭ
116  入力手段
118  バス
120  ディスプレイ
124  ディスク
138 頂点リスト生成モジュール
142 崩壊経路決定モジュール
146 崩壊値分析モジュール
150 崩壊経路選択モジュール
154 頂点崩壊リスト
158 頂点リスト
【図１Ａ】
2010157228.tif 000003
【図１Ｂ】
2010157228.tif 000004
【図２Ａ】
2010157228.tif 000005
【図２Ｂ】
2010157228.tif 000006
【図２Ｃ】
2010157228.tif 000007
【図２Ｄ】
2010157228.tif 000008
【図２Ｅ】
2010157228.tif 000009
【図３】
2010157228.tif 000010
【図４】
2010157228.tif 000011
【図５】
2010157228.tif 000012
【図６】
2010157228.tif 000013
【図７】
2010157228.tif 000014
【図８】
2010157228.tif 000015
【図９】
2010157228.tif 000016
【図１０】
2010157228.tif 000017
【図１１】
2010157228.tif 000018
【図１２】
2010157228.tif 000019
【図１３】
2010157228.tif 000020
【手続補正書】
【提出日】平成22年1月22日(2010.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の詳細度レベルでオブジェクトの３次元視覚表現を生成するためにコンピュータで実施される方法であって、
オブジェクトの頂点の崩壊順序を判定するプロセスであって、
ある詳細度レベルにおいて利用可能な一組の崩壊経路を判定するプロセスと、
前記一組の崩壊経路における各崩壊経路について視覚的歪み因子を計算するプロセスと、
計算された視覚的歪み因子に応答して、前記一組の崩壊経路における各崩壊経路について崩壊値を判定するプロセスと
を含む、オブジェクトの頂点の崩壊順序を判定するプロセスと、
判定された崩壊順序に従って前記オブジェクトの頂点を頂点リスト中に順序付けるプロセスと、
前記崩壊順序に応答して、ターゲット頂点に関する崩壊先である隣りの頂点を指定する頂点崩壊リストを生成するプロセスと、
前記オブジェクトを描画すべき詳細度レベルを指定するプロセスと、
前記頂点崩壊リストを使用して、前記オブジェクトの３次元視覚表現を指定された前記詳細度レベルで描画するプロセスと
からなる方法。
【請求項２】
前記一組の崩壊経路における各崩壊経路について視覚的歪み因子を計算するプロセスは、
各崩壊経路について面積変化を計算するプロセスと、
各崩壊経路について角度変化を計算するプロセスと、
各崩壊経路について局所的体積変化を計算するプロセスと
を含む、請求項２に記載のコンピュータで実施される方法。
【請求項３】
前記各崩壊経路について面積変化を計算するプロセスは、
第１の崩壊経路に沿って第１のターゲット頂点を崩壊させた後、前記オブジェクトの面積を計算し、
前記崩壊の前に、計算された前記面積を前記オブジェクトの面積から減算することを含む、請求項２に記載のコンピュータで実施される方法。
【請求項４】
前記各崩壊経路について体積変化を計算するプロセスは、
第１の崩壊経路に沿って第１のターゲット頂点を崩壊させた後、前記オブジェクトの体積を計算し、
前記崩壊の前に、計算された前記体積を前記オブジェクトの体積から減算することを含む、請求項２に記載のコンピュータで実施される方法。
【請求項５】
前記体積を計算するプロセスは、
角錐の頂点となるべき第１のターゲット頂点を選択し、
３つの連続して隣り合う頂点を前記第１のターゲット頂点に接続する三角形から、前記角錐の基部を形成し、
前記角錐の体積を計算し、
連続して隣り合う３つの頂点の次の組から、次の角錐を構成し、
前記次の角錐の体積を計算し、
連続して隣り合う３つの頂点の重複しない全ての組について、前記次の角錐を構成するステップ及び前記体積を計算するステップを繰り返し、
前記角錐の体積を合計し、前記オブジェクトの体積を得ることを含む、請求項４に記載のコンピュータで実施される方法。
【請求項６】
オブジェクトを表示するためにコンピュータで実施される方法であって、
前記オブジェクトの前記頂点リスト及び前記隣接リストに応答して、前記オブジェクトの崩壊を実施するプロセスであって、前記頂点リスト中の頂点が、崩壊優先順位によって識別され、前記隣接リストが、前記頂点リスト中の頂点について崩壊経路を識別し、当該オブジェクトの崩壊が、第１の崩壊レベルに従って実施される、前記オブジェクトの崩壊を実施するプロセスと、
前記崩壊に関する情報を記憶するプロセスであって、前記情報は、前記オブジェクトのどの頂点が、第１の崩壊レベルよりも少なくとも一つ多くの頂点を有する第２の崩壊レベルに、及び前記第１の崩壊レベルよりも少なくとも一つ少ない頂点を有する第３の崩壊レベルに存在するかを示すものである、崩壊に関する情報を記憶するプロセスと、
前記第１の崩壊レベルよりも多くの頂点を必要とする崩壊レベルの要求に応答し、前記頂点リスト及び記憶された前記頂点情報に応答して、前記オブジェクトについての前記頂点リストから頂点を追加するプロセスと、
前記第１の崩壊レベルよりも少ない頂点を必要とする崩壊レベルの要求に応答し、前記頂点リスト及び記憶された前記頂点情報に応答して、前記オブジェクトの前記頂点リストから頂点を崩壊させるプロセスと、
要求された各崩壊レベルについて前記頂点リスト中の頂点を描画し、前記オブジェクトの３次元視覚表現を生成するプロセスと
からなる、コンピュータで実施される方法。
【請求項７】
前記崩壊に関する情報を記憶するプロセスは、前記頂点の少なくとも一部についての三角形連結情報を記憶するプロセスを含む、請求項６に記載の方法。
【請求項８】
オブジェクトを表示するためにコンピュータで実施される方法であって、
前記オブジェクトの崩壊に関する情報を記憶するプロセスであって、前記オブジェクトが、頂点リスト、及び隣接リストを含み、前記頂点リスト中の頂点が、崩壊優先順位によって識別され、前記隣接リストが、前記頂点リスト中の頂点について崩壊経路を識別し、前記崩壊に関する情報は、前記頂点リストのどの頂点が、現在の崩壊レベルの直ぐ上の崩壊レベル及び直ぐ下の崩壊レベルにおける前記オブジェクトに存在するかを示す、オブジェクトに関する情報を記憶するプロセスと、
前記オブジェクトを分析し、前期オブジェクトの現在の崩壊レベルを判定するプロセスと、
現在の崩壊レベルの解像度よりも高い解像度で前記オブジェクトを描画しなければならないという判定結果に応答し、記憶された前記情報に応答して、前記オブジェクトについての前記頂点リストから頂点を追加するプロセスと、
現在の崩壊レベルの解像度よりも低い解像度で前記オブジェクトを描画しなければならないという判定結果に応答し、記憶された前記情報に応答して、前記オブジェクトについての前記頂点リストから頂点を崩壊させるプロセスと、
要求された解像度について前記頂点リスト中の頂点を描画し、前記オブジェクトの３次元視覚表現を生成するプロセスと
からなる、コンピュータで実施される方法。
【請求項９】
前記オブジェクトを分析するプロセスは、
前記オブジェクトの速度を判定し、
前記オブジェクトの突出面積を判定し、
前記オブジェクトの速度、及び前記オブジェクトの突出面積に基いて、前記オブジェクトの崩壊レベルを判定することを含む、請求項８に記載のコンピュータで実施される方法。
【請求項１０】
前記オブジェクトを分析するプロセスは、
現在表示されているポリゴンの数を判定し、
判定されたポリゴンの数を所定のターゲットポリゴン数と比較し、
現在表示されているポリゴンの数が前記所定のターゲットポリゴン数よりも少ないという判定結果に応答し、前記オブジェクトについての前記頂点リストから頂点を追加することを含む、請求項８に記載のコンピュータで実施される方法。
【請求項１１】
前記オブジェクトを分析するプロセスは、
現在のフレームレートを判定し、
前記現在のフレームレートを所定のフレームレートと比較し、
前記現在のフレームレートが前記所定のフレームレートよりも小さいという判定結果に応答し、前記オブジェクトについての前記頂点リストから頂点を崩壊させることを含む、請求項８に記載のコンピュータで実施される方法。
【請求項１２】
オブジェクトを伝送するためにコンピュータで実施される方法であって、前記オブジェクトの最小解像度のもの、及び、前記オブジェクトのより高い解像度のものを生成するためのデータを含む個々の情報パケットがメモリに記憶されるものにおいて、
オブジェクトの伝送の要求を受信するプロセスと、
受信した前記要求に応答し、前記オブジェクトの最小解像度のものを伝送するプロセスと、
前記オブジェクトのより高い解像度のものを生成するために第１の情報パケットを伝送するプロセスと、
前記オブジェクトのターゲット解像度に一致するか否かを判定するプロセスと、
前記オブジェクトのターゲット解像度に一致しないことに応答し、前記オブジェクトの次に高い解像度のものを生成するために第２の情報パケットを伝送するプロセスと
からなる方法。