JP4759109B2 - Multi-resolution geometrical arrangement - Google Patents

Multi-resolution geometrical arrangement Download PDF

Info

Publication number
JP4759109B2
JP4759109B2 JP20968599A JP20968599A JP4759109B2 JP 4759109 B2 JP4759109 B2 JP 4759109B2 JP 20968599 A JP20968599 A JP 20968599A JP 20968599 A JP20968599 A JP 20968599A JP 4759109 B2 JP4759109 B2 JP 4759109B2
Authority
JP
Japan
Prior art keywords
vertex
collapse
vertices
list
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP20968599A
Other languages
Japanese (ja)
Other versions
JP2001056871A (en
JP2001056871A5 (en
Inventor
サウル・エス・カトウ
Original Assignee
シュガーローフ アクイジションズ,エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シュガーローフ アクイジションズ,エルエルシー filed Critical シュガーローフ アクイジションズ,エルエルシー
Priority to JP20968599A priority Critical patent/JP4759109B2/en
Publication of JP2001056871A publication Critical patent/JP2001056871A/en
Publication of JP2001056871A5 publication Critical patent/JP2001056871A5/ja
Application granted granted Critical
Publication of JP4759109B2 publication Critical patent/JP4759109B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、3次元グラフィックスの生成分野に関し、特に3次元環境における多解像度オブジェクトの生成分野に関する。
【0002】
【従来の技術】
ゲームその他のソフトウェアアプリケーションで使用するためのリアルな3次元オブジェクトレンダリングは、長い間コンピュータ業界のソフトウェアメーカ及びハードウェアメーカの目標であった。しかしながら、一般的なユーザの家庭用コンピュータ上でのリアルな3次元オブジェクトレンダリングの達成を妨げる極めて多数の問題がある。
【0003】
3次元グラフィックスは、ポリゴンを用いて、レンダリングされるべきオブジェクトを作成する。かかるポリゴンが生成され操作されて、オブジェクトの湾曲及びディテールが描かれる。1つのオブジェクトの作成に使用するポリゴンの数が多くなればなるほど、該オブジェクトは詳細でリアルなものとなる。しかしながら、1つのオブジェクトの作成に使用するポリゴン数が多くなるほど該オブジェクトのレンダリングに要する計算が多くなり、このため、該オブジェクトをレンダリングする速度が低下することになる。このため、開発者の見地からすれば、速度とリアリズムとの間のトレードオフが存在する。
【0004】
この問題の解決は容易ではない。大抵のユーザは、最新の高性能パーソナルコンピュータを有していないので、開発者は、製品を最大数の潜在的なユーザを対象とするものにしたい場合には、最小公分母のためにオブジェクトを設計しなければならない。このため、開発者は、ユーザのプロセッサが遅いものであって毎秒少数の三角形をレンダリングする能力しかないものであると仮定しなければならない。このため、開発者は、上述のトレードオフを行う場合には、(速度とリアリズムとの)方程式の速度側を支持し、一層速いマシンが全ユーザにより使用されている場合よりも少数の三角形を用いてオブジェクトを設計しなければならない。しかしながら、この解決策は、ローエンドコンピュータを有するユーザもハイエンドコンピュータを有するユーザも満足させるものとはならない。リアリズムを完全に犠牲にすることを開発者が望まないため、ローエンドコンピュータを有するユーザは、依然として低速でむらのある(choppy)イメージを得ることになる可能性が高く、またハイエンドコンピュータを有するユーザは、当該アプリケーションがハイエンドマシンの一層大きな処理能力を利用するよう設計されていないため、不自然でロボットのようなイメージを得ることになる。実際に、ハイエンドシステムによっては、ポリゴン数が少な過ぎるためにアプリケーションの処理が高速過ぎて再生や対話ができなくなる。
【0005】
開発者が直面するもう1つの問題は、同じオブジェクトでも、該オブジェクトが必要とする詳細部分は、それが画面に近い場合の方が背景にある場合よりも多くなる、という事実である。オブジェクトが画面に近づくと、該オブジェクトを構成するポリゴンの角及び直線縁部を一層明確に見ることができる。このとき、オブジェクトの角を滑らかにし、及びオブジェクトのリアルなレンダリングを続行するためには、より多くのポリゴンが必要となる。しかしながら、最も詳細なバージョンのオブジェクトを用いたオブジェクトのレンダリングが常に可能であるとは限らない。これは、アプリケーションがあまりにも大きな計算力を必要とするために、画面上に迅速にかつ滑らかにイメージをレンダリングすることができなくなるからである。滑らかな3Dアニメーションを達成するために、プロセッサは、20〜60フレーム/秒で3Dオブジェクトをレンダリングしなければならない。各オブジェクト毎にあまりにも多くのポリゴンが使用され、及びオブジェクトが画面に近づいた際に該オブジェクトに必要となるリアリズムを提供する場合には、プロセッサは、滑らかなレンダリングのために必要となる上述の最小限のフレームレートを達成することができなくなる。
【0006】
3次元のオブジェクトのリアルなレンダリングを可能にすると共に画面上のポリゴン数を制限する1つの解決策として、詳細レベルマッピング(Level of Detail mapping)の使用が挙げられる。詳細レベルマッピングは、画面までのオブジェクトの距離に基づいてオブジェクトの異なる解像度レベルを提供するものである。異なる詳細レベルを生成するために、開発者は、必要とされる各レベル毎に異なるバージョン(即ち変形版)のオブジェクトを生成しなければならない。典型的には、3つまたは4つのレベルしか使用されない。これは、レンダリングされるべき複数バージョンのオブジェクトの各々の格納がユーザのシステムリソースをあまりにも多く消費し得るからである。
【0007】
詳細レベル法には幾つかの欠点がある。第1に、この方法は、上述のように、システムリソースに大きな衝撃を与えるものとなる。該方法の場合、各オブジェクトは、以前に各バージョンのオブジェクトの格納に必要とされた記憶スペースよりも3倍または4倍も多くの記憶スペースを必要とする。各レベルは、別個の頂点リスト並びに別個のデータ構造を必要とする。第2に、あるレベルから別のレベルへと遷移する際にオブジェクトポッピングとして知られる効果が発生する。オブジェクトが画面に向かって移動する際に、一層高い詳細バージョンのオブジェクトが突然レンダリングされて観察者のところで「ポップアウト(pop out)」し(即ち急に展開し)、これによりアプリケーションの3D沈み品質(immersive qualities)が破壊される。詳細レベル法はまた、各バージョンのオブジェクトの余分な生成を必要とし、このため、開発者は一層多くの時間が必要となる。詳細レベル法はまた、上述の最小公分母の問題に対処していない。各オブジェクトの最高の詳細レベルは、アプリケーションを使用することになる非能率的なコンピュータを有するユーザを考慮して作成されなければならない。このため、最高の詳細レベルは、ポリゴンを大量に含むことはできず、さもないと、ユーザのローエンドコンピュータ上に現れるイメージは、低速でむらのあるものとなる。更に、かかるイメージは、ハイエンドコンピュータの一層大きな処理能力を利用することができないものであるため、ユーザのハイエンドコンピュータ上では、角張ったロボットのようなものとなって現れることになる。
【0008】
【発明が解決しようとする課題】
本発明によれば、3Dオブジェクトのリアルなレンダリングを生成する一方、ユーザのシステムリソースの使用を最小限にし、及び速度を犠牲にすることなく忠実度を最大限にする、装置、システム、及び方法が開示される。
【0009】
【課題を解決するための手段】
本発明は、画面上のオブジェクトの位置その他の因子に応じて頂点マージ処理を使用してオブジェクトの連続的な詳細レベルを生成し、これによりオブジェクトのポッピング効果を除去する。オブジェクトが背景に向かって移動し、このためリアルなレンダリングを提供すべくポリゴンを削減する必要がある場合には、最小限の視覚的な歪みしか生じないよう設計された方法でオブジェクトの頂点が共にマージ(即ち合併)される。頂点がマージされると、オブジェクト内の幾つかのポリゴンが除去される。したがって、オブジェクトが画面から遠くに離れるよう移動するにつれてオブジェクトのポリゴン数が連続的に減少することになる。また、オブジェクトが画面に向かって移動する場合には、オブジェクトに頂点が追加されて、該オブジェクトにポリゴンが追加される。このため、オブジェクトがユーザに近づいて精巧な詳細(即ち細部)が必要になる際に、該オブジェクトの一層リアルな描写が提供されることになる。従って、任意の所与の瞬間には、画面上のあらゆるオブジェクトは、オブジェクトのリアルなレンダリングを提供するために必要となる数のポリゴンしか有していない。不必要なポリゴンが描画されることは決してなく、このため、ユーザのシステムは最適な状態で利用されていることになる。3D環境でのオブジェクトの動きに基づき、オブジェクトに対してポリゴンが連続的に付加または除去されるため、オブジェクトのポッピング効果は生成されない。
【0010】
更に、本発明は、ユーザのシステム上で1つのバージョンのオブジェクトが生成され格納されることしか必要とせず、このためシステムリソースに対する衝撃が最小限となる。1つの頂点リスト(これは好適には最高の詳細レベルを指定するものとなる)を使用するため、本発明によるシステムは、画面上に表示するためのオブジェクトの連続的な詳細レベルを生成することができる。また、該システムは、有利にもオブジェクトの解像度をオンザフライで上げたり下げたりすることが可能である。また、表示中の現在の詳細レベルしか格納されないため、必要となるメモリの使用が最小限となる。解像度の変更を誘導するための実行時に先立って決定される特定の最小限の情報を格納することにより、解像度の変更が最適速度で実行時に行われる。本発明の別の利点は、開発者が自分の好みに従って頂点のマージ処理を微調整する(tweak:つまむ、つねる)ことを可能にする能力にある。最後に、本発明は、ユーザのシステムの能力に応じて画面内のポリゴンの数を自動式に調節し、これにより、あらゆるユーザにとって最適なイメージが提供される。一実施態様では、本発明は、システムを監視して、フレームがレンダリングされるフレームレートを決定し、それに従い一度に画面上に許容されるポリゴンの総数を調節する。
【0011】
更に、ターゲットフレームレートをセットすることが可能であり、これにより、シーンがレンダリングされるべき速度をユーザが指定することが可能となる。本発明は、ポリゴンの総数を動的に調節して、フレームレートが確実に維持されるようにする。代替的には、本発明は、ポリゴン数を指定することを可能にし、フレームレートにかかわらず画面上に常に該一定量のポリゴンが存在することを確実にする。
【0012】
好適実施例では、多数の解像度を有する1つのオブジェクトの3次元の視覚的な表現の生成が、次のようにして行われる。即ち、オブジェクトについての頂点リストを読み出し、該頂点リスト中で識別された頂点に関する崩壊順序を決定し、該決定された崩壊順序に応じて前記頂点リスト中で識別された頂点の再順序付けを行い、及び前記崩壊順序に応じて頂点崩壊リストを作成する。ここで、頂点崩壊リストは、ターゲットとなる頂点(以下、ターゲット頂点と称す)について、それが崩壊させられることになる隣接する頂点を指定するするものである。該頂点リストは、他の頂点の属性を参照することなく頂点の3D座標から構成することが可能であり、また、代替的な実施例では、頂点リストは、色または法線(normal)といった頂点の他の属性を参照することも可能である。
【0013】
より詳細には、好適実施態様では、オブジェクトの崩壊順序の決定が、次のようにして行われる。即ち、一組の崩壊経路から1つの最適な崩壊経路を決定し、該選択された崩壊経路について視覚的な歪みの因子を計算し、前記選択された崩壊経路について崩壊値を決定し、該崩壊値の比較を前記一組の崩壊経路における各経路毎に繰り返し行ってオブジェクトに対して最も小さい視覚的な歪みを生じさせる崩壊経路を決定し、崩壊させるべき次の頂点を選択し、選択された崩壊経路に沿ってオブジェクトを崩壊させ、これを最小限の解像度レベルが達成されるまで繰り返す。
【0014】
【発明の実施の形態】
図1Aは、本発明によるコンピュータシステム100の好適実施例を示している。該コンピュータシステム100は、典型的には、Intel社製Pentium(商標)プロセッサを有し、Microsoft社製Windows95(商標)オペレーティングシステムを実行するパーソナルコンピュータ等のコンピュータシステム100で実施される。ROM112は、不変の機能を有するデータを格納する読み出し専用メモリである。ディスク124は、例えばオペレーティングシステムのモジュールやデータベースその他のモジュールといった即時アクセスを必要としないデータを格納する。一実施例では、開発者166による使用時には、ディスク124は、頂点リスト生成モジュール138、崩壊経路決定モジュール142、崩壊値分析モジュール146、崩壊経路選択モジュール150、頂点リスト158、及び崩壊リスト154を格納する。ユーザ170により使用される場合の一実施例では、ディスク124は、アプリケーション、実行時管理手段162、及び崩壊リスト154を格納する。格納されているモジュールへのアクセスが要求されると、該モジュールがRAM108へと移動される。該RAM108は、更なる即時アクセスを必要とするデータを格納するものである。ディスプレイ120及び入力装置116は、バス118を介してプロセッサ104に接続され、ユーザ170又は開発者166がディスク124に格納されているモジュールとの対話を行うことを可能にする。
【0015】
図1Bは、本発明の好適実施例を実施した分散型アーキテクチャを示している。頂点リスト生成手段180は、メモリに接続された特定用途向け集積回路(ASIC)から構成され、頂点リスト158を生成する。該頂点リスト158は、崩壊経路決定手段184へ送られ、該崩壊経路決定手段184は、受信した頂点リスト158から崩壊経路を決定する。この崩壊経路のデータは、崩壊値分析手段188に送られ、該崩壊値分析手段188が、該崩壊経路データを分析して、各崩壊経路毎に崩壊値を決定する。該崩壊値は、崩壊経路自体と共に崩壊経路選択手段192へと送られ、該崩壊経路選択手段192は、選択された崩壊経路に沿ってオブジェクトが崩壊された場合に該崩壊を見ている観察者に対して最小の視覚的な歪みを生成することになる崩壊経路を頂点リストから選択する。該選択された崩壊経路は、崩壊リストメモリ194に格納され、該選択された崩壊経路に応じて、新たな一組の頂点が頂点リスト生成手段138により生成される。該システムは、リストを生成する元となる残りの頂点を頂点リスト生成手段が有さなくなるまで崩壊経路の生成及び選択を続行し、次いでシステムの処理が完了する。最終的なの崩壊リストは、崩壊リストメモリから開発者のコンピュータ100のプロセッサ104へと伝送される。
【0016】
データソース196は、処理対象となる元の頂点リストを格納する。該データソースは、オブジェクトのモデリングを要求するアプリケーション、即ち、本発明によるモデリングを必要とするオブジェクトを格納する二次のソースを含む。一実施例では、モジュール138,142,146,150は、一組のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array)として実施され、上述の別個の機能を実行するようにプログラムされる。分散型アーキテクチャにおいて別個の機能を区画化することにより、より高速でより堅牢な処理が達成される。
【0017】
図2Aは、崩壊順序を生成するための本発明の好適実施例の処理を示している。まず頂点リスト158を獲得する(200)。典型的には、頂点リスト158は、開発者166がモデリングすることを望む各オブジェクト毎に、該開発者166により提供される。頂点リスト158は、3D座標マップへの索引を含むことが可能であり、又は、頂点リスト158は、テクスチャマップ等の他のマップ若しくは通常のマップへと索引付けすることが可能である。頂点リスト158は、普通はその処理前に「クリーニング」される。典型的には、頂点リスト158は、互いに接近するが実際に重なることのない縁部を有する三角形を指定することが可能である。クリーニング操作を実行しなければ、それら近接する縁部が一部をなす三角形が2つの別個のポリゴンとみなされることになり、これは、モデルの一層低い解像度において孔部または割れ目を生じさせるものとなる。このため、本システムは、頂点リスト内の冗長な頂点データを探し、該冗長性を排除する。
【0018】
頂点リスト158は、オブジェクトに使用する最大数の一組の頂点を指定し、又は、オブジェクトに使用する最大数の一組の頂点及び最小数の一組の頂点を指定することが可能である。最小数の一組の頂点は、最小限の品質レベルであって該品質レベルを超えてオブジェクトが崩壊することのできない最小限の品質レベルが規定されるように、開発者166により指定される。オブジェクト内で崩壊する頂点が多くなるほど、近くで検査した場合に該オブジェクトのリアルさが低下して見えることになる。このため、幾つかのオブジェクトについて、開発者166は、或るポイントが存在することを決定することが可能である。この或るポイントとは、該ポイントを超えた場合にオブジェクトがその真の形状としてもはや認知できなくなるポイントである(該ポイントにおけるオブジェクトが画面上で極めて小さいものであり、それ故、十分な細部を指定するために多数のポリゴンを必要としない場合であっても)。かかるオブジェクトについて、開発者166は、最小数の一組の頂点を指定する。オブジェクトは、該最小数の頂点まで崩壊することが可能となる。本システムは、その処理中にそれらの頂点を識別し、オブジェクト中のそれらの頂点を崩壊させることはない。また、頂点リスト158は、オブジェクトの漸進的に低下する解像度を表すネストされた一組の頂点を指定することができる。この場合、システムは、ネストされた頂点の組の間の補間を行う崩壊リストを生成する。
【0019】
頂点リストを獲得した後、システムは、崩壊順序の決定(204)へと進む。オブジェクトの崩壊順序は、個々の頂点が他の頂点にマージされる順序を指定するものとなる。頂点は、考え得る最小の視覚的な歪みをオブジェクトに生じさせる目的で、崩壊経路に沿って崩壊される。例えば、図2Bに示すように、オブジェクトは多数の頂点を有しており、そのうちの3つがV1,V2,V3として明記されている。本発明によるシステムが、第1の崩壊経路がV1→V2であると決定した場合には、オブジェクトは図2Cに示すようになる。図2Cのオブジェクトは、図2Bのオブジェクトよりもレンダリングすべきポリゴンが少ない。従って、図2Cのオブジェクトは、図2Bのオブジェクトよりも低い解像度を有しており、該オブジェクトが背景に一層接近して配置された場合、又は以下で詳述する他の因子に起因して、又は解像度を高くしてもユーザ170により気づかれない可能性が高い場合に、表示されるべきものである。背景に一層接近する際に、一層少ないポリゴンを含むバージョンのオブジェクトを表示することにより、プロセッサは、前景に一層接近しているオブジェクトの処理に一層多くの時間を充てることが可能となる。これにより、フレームレートに影響を与えることなく、前景のオブジェクトが一層多くのポリゴン数を有することが可能となる。
【0020】
オブジェクトについての崩壊順序を決定した後、該崩壊順序により指定される順序へと頂点リスト158の再順序付けを行う(208)。最初に崩壊させるべき頂点が識別され、その他の頂点が、それら頂点の崩壊優先順位に基づいて順序付けされる。システムは、この情報を格納するために、別の構成を用いる代わりに既存の頂点リスト158を用いることにより、そのメモリ中での専有面積を有利に最小限にする。次いで、システムは、頂点崩壊リスト154を生成する(212)。該頂点崩壊リストは、ターゲット頂点が崩壊される際の対象となる頂点を指定するものとなり、代替的には、該リストは、追加された頂点の接続対象となる頂点を指定するものとなる。オブジェクトの頂点を崩壊させて一層低い解像度を達成する場合、システムは、所望の解像度が得られるまで頂点リスト中で順序付けされた通りに単純に頂点を削除することが可能である。しかしながら、頂点を追加することによりオブジェクトの解像度を上げるためには、一層多くの情報が必要となる。何れの場合にも、正しい三角形のリストが、所望の解像度でシステムにより生成されなければならない。該三角形のリストは、所望の解像度を達成するためにレンダリングされなければならない三角形の全てに関する連結情報を指定するものである。
【0021】
例えば、図2Dに示されているように、オブジェクトは最初は低解像度の状態にある。図2Eでは、該オブジェクトに頂点が追加されてポリゴン数が増大し、これにより該オブジェクトの解像度が上げられている。しかしながら、図示のように、更なる情報が存在しない場合には、システムは、該新たな頂点に接続すべき頂点を知ることができない。このため、一層多くの情報が頂点崩壊リスト154に格納される。該頂点崩壊リスト154は、各頂点が接続されることになる隣接する頂点についての連結情報を格納する。図2D及び図2Eの例では、V1の接続対象となる頂点も頂点崩壊リスト154中で指定され、このため、システムは描画すべき正しい縁部を知ることができる。前記連結情報を使用することにより、各解像度毎に正しい三角形リストが生成される。好適実施例では、処理を最適化するために、2つのリスト154,158に関する情報が同じ位置に格納される。崩壊情報を格納するために好適には配列その他のデータ構造が使用されるため、ターム(即ち関係)リストが記述的に使用される。
【0022】
図3は、本発明による崩壊順序の決定の好適実施例を一層詳細に示す説明図である。最初に、一組の崩壊経路が決定される(300)。この一組の崩壊経路は、オブジェクトの現在の解像度において、各頂点と、その接続対象となる他のあらゆる頂点との間における考え得るあらゆる崩壊経路を識別するものである。したがって、図2Bのオブジェクトには11の頂点(V1〜V11)が存在する。V2については、4つの潜在的な崩壊経路(C1,C2,C3,C4)を識別することが可能である。
【0023】
次いで、該一組の崩壊経路から1つの崩壊経路が選択される(304)。該選択された崩壊経路について視覚的な歪みの因子が計算される(308)。視覚的な歪みの因子は、オブジェクトに対する所定の崩壊による影響の大きさである。崩壊経路のなかには、他の崩壊経路よりも遙かに大きな視覚的影響をユーザに与えるものがある。例えば、V1がV2へと崩壊する場合、オブジェクトはその幅が顕著に縮むように見えるであろう。しかしながら、V8がV11へと崩壊する場合には、ユーザにはオブジェクトが歪んだようには見えないであろう。システムは、以下で詳述するように、面積変化、角度変化、及び局所的な体積変化を含む、幾つかの視覚的歪み因子を計算することにより、上記の差異を捉える。
【0024】
各崩壊経路には、該崩壊経路について計算された視覚的歪み因子の関数として、崩壊値が1つずつ与えられる(312)。該崩壊値は、好適には、崩壊経路の視覚的歪み因子の重み付けられた組み合わせである。異なる因子を重み付けすることにより、開発者166が開発対象となる特定アプリケーションで適用される因子の重要性を指定することが可能となる。
【0025】
システムは、崩壊経路が更に存在するか否かを決定する(316)。崩壊経路が更に存在する場合には、次の崩壊経路が選択され(304)、上述の処理が繰り返される。また、崩壊経路がそれ以上存在しない場合には、システムは、崩壊経路の崩壊値を比較して、オブジェクトに対して最も小さな視覚的歪みを生じさせる崩壊経路を決定する(320)。
【0026】
崩壊すべき頂点は、前記決定された崩壊経路に応じて識別され(324)、該頂点に対して崩壊優先順位が割り当てられ(326)、該崩壊優先順位が頂点リストの再順序づけを行う際に使用される。オブジェクトは前記崩壊経路に沿って崩壊される(328)。システムは、最小数の頂点からなる頂点の組以外に2つ以上の頂点が残っているか否かを判定する(332)。かかる頂点が2つ以上残っていない場合には、次いでシステムは頂点リスト158の再順序づけへと移行する。また、かかる頂点が2つ以上残っている場合には、システムは、該崩壊されたオブジェクトを新たに処理されるべきオブジェクトとして扱い、上述の処理を繰り返す。システムは、最小限の視覚的歪みをオブジェクトに生じさせる一組の崩壊経路が決定され、該崩壊経路によりオブジェクトがその最大限の解像度から最小限の解像度へと縮小されるまで、オブジェクトの処理を行う。格納される各崩壊経路毎に、ターゲット頂点が接続されることになる頂点、及び三角形リストにより表される連結性の変化が格納される。これにより、頂点がオブジェクトに追加された際に、該追加された頂点に他の頂点がどの三角形によって接続されるかをシステムが識別することが可能となる。この情報は、上述のように頂点崩壊リスト154中に格納される。
【0027】
図4は、一組の崩壊経路を決定する方法の代替実施例を示している。まずターゲット頂点が選択される(400)。オブジェクトの既存の頂点のうちの任意の1つを選択することが可能であり、この際に順序は重要ではない。次いで、各頂点を検査するために最大数の隣接する頂点を指定する入力が受信される(404)。これは、開発者166がシステムの処理時間を制御することを可能にする。各頂点毎にシステムにより検査される隣接する頂点の数を制限することにより、システムはその分だけ多くの計算を実施する必要がなくなる。
【0028】
次いで、隣接する頂点が識別される(408)。隣接する頂点は、ターゲット頂点への縁部に沿って接続される頂点である。隣接する頂点は、ターゲット頂点に直接に接続される任意の頂点、並びに別の1つ又は2つ以上の頂点を介してターゲット頂点へと接続される任意の頂点を含むものとなる。このリストは、あらゆる頂点が処理される場合には極めて大きなものとなり得る、ということが推測されよう。しかしながら、上述のように、隣接する頂点の最大数を指定して処理を最小限にすることが可能である。
【0029】
隣接する頂点を識別した後、ターゲット頂点と隣接する頂点との間で崩壊経路が決定される(412)。システムは、最大数の崩壊経路に達したか否かを判定する(416)。最大数の崩壊経路に達した場合には、システムは更なる頂点が存在するか否かを判定する(420)。更なる頂点が存在する場合には、上述のように他の頂点についての崩壊経路が計算される。また、更なる頂点が存在しない場合には、システムは、一組の崩壊経路から1つの崩壊経路を選択する(304)。
【0030】
図5は、崩壊経路の選択の一実施例を示している。該実施例では、崩壊値を有することになる崩壊経路の数を制限することにより、プロセッサによる計算が最小限にされる。オブジェクトを介した最初の反復のために、あらゆる崩壊経路について崩壊値が計算される。崩壊経路が選択された後、該崩壊経路に沿ってオブジェクトが崩壊される。新たな一組の崩壊経路が、上述のように生成される。しかしながら、この反復では、オブジェクトを崩壊させるために以前に使用された崩壊経路から所定距離内にある崩壊経路について、崩壊値が生成される。前回の崩壊の後、多数の崩壊経路が同じ状態を維持し、それらの崩壊値(即ち、オブジェクトについての崩壊による視覚的な影響の測定値)もまた同じ状態を維持することになる。
【0031】
例えば、図2Bにおいて、C1が崩壊経路として選ばれた場合、その結果として図2Cに示すオブジェクトが得られる。V8とV11との間の崩壊経路の崩壊値は、かかる2つの変形前後のオブジェクトで同じ状態を維持する。これは、V8及びV11の周りの頂点がC1の崩壊による影響を受けないからである。従って、V8〜V11についての崩壊経路の崩壊値を再計算する必要がない。あらゆる崩壊の後にあらゆる崩壊経路について視覚的歪み因子を計算するということがないため、システムの計算は大幅に最小限なものとなり、処理速度が遙かに速くなる。
【0032】
したがって、図5に示すように、システムは、崩壊経路が前の崩壊経路からしきい値距離内にあるか否かを判定する(500)。該しきい値は、開発者166がプリセットし又は規定することが可能なものである。開発者166は、異なるしきい値で実験を行い、計算を最小限にしつつ精度を最大限にすることが可能である。崩壊経路がしきい値内にある場合には、システムは、該崩壊経路について視覚的歪み因子を計算する(308)。また、崩壊経路がしきい値内にない場合には、既存の崩壊値が該崩壊経路の崩壊値として続けて使用され、そして次の崩壊経路が選択される。
【0033】
図6は、本発明の好適実施例に従って好適に計算される3つの視覚的歪み因子を示している。第1に、選択された崩壊経路に沿ったオブジェクトの崩壊に応じてオブジェクトの面積変化が計算される(600)。該オブジェクトの面積変化の計算は、崩壊前のオブジェクトの表面積を計算し、次いで崩壊後のオブジェクトの表面積を計算することにより行われる。該2つの表面積間の差は、崩壊処理を受けることになるオブジェクトの表面積に対する影響を示すものとなる。第2に、崩壊経路に沿ったオブジェクトの崩壊に応じて角度変化が計算される(604)。該角度変化は、崩壊を受けることになるオブジェクトの局所的な曲率に対する影響の尺度となるものである。システムは、頂点が一部をなす三角形の法線を計算する。大きい曲率を表す複数の点は、オブジェクトの視覚的な外観にとって一層重要なものである。従って、かかる点には、それらの崩壊優先順位を低下させる尺度が割り当てられる。第3に、崩壊に応じて局所的な体積変化が計算される(608)。ターゲット頂点を角錐の頂点として用いて、該ターゲット頂点から角錐が生成される。該角錐の基部は、3つの連続する隣接した頂点より形成された三角形である。かかる一連の角錐が、隣接する三つ組の頂点の連続する複数組から構築され、それらの体積が合計される。オブジェクトの体積が決定され、ターゲット頂点が崩壊経路に沿って崩壊されて、再び体積が計算される。この体積変化は、オブジェクトの視覚的外観に対する影響を表すものとして使用される。角錐の「局所的な体積」の変化の計算は、オブジェクトの「真の」体積の計算よりも遙かに速く、またオブジェクトの幾何学的配置を一層精確に示すものとなる。当業者にとって既知である他の視覚的歪みの尺度もまた本発明に従って使用することが可能である。表面偏差といった誤差の統計的尺度もまた、視覚的歪みの計算に使用することが可能である。
【0034】
図7は、選択された崩壊経路についての崩壊値の決定の代替実施例を示している。該実施例では、システムは、開発者166から、異なる因子についてその優先順位の重みを指定する入力を受容する(700)。システムは、各因子に指定された優先順位重みを乗算し(704)、次いで各因子を結合して崩壊値を得る(708)。開発者166が重みを指定することを可能とすることにより、一層独創的な制御が開発者166に許容されることになる。開発者166は、オブジェクトが極めて先がとがったものであり、それ故、角度変化因子に最も高い重みを与えるべきである、と決定することが可能である。よって、開発者166は、角度変化因子に高い重みを指定することになる。大きな角度変化因子を有するオブジェクトの崩壊は、崩壊のための優先順位が一層低く設定されることになる。また、オブジェクトが有機的な形状を表すものである場合には、局所的体積因子が一層重要になる。開発者166は、局所的体積因子に一層高い重みを指定し、局所的体積に大きな影響を与える崩壊の優先順位が一層低く設定されることになる。開発者166が、重みを指定しない場合には、各因子を均等に重み付けするデフォルト値が使用される。一実施例では、開発者166は、因子を考慮対象から外すことにより、システムの処理速度を上げることが可能である。例えば、開発者166は、局所的な体積変化は特定のオブジェクトには関係しないものである、と決定することが可能である。次いで、開発者166は、該オブジェクトについて局所的な体積変化が計算されるべきでないことを指定する。これにより、システムはオブジェクトを遙かに高速に処理することが可能となる。
【0035】
図8は、崩壊順序決定ステップ204の代替実施例を示している。該実施例により、開発者166が崩壊順序を対話的に「微調整する」ことが可能となる。オブジェクトの視覚的な歪みは本質的に主観的な決定であるため、本発明は、開発者166の主観的な嗜好をオブジェクトの崩壊態様に導入することを有益にも可能とする。最初に、一組の崩壊経路が上述のように決定される(800)。次いで、オブジェクトがユーザに対して現在の解像度レベルで表示される。これが最初の反復である場合には、該オブジェクトは最大の解像度レベルとなる。システムは、前記一組の崩壊経路から1つの崩壊経路をランダムに選択して、オブジェクトを崩壊させる。システムは、該崩壊させたオブジェクトを開発者166に対して表示し、該開発者166はオブジェクトに対する崩壊の影響を確認することができる。開発者166が該崩壊を是認した場合、該開発者166は該経路を選択する。該経路を選択する入力をシステムが受信した(820)場合、システムは、既に選択されている経路の数に基づき前記経路に崩壊の優先順位付けを行う。また、開発者166が崩壊を是認しない場合には、次の崩壊経路が選択されて処理が繰り返される。
【0036】
一実施例では、各崩壊経路毎に崩壊値が計算され、該経路が上述のように優先順位付けされる。最初に崩壊するように指定された崩壊経路は、崩壊されるべき最初の経路として選択されて、開発者166に対して表示される。該崩壊経路を開発者166が選択する場合には、該経路はその優先順位を維持する。新たな一組の崩壊経路が生成され、該新たな一組の崩壊経路から最も高く優先順位付けされた崩壊経路が選択されて、開発者166に対して表示される。該崩壊経路を開発者166が選択しない場合には、次の最も高く優先順位付けられた経路が選択されて、開発者166に対して表示される。勿論、開発者166は、いつでも、該開発者166が崩壊させることを望むオブジェクト内に見える特定の経路を指定することが可能である。かかる開発者166による選択は、システムによる事前のあらゆる優先順位付けに優先するものとなる。
【0037】
図9は、本発明の一実施例を示すものであり、この場合には、崩壊経路の計算を行う前に最小数の頂点からなる組が開発者166により指定される。上述のように、該最小数の頂点からなる組は、開発者166が崩壊させることを望まない一組の頂点である。したがって、図9に示すように、崩壊経路が選択された(900)後、システムは、該崩壊経路が、前記最小数の一組の頂点において指定された1つの頂点を崩壊させるものであるか否かを決定する(904)。最小数の一組の頂点における頂点が存在する場合には、前記崩壊経路は選択されない。
【0038】
別の実施例では、テクスチャマップが頂点により索引付けされる。テクスチャマップは、マップされた領域にテクスチャを提供してリアルな外観をオブジェクトに与えるものである。異なる三角形についてのテクスチャは互いに全く異なるものとなる可能性がある。従って、1つの三角形を崩壊させる場合、システムは、オブジェクトの外観に対する三角形のテクスチャの損失による影響を判定しなければならない。崩壊がオブジェクトの外観に与えることになる影響のため、テクスチャの不連続部分の縁上にある頂点は崩壊させない。このため、崩壊経路を選択する場合には、崩壊経路内の頂点を検査して、該頂点がテクスチャの不連続部分の縁上に位置しているか否かを判定する。該頂点がテクスチャの不連続部分の縁上に位置している場合には、該崩壊経路は選択しない。
【0039】
図10は、本発明の実行時管理手段を示している。該実行時管理手段は、アプリケーションのリアルタイム実行時に必要に応じてオブジェクトに対してポリゴンの追加または削減を実行するものである。該実行時管理手段は、コンピュータのグラフィックシステム、及びオブジェクトの処理を行ったアプリケーションプログラムと関連して動作する。アプリケーションの開始時に、実行時管理手段は、該アプリケーションにおいて参照されるオブジェクトを崩壊させる(1000)。実行時管理手段は、オブジェクトの各崩壊レベル毎の拡張された頂点崩壊情報をテーブル中に格納する(1004)。該拡張された頂点崩壊情報は、頂点崩壊リスト154中に格納されている情報であり、該頂点崩壊リスト154は、崩壊する各頂点の崩壊先となる頂点、並びにモデルから削除する必要のある三角形を指定するものである。拡張された頂点崩壊情報をテーブルに格納することにより、プロセッサがポリゴンの追加及び削除を一層高速に行うことが可能となる。これは、プロセッサが、追加、削除、又は再索引付けの対象となる頂点及び三角形を決定するのに単に前記テーブルにアクセスするだけでよく、過度に要求される計算を全く実行する必要がないからである。
【0040】
一実施例では、各オブジェクト毎の拡張されたテーブルが開発段階で既に作成されており、該テーブルは、アプリケーションの開始時にアクセスを容易させるべくデータメモリに単にロードされる。実行時管理手段は、オブジェクトからの崩壊レベルに関するアプリケーションからの要求を待つ。各オブジェクトの当初の外観は、デフォルトの解像度で表される。アプリケーション又はグラフィクスプログラムが、実行時管理手段からの増大または低下された解像度を要求(1008)する際に、実行時管理手段は、該要求された解像度が、オブジェクトの現在の崩壊レベルよりもより大きい崩壊レベルを必要とするものであるか否かを決定する(1012)。オブジェクトの現在の崩壊レベルは、メモリに格納されているオブジェクトの唯一のものであるため、現在の崩壊レベルは既知である。要求された解像度が、オブジェクトについて一層高い崩壊レベルを必要とするものである場合には、該要求された崩壊レベルが満たされるまで、テーブル中の頂点崩壊情報に従ってオブジェクトに頂点が追加される。この連続的な頂点の追加は、オブジェクトの滑らかなレンダリングを提供し、上述のオブジェクトポッピングという問題を無くすものとなる。同様に、要求された解像度が、現在の崩壊レベルより低い崩壊レベルを必要とするものである場合には、オブジェクトの正しい解像度が達成されるまで頂点が崩壊される(1016)。また、前記テーブルは、オブジェクトに対してポリゴンの追加および削除をその要求時に瞬時に行うことも可能にする。該テーブルはまた、全バージョンのオブジェクトを格納する必要がないため、本発明により最小限のメモリ占有率が達成可能となる。また、オブジェクトに対する連続的なポリゴンの追加または削減により、オブジェクトポッピングによるアーチファクトがなくなる。したがって、本発明によれば、多数レベルの解像度を提供すると共にリソースの使用を最小限にする、効率が高くて高速のオブジェクトモデリングプロセスが開示される。
【0041】
図11は、オブジェクトを分析して崩壊レベルを決定する実行時管理手段の代替実施例を示している。該実施例では、上述のように、オブジェクトが崩壊され(1100)、各崩壊レベル毎に頂点情報が格納される(1104)。しかしながら、該実施例では、オブジェクトが分析されて(1108)最適な崩壊レベルが決定される。実行時管理手段が一層高い解像度を必要とする最適な崩壊レベルを決定する場合(1112)には、オブジェクトに頂点が追加される(1120)。また、最適な崩壊レベルが現在の解像度よりも低い解像度を必要とする場合には、頂点が崩壊される(1116)。
【0042】
図12は、オブジェクトの最適な崩壊レベルを分析するための幾つかの方法を示している。これらの方法のうちの1つ又は全てを本発明に従って使用して最適な崩壊レベルを決定することができる。最初に、オブジェクトの速度が決定される(1200)。該オブジェクトの速度は、オブジェクトが現在のフレームと直前のフレームとの間で移動した距離を測定し、該距離をそれらフレーム間で経過した時間で除算することにより、決定される。代替的には、該速度は、最も最近レンダリングされた複数のフレームのうちの幾つかに亘って移動した距離を測定し、該距離を、該最近のフレームシーケンス全体のレンダリングについての全経過時間で除算することにより、計算される。次いで、該決定された速度が、オブジェクトの速度を崩壊レベルへとマップするテーブルと比較される。このテーブルは、所与のオブジェクトに関して特に設計されたものとすることが可能であり、又は、速度と崩壊レベルとの間の一般的な相関関係を与える大域テーブルとすることが可能である。オブジェクトは、その移動速度が増大すると、そのリアルなレンダリングのために一層低い解像度を必要とする。これは、かかる動きが、オブジェクトの一層細かな詳細を不明瞭にする傾向を有するものだからである。このため、オブジェクトの現在の速度がテーブルと比較されて、該速度で必要となる解像度が決定される。該必要となる解像度が当該オブジェクトの現在の崩壊レベルよりも大きい崩壊レベルであると実行時管理手段が決定した場合(1232)には、上述のように一層多くのポリゴンが追加される(1236)。オブジェクトが必要とする解像度が、現在の崩壊レベルにより与えられる解像度よりも低い場合には、ポリゴンが削減される(1240)。このように、実行時管理手段は、オブジェクトの解像度を動的に管理して、最適な忠実度を提供すると共に処理パワーの使用を最小限にする。
【0043】
オブジェクトの突出した領域は、オブジェクトについての最適な崩壊レベルを決定するために実行時管理手段により使用されるもう1つの因子である。オブジェクトの突出した領域は、ディスプレイ上へのレンダリング時にオブジェクトが占有することになる領域である。該オブジェクトの突出した領域が大きいほど、必要となる解像度が高くなる。システムは、オブジェクトの現在の突出した領域を決定し(1208)、該突出した領域を、突出した領域と崩壊レベルとを相関させるテーブルと比較する(1212)。次いで、該比較結果に従ってポリゴン数が調整される(1232)。
【0044】
本発明はまた、大域的なポリゴン数の管理も提供する。この実施例では、ユーザは、各フレーム毎にターゲットとなるポリゴン数(以下、ターゲットポリゴン数と称す)を選択する。該実施例では、システムは、1フレーム中に現在表示されているポリゴン数を決定する(1216)。1フレーム中に表示されているポリゴンの総数は、画面上にあるオブジェクトを判定して、その各オブジェクトのポリゴン数を合計することにより、または、1フレームで画面上に描画した三角形の数に関する内部的なタリーをレンダリング手段に保持させることにより、計算することが可能である。この数は、所定のターゲットポリゴン数と比較(1220)される。実行時管理手段が、現在のポリゴン数がターゲットポリゴン数よりも小さいと判定した場合(1232)には、更なるポリゴンが追加される(1236)。また、現在のポリゴン数がターゲットポリゴン数よりも大きいと判定された場合には、ポリゴンが削減される(1240)。どのオブジェクトにポリゴンを追加し、どのオブジェクトからポリゴンを削減するかについての決定は、多くの方法で実施することが可能である。全てのポリゴンに対してポリゴンを一様に追加し又は削除することが可能である。代替的には、オブジェクトを一つ一つ分析し、個々のオブジェクト単位でポリゴンの追加または削除を行うことが可能である。
【0045】
代替的には、ユーザ170がターゲットとなるフレームレート(以下、ターゲットフレームレートと称す)を選択することが可能である。実行時管理手段は、プロセッサのクロックを監視して、フレームのレンダリングに要した時間を判定することにより、現在のフレームレートを決定する(1224)。次いで、該現在のフレームレートがターゲットフレームレートと比較される(1228)。実行時管理手段が、現在のフレームレートがターゲットフレームレートよりも速いと判定した場合(1232)には、フレームにポリゴンを追加して(1236)フレームレートを遅くする。また、現在のフレームレートがターゲットフレームレートよりも遅い場合には、フレームからポリゴンを削減して(1240)フレームレートを速くする。このように、実行時管理手段は、ユーザ170からの最小限の入力しか必要としない動的及び大域的なポリゴン管理を可能にする。この管理プロセスにより、本発明を万能のプラットフォームとすることが可能となり、あたかも本発明が一層低速のプロセッサを有するシステムで使用されているかのように、ターゲットフレームレートまたはポリゴン数を低く設定することが可能となり、また上述の利益が依然として提供される。しかしながら、一層高速のプロセッサを有するシステムは、一層高いフレームレートまたはポリゴン数を有するように設定することが可能であり、該システムの一層高い処理能力が本発明により最大限にされる。
【0046】
図13に示すように、本発明は、リモート接続を介してデータを伝送するために使用することも可能である。リモート接続(例えばインターネット)を介してデータを受信する場合、ユーザ170は、要求したオブジェクトが表示される前にデータがダウンロードされるのを待つことが多い。本発明によれば、リモート接続を介してオブジェクトを要求する際に、最小限の頂点セット即ち最低の崩壊レベルのオブジェクトがユーザ170へと伝送される。この最低解像度バージョンのオブジェクトは、表示に必要となるデータが一層少ないものであり、このため、ユーザ170に遙かに速く伝送される。次いで、追加の崩壊レベルがユーザ170に連続して送られて、オブジェクトの解像度がその最大の解像度まで増大される。各崩壊レベルは、典型的には2、3のポリゴンしか追加しないものであるので、各崩壊レベルもまた極めて迅速に伝送される。この方法により、ユーザが、最低解像度バージョンのオブジェクトを極めて迅速に受信し、次いでその後にまもなく完全な解像度バージョンのオブジェクトを受信することが可能となる。ユーザ170は、完全な解像度のオブジェクトを必要としない場合には、不要なデータ(一層高解像度のデータ)が伝送されるのを待った後にオブジェクトを見る、という必要はない。また、ユーザ170が、最大解像度には達しないが一層高い解像度を必要とする場合であっても、本発明は、該一層高い解像度をパケットで伝送し、これにより、ユーザ170は、最大解像度バージョンのオブジェクト全体がダウンロードされるのを待つのに要することになる時間よりも短い時間でオブジェクトを見ることが可能となる。
【0047】
図13に示されているように、リモート接続にわたりオブジェクトについての要求が受信される(1300)。該要求に応じて、最小解像度のオブジェクトが要求側へと送信される(1304)。該最小解像度のオブジェクトは、表示可能であると共にオブジェクトを依然として精確に表現することが可能である最低解像度のオブジェクトである。オブジェクトの最小限の数の頂点からなる組が、開発者166によって指定された場合、該組は、送信すべき最小限の解像度として使用される。次いで、オブジェクトの崩壊レベルを次の一層高い解像度まで上げるために必要となる頂点を含む1パケットの情報が送信される(1308)。上記で詳述したように、該情報は、オブジェクトの解像度を上げるために必要となる頂点および接続を含むものとなる。次いで、システムは、最大解像度またはターゲット解像度が送信されたか否かを判定する(1312)。オブジェクトの解像度をその最大解像度まで上げるために必要となる情報を含むパケットが送信された場合に、システムは、最大解像度が達成されたことを知る。代替的には、オブジェクトのダウンロードを要求する際に、ユーザ170が、ターゲット解像度を指定することが可能である。該ターゲット解像度の随意選択により、ユーザが、該ユーザの忠実度上の必要性を満たすようデータ転送に必要となる時間を最適化することが可能となる。ユーザ170が、最大解像度のオブジェクトを必要としない場合、ユーザは、その旨の指定を行うことができ、中間的な解像度のオブジェクトのみが送信される。該随意選択は、例えば、ユーザ170がダウンロード中のものとは異なるオブジェクトを見たがっている場合、または、ユーザ170が高解像度で見ることができないコンピュータを有している場合に、有益なものである。ターゲット解像度または最大解像度が満たされなかった場合には、別のパケットがユーザ170に送信される。ターゲット解像度が満たされた場合には、データ伝送が完了する。
【図面の簡単な説明】
【図1A】本発明によるコンピュータシステムの好適実施例を示すブロック図である。
【図1B】本発明によるモジュール式分散型アーキテクチャによるコンピュータシステムの好適実施例を示すブロック図である。
【図2A】本発明による崩壊順序リスト作成の好適実施例を示す概要図である。
【図2B】頂点が崩壊される前のオブジェクトの第1の例を示す説明図である。
【図2C】本発明に従って頂点が崩壊された後の図2Bのオブジェクトを示す説明図である。
【図2D】一層低い解像度のオブジェクトを示す説明図である。
【図2E】頂点が追加された図2Dのオブジェクトを示す説明図である。
【図3】本発明による崩壊順序の決定の好適実施例を詳細に示す説明図である。
【図4】本発明による一組の崩壊経路の決定の好適実施例を詳細に示す説明図である。
【図5】本発明による崩壊経路を選択の好適実施例を詳細に示す説明図である。
【図6】本発明による視覚的歪み因子の計算の好適実施例を詳細に示す説明図である。
【図7】本発明による選択された崩壊経路についての崩壊値の決定の好適実施例を詳細に示す説明図である。
【図8】本発明による崩壊順序の決定の代替的な好適実施例を示す説明図である。
【図9】本発明による一組の崩壊経路の決定の代替的な実施例を示す説明図である。
【図10】本発明による実行時管理手段の好適実施例を示すフローチャートである。
【図11】本発明による実行時管理手段の代替的な実施例を示すフローチャートである。
【図12】本発明によるオブジェクトの最適な崩壊レベルの分析の実施例を示す説明図である。
【図13】データのリモート伝送で使用するための本発明の一実施例を示す説明図である。
【符号の説明】
100 コンピュータシステム
104 プロセッサ
108 RAM
112 ROM
116 入力手段
118 バス
120 ディスプレイ
124 ディスク
138 頂点リスト生成モジュール
142 崩壊経路決定モジュール
146 崩壊値分析モジュール
150 崩壊経路選択モジュール
154 頂点崩壊リスト
158 頂点リスト
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to the field of generating 3D graphics, and more particularly to the field of generating multi-resolution objects in a 3D environment.
[0002]
[Prior art]
Realistic 3D object rendering for use in games and other software applications has long been the goal of software and hardware manufacturers in the computer industry. However, there are numerous problems that hinder the achievement of realistic 3D object rendering on a typical user's home computer.
[0003]
Three-dimensional graphics use polygons to create objects that are to be rendered. Such polygons are generated and manipulated to draw the curvature and details of the object. The more polygons used to create an object, the more detailed and realistic the object. However, as the number of polygons used to create one object increases, the calculation required for rendering the object increases, and therefore the speed of rendering the object decreases. For this reason, from a developer's perspective, there is a trade-off between speed and realism.
[0004]
Solving this problem is not easy. Most users do not have a modern high-performance personal computer, so if a developer wants to target a product to the largest number of potential users, he / she will have an object for the lowest common denominator. Must design. For this reason, the developer must assume that the user's processor is slow and only capable of rendering a few triangles per second. For this reason, developers will support the speed side of the equation (speed vs. realism) when making the above trade-off, and will have fewer triangles than if a faster machine is used by all users. Must be used to design the object. However, this solution does not satisfy both users with low-end computers and users with high-end computers. Users who have low-end computers are still likely to get slow and choppy images, and users with high-end computers will not be able to completely sacrifice realism. Because the application is not designed to take advantage of the greater processing power of high-end machines, you will get an unnatural and robot-like image. In fact, depending on the high-end system, the number of polygons is so small that the processing of the application is too fast to play or interact with.
[0005]
Another problem faced by developers is the fact that even for the same object, the details it needs are more when it is close to the screen than when it is in the background. As the object approaches the screen, the corners and straight edges of the polygons that make up the object can be seen more clearly. At this time, more polygons are required to smooth the corners of the object and continue realistic rendering of the object. However, rendering the object using the most detailed version of the object is not always possible. This is because the application requires too much computing power to render the image on the screen quickly and smoothly. In order to achieve smooth 3D animation, the processor must render 3D objects at 20-60 frames / second. If too many polygons are used for each object, and the object provides the necessary realism as the object approaches the screen, the processor is required to do the above for smooth rendering. The minimum frame rate cannot be achieved.
[0006]
One solution that allows realistic rendering of 3D objects and limits the number of polygons on the screen is the use of Level of Detail mapping. Detail level mapping provides different resolution levels of an object based on the distance of the object to the screen. In order to generate different levels of detail, the developer must generate different versions (ie variants) of objects for each level required. Typically only 3 or 4 levels are used. This is because the storage of each of the multiple versions of the object to be rendered can consume too much of the user's system resources.
[0007]
The level of detail method has several drawbacks. First, this method has a significant impact on system resources, as described above. For the method, each object requires three or four times more storage space than previously required to store each version of the object. Each level requires a separate vertex list as well as a separate data structure. Second, an effect known as object popping occurs when transitioning from one level to another. As the object moves toward the screen, a higher detail version of the object is suddenly rendered and “pops out” (ie, suddenly expands) at the viewer, thereby resulting in the 3D sink quality of the application. (Immersive qualities) are destroyed. The level of detail method also requires extra generation of each version of the object, which requires more time for the developer. The level of detail method also does not address the above-mentioned least common denominator problem. The highest level of detail for each object must be created to account for users with inefficient computers that will use the application. For this reason, the highest level of detail cannot contain a large amount of polygons, otherwise the image that appears on the user's low-end computer will be slow and uneven. Further, such an image cannot appear to use the greater processing capability of the high-end computer, and thus appears as a square robot on the user's high-end computer.
[0008]
[Problems to be solved by the invention]
In accordance with the present invention, an apparatus, system, and method for generating realistic rendering of 3D objects while minimizing user system resource usage and maximizing fidelity without sacrificing speed Is disclosed.
[0009]
[Means for Solving the Problems]
The present invention uses a vertex merging process depending on the position of the object on the screen and other factors to generate a continuous level of detail of the object, thereby eliminating the popping effect of the object. When an object moves toward the background and therefore needs to reduce polygons to provide realistic rendering, the vertices of the object are brought together in a way designed to produce minimal visual distortion. Merged (ie, merged). When the vertices are merged, some polygons in the object are removed. Therefore, the number of polygons of the object continuously decreases as the object moves away from the screen. When the object moves toward the screen, a vertex is added to the object, and a polygon is added to the object. This provides a more realistic depiction of the object as it approaches the user and requires elaborate details (ie, details). Thus, at any given moment, every object on the screen has only the number of polygons needed to provide a realistic rendering of the object. Unnecessary polygons are never drawn, and the user's system is used in an optimal state. Based on the movement of the object in the 3D environment, polygons are continuously added to or removed from the object, so no object popping effect is generated.
[0010]
Furthermore, the present invention only requires that one version of the object be created and stored on the user's system, thus minimizing the impact on system resources. In order to use a single vertex list (which preferably specifies the highest level of detail), the system according to the present invention generates a continuous level of detail of the object for display on the screen. Can do. The system can also advantageously increase or decrease the resolution of the object on the fly. Also, since only the current level of detail being displayed is stored, the required memory usage is minimized. By storing certain minimum information that is determined prior to execution to induce a resolution change, the resolution change is made at run time at an optimal rate. Another advantage of the present invention resides in the ability to allow developers to tweak the vertex merging process according to their preferences. Finally, the present invention automatically adjusts the number of polygons in the screen according to the capabilities of the user's system, thereby providing an optimal image for every user. In one embodiment, the present invention monitors the system to determine the frame rate at which frames are rendered and adjusts the total number of polygons allowed on the screen at a time accordingly.
[0011]
In addition, a target frame rate can be set, which allows the user to specify the speed at which the scene should be rendered. The present invention dynamically adjusts the total number of polygons to ensure that the frame rate is maintained. Alternatively, the present invention allows the number of polygons to be specified and ensures that there is always a certain amount of polygons on the screen regardless of the frame rate.
[0012]
In the preferred embodiment, the generation of a three-dimensional visual representation of an object having multiple resolutions is performed as follows. Reading a vertex list for an object, determining a collapse order with respect to the vertices identified in the vertex list, and reordering the vertices identified in the vertex list according to the determined collapse order; A vertex collapse list is created according to the collapse order. Here, the vertex collapse list specifies, for a target vertex (hereinafter referred to as a target vertex), an adjacent vertex that is to be collapsed. The vertex list can be constructed from the 3D coordinates of the vertices without reference to other vertex attributes, and in an alternative embodiment, the vertex list is a vertex such as color or normal. It is also possible to refer to other attributes.
[0013]
More specifically, in the preferred embodiment, the determination of the collapse order of objects is performed as follows. That is, determine an optimal collapse path from a set of collapse paths, calculate a visual distortion factor for the selected collapse path, determine a collapse value for the selected collapse path, and The comparison of values is repeated for each path in the set of collapse paths to determine the collapse path that produces the least visual distortion to the object, and the next vertex to be collapsed is selected and selected Collapse the object along the collapse path and repeat this until the minimum resolution level is achieved.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1A illustrates a preferred embodiment of a computer system 100 according to the present invention. The computer system 100 is typically implemented in a computer system 100 such as a personal computer having a Pentium ™ processor made by Intel and running a Windows95 ™ operating system made by Microsoft. The ROM 112 is a read-only memory that stores data having an invariant function. The disk 124 stores data that does not require immediate access, such as operating system modules, databases, and other modules. In one embodiment, when used by developer 166, disk 124 stores vertex list generation module 138, collapse path determination module 142, collapse value analysis module 146, collapse path selection module 150, vertex list 158, and collapse list 154. To do. In one embodiment, when used by user 170, disk 124 stores applications, runtime management means 162, and collapse list 154. When access to the stored module is requested, the module is moved to the RAM. The RAM 108 stores data that requires further immediate access. Display 120 and input device 116 are connected to processor 104 via bus 118 and allow user 170 or developer 166 to interact with the modules stored on disk 124.
[0015]
FIG. 1B illustrates a distributed architecture implementing the preferred embodiment of the present invention. The vertex list generating unit 180 includes an application specific integrated circuit (ASIC) connected to a memory, and generates a vertex list 158. The vertex list 158 is sent to the collapse path determination means 184, and the collapse path determination means 184 determines a collapse path from the received vertex list 158. The collapse path data is sent to the collapse value analysis means 188, which analyzes the collapse path data and determines a collapse value for each collapse path. The collapse value is sent to the collapse path selection means 192 together with the collapse path itself, and the collapse path selection means 192 is an observer who sees the collapse when the object is collapsed along the selected collapse path. Select a collapse path from the vertex list that will produce the least visual distortion for. The selected collapse path is stored in the collapse list memory 194, and a new set of vertices is generated by the vertex list generation means 138 in accordance with the selected collapse path. The system continues to generate and select collapse paths until the vertex list generation means does not have the remaining vertices from which the list is generated, and then the processing of the system is completed. The final collapse list is transmitted from the collapse list memory to the processor 104 of the developer computer 100.
[0016]
The data source 196 stores the original vertex list to be processed. The data sources include applications that require modeling of objects, i.e. secondary sources that store objects that require modeling according to the present invention. In one embodiment, modules 138, 142, 146, 150 are implemented as a set of Field Programmable Gate Arrays and programmed to perform the separate functions described above. By partitioning separate functions in a distributed architecture, faster and more robust processing is achieved.
[0017]
FIG. 2A illustrates the process of a preferred embodiment of the present invention for generating a collapse order. First, the vertex list 158 is acquired (200). Typically, vertex list 158 is provided by developer 166 for each object that developer 166 wishes to model. Vertex list 158 can include an index to a 3D coordinate map, or vertex list 158 can be indexed to another map, such as a texture map, or a regular map. Vertex list 158 is normally “cleaned” before it is processed. Typically, the vertex list 158 can specify triangles having edges that are close to each other but do not actually overlap. If the cleaning operation is not performed, the triangle of which the adjacent edges are part will be considered as two separate polygons, which will cause holes or cracks at the lower resolution of the model. Become. For this reason, the system looks for redundant vertex data in the vertex list and eliminates the redundancy.
[0018]
Vertex list 158 may specify a maximum set of vertices to use for the object, or a maximum set of vertices and a minimum set of vertices to use for the object. The minimum number of sets of vertices is specified by developer 166 to define a minimum quality level beyond which the object cannot be collapsed. The more vertices that collapse in an object, the more realistic the object will appear when examined nearby. Thus, for some objects, the developer 166 can determine that a point exists. This point is the point beyond which the object is no longer perceived as its true shape (the object at that point is very small on the screen and therefore has sufficient detail) Even if you don't need a lot of polygons to specify). For such objects, developer 166 specifies a minimum set of vertices. An object can collapse to the minimum number of vertices. The system identifies those vertices during the process and does not collapse those vertices in the object. The vertex list 158 can also specify a nested set of vertices that represent the progressively decreasing resolution of the object. In this case, the system generates a collapse list that interpolates between the set of nested vertices.
[0019]
After obtaining the vertex list, the system proceeds to determine collapse order (204). The collapse order of objects specifies the order in which individual vertices are merged with other vertices. The vertices are collapsed along the collapse path in order to cause the object to have the smallest possible visual distortion. For example, as shown in FIG. 2B, the object has a number of vertices, three of which are specified as V1, V2, V3. If the system according to the invention determines that the first collapse path is V1 → V2, the object will be as shown in FIG. 2C. The object of FIG. 2C has fewer polygons to render than the object of FIG. 2B. Thus, the object of FIG. 2C has a lower resolution than the object of FIG. 2B, and if the object is placed closer to the background or due to other factors detailed below, Alternatively, it should be displayed when there is a high possibility that the user 170 will not notice it even if the resolution is increased. Displaying a version of the object that contains fewer polygons as it approaches the background allows the processor to spend more time processing objects that are closer to the foreground. As a result, the foreground object can have a greater number of polygons without affecting the frame rate.
[0020]
After determining the collapse order for the object, the vertex list 158 is reordered to the order specified by the collapse order (208). The vertices to be collapsed first are identified, and the other vertices are ordered based on the collapse priority of those vertices. The system advantageously minimizes its footprint in its memory by using the existing vertex list 158 instead of using another configuration to store this information. The system then generates a vertex collapse list 154 (212). The vertex collapse list specifies vertices to be targeted when the target vertex is collapsed. Alternatively, the list specifies vertices to which the added vertex is connected. When collapsing an object's vertices to achieve a lower resolution, the system can simply delete the vertices as ordered in the vertex list until the desired resolution is obtained. However, more information is required to increase the resolution of an object by adding vertices. In any case, the correct triangle list must be generated by the system at the desired resolution. The list of triangles specifies the connection information for all of the triangles that must be rendered to achieve the desired resolution.
[0021]
For example, as shown in FIG. 2D, the object is initially in a low resolution state. In FIG. 2E, vertices are added to the object to increase the number of polygons, thereby increasing the resolution of the object. However, as shown, if there is no further information, the system cannot know which vertex should be connected to the new vertex. Therefore, more information is stored in the vertex collapse list 154. The vertex collapse list 154 stores connection information about adjacent vertices to which each vertex is connected. In the example of FIGS. 2D and 2E, the vertex to which V1 is connected is also specified in the vertex collapse list 154, so that the system can know the correct edge to draw. By using the connection information, a correct triangle list is generated for each resolution. In the preferred embodiment, information about the two lists 154, 158 is stored in the same location to optimize processing. Since arrays and other data structures are preferably used to store collapse information, term (ie relation) lists are used descriptively.
[0022]
FIG. 3 is an illustration showing in more detail a preferred embodiment of the determination of the collapse order according to the present invention. Initially, a set of collapse paths is determined (300). This set of collapse paths identifies every possible collapse path between each vertex and every other vertex to which it is connected at the current resolution of the object. Accordingly, the object of FIG. 2B has eleven vertices (V1 to V11). For V2, it is possible to identify four potential decay paths (C1, C2, C3, C4).
[0023]
A collapse path is then selected from the set of collapse paths (304). A visual distortion factor is calculated for the selected decay path (308). The visual distortion factor is the magnitude of the effect of a given collapse on the object. Some collapse paths have a much greater visual impact on the user than other collapse paths. For example, if V1 collapses to V2, the object will appear to shrink its width significantly. However, if V8 collapses to V11, the user will not appear to distort the object. The system captures the above differences by calculating several visual distortion factors, including area changes, angular changes, and local volume changes, as detailed below.
[0024]
Each decay path is given one decay value as a function of the visual distortion factor calculated for that decay path (312). The collapse value is preferably a weighted combination of visual distortion factors of the collapse path. By weighting different factors, the developer 166 can specify the importance of the factors applied in the specific application to be developed.
[0025]
The system determines 316 whether there are more collapse paths. If there are more collapse paths, the next collapse path is selected (304) and the above process is repeated. Also, if there are no more collapse paths, the system compares the collapse path collapse values to determine the collapse path that produces the least visual distortion to the object (320).
[0026]
Vertices to be collapsed are identified according to the determined collapse path (324), collapse priority is assigned to the vertex (326), and the collapse priority reorders the vertex list. used. The object is collapsed along the collapse path (328). The system determines whether two or more vertices remain other than the vertex set consisting of the minimum number of vertices (332). If there are no more than two such vertices, then the system proceeds to reorder the vertex list 158. When two or more such vertices remain, the system treats the collapsed object as an object to be newly processed and repeats the above-described processing. The system determines a set of collapse paths that cause the object to produce minimal visual distortion and processes the object until the collapse path reduces the object from its maximum resolution to the minimum resolution. Do. For each stored collapse path, the vertex to which the target vertex is to be connected and the connectivity change represented by the triangle list are stored. Thus, when a vertex is added to the object, the system can identify which triangle is connected to the added vertex by another vertex. This information is stored in the vertex collapse list 154 as described above.
[0027]
FIG. 4 illustrates an alternative embodiment of a method for determining a set of collapse paths. First, a target vertex is selected (400). Any one of the existing vertices of the object can be selected, and the order is not important. An input is then received (404) specifying the maximum number of adjacent vertices to examine each vertex. This allows the developer 166 to control the processing time of the system. By limiting the number of adjacent vertices examined by the system for each vertex, the system does not need to perform as many calculations.
[0028]
Adjacent vertices are then identified (408). Adjacent vertices are vertices that are connected along the edge to the target vertex. Adjacent vertices include any vertex that is directly connected to the target vertex, as well as any vertex that is connected to the target vertex via another one or more vertices. It can be inferred that this list can be quite large if every vertex is processed. However, as described above, the maximum number of adjacent vertices can be specified to minimize processing.
[0029]
After identifying adjacent vertices, a collapse path is determined between the target vertex and the adjacent vertices (412). The system determines whether the maximum number of collapse paths has been reached (416). If the maximum number of collapse paths has been reached, the system determines whether there are more vertices (420). If there are additional vertices, the collapse paths for the other vertices are calculated as described above. Also, if there are no more vertices, the system selects one collapse path from the set of collapse paths (304).
[0030]
FIG. 5 shows an example of collapse path selection. In this embodiment, the processor computation is minimized by limiting the number of collapse paths that will have collapse values. For the first iteration through the object, a collapse value is calculated for every collapse path. After the collapse path is selected, the object is collapsed along the collapse path. A new set of collapse paths is generated as described above. However, in this iteration, collapse values are generated for collapse paths that are within a predetermined distance from the collapse path previously used to collapse the object. After the previous collapse, the multiple collapse paths will remain the same, and their collapse values (ie, the measure of visual impact of the collapse on the object) will also remain the same.
[0031]
For example, in FIG. 2B, when C1 is selected as the collapse path, the object shown in FIG. 2C is obtained as a result. The collapse value of the collapse path between V8 and V11 remains the same for the two objects before and after such deformation. This is because the vertices around V8 and V11 are not affected by the decay of C1. Therefore, it is not necessary to recalculate the decay value of the decay path for V8 to V11. Since there is no visual distortion factor calculation for every collapse path after every collapse, the calculation of the system is greatly minimized and the processing speed is much faster.
[0032]
Thus, as shown in FIG. 5, the system determines whether the collapse path is within a threshold distance from the previous collapse path (500). The threshold can be preset or defined by the developer 166. Developer 166 can experiment with different thresholds to maximize accuracy while minimizing computations. If the collapse path is within the threshold, the system calculates a visual distortion factor for the collapse path (308). Also, if the collapse path is not within the threshold, the existing collapse value is subsequently used as the collapse value of the collapse path, and the next collapse path is selected.
[0033]
FIG. 6 shows three visual distortion factors that are preferably calculated according to a preferred embodiment of the present invention. First, the area change of the object is calculated in response to the collapse of the object along the selected collapse path (600). The area change of the object is calculated by calculating the surface area of the object before collapse, and then calculating the surface area of the object after collapse. The difference between the two surface areas is indicative of the effect on the surface area of the object that will undergo the collapse process. Second, an angular change is calculated in response to the collapse of the object along the collapse path (604). The angular change is a measure of the effect on the local curvature of the object that will undergo collapse. The system calculates the normal of the triangle of which the vertex is a part. Multiple points representing a large curvature are more important for the visual appearance of the object. Accordingly, such points are assigned a scale that reduces their collapse priority. Third, a local volume change is calculated in response to the collapse (608). Using the target vertex as the vertex of the pyramid, a pyramid is generated from the target vertex. The base of the pyramid is a triangle formed from three consecutive adjacent vertices. Such a series of pyramids is constructed from successive sets of adjacent triple vertices and their volumes are summed. The volume of the object is determined, the target vertex is collapsed along the collapse path, and the volume is calculated again. This volume change is used to represent the effect on the visual appearance of the object. The calculation of the “local volume” change of the pyramid is much faster than the calculation of the “true” volume of the object, and more accurately indicates the geometry of the object. Other visual distortion measures known to those skilled in the art can also be used in accordance with the present invention. Statistical measures of error, such as surface deviation, can also be used to calculate visual distortion.
[0034]
FIG. 7 shows an alternative embodiment of determining the collapse value for the selected collapse path. In the example, the system accepts an input from the developer 166 specifying the priority weights for different factors (700). The system multiplies each factor by the specified priority weight (704) and then combines each factor to obtain a collapse value (708). By allowing the developer 166 to specify weights, the developer 166 is allowed more creative control. Developer 166 can determine that the object is very pointed and therefore should give the highest weight to the angle change factor. Therefore, the developer 166 designates a high weight for the angle change factor. Collapse of an object having a large angle change factor will set a lower priority for collapse. Also, if the object represents an organic shape, the local volume factor becomes even more important. Developer 166 assigns a higher weight to the local volume factor, and the collapse priority that has a greater impact on the local volume will be set lower. If the developer 166 does not specify a weight, a default value that weights each factor equally is used. In one embodiment, the developer 166 can increase the processing speed of the system by removing factors from consideration. For example, the developer 166 can determine that the local volume change is not related to a particular object. Developer 166 then specifies that local volume changes should not be calculated for the object. This allows the system to process objects much faster.
[0035]
FIG. 8 shows an alternative embodiment of the collapse order determination step 204. The embodiment allows the developer 166 to “fine tune” the collapse order interactively. Since the visual distortion of an object is essentially a subjective decision, the present invention advantageously allows the developer's 166 subjective preference to be introduced into the collapsed state of the object. Initially, a set of collapse paths is determined as described above (800). The object is then displayed to the user at the current resolution level. If this is the first iteration, the object will be at the maximum resolution level. The system randomly selects one collapse path from the set of collapse paths to collapse the object. The system displays the collapsed object to developer 166, who can see the impact of the collapse on the object. If developer 166 approves the collapse, developer 166 selects the path. If the system receives an input to select the route (820), the system prioritizes the collapse based on the number of routes already selected. If the developer 166 does not approve the collapse, the next collapse path is selected and the process is repeated.
[0036]
In one embodiment, a collapse value is calculated for each collapse path, and the paths are prioritized as described above. The collapse path designated to collapse first is selected as the first path to be collapsed and displayed to developer 166. If the developer 166 selects the collapse path, the path maintains its priority. A new set of collapse paths is generated, and the highest priority collapse path is selected from the new set of collapse paths and displayed to the developer 166. If the developer 166 does not select the collapse route, the next highest priority route is selected and displayed to the developer 166. Of course, the developer 166 can specify a particular path at any time that is visible in the object that the developer 166 wishes to collapse. Such a choice by developer 166 will override any prior prioritization by the system.
[0037]
FIG. 9 shows an embodiment of the present invention. In this case, the developer 166 designates a set of a minimum number of vertices before calculating the collapse path. As described above, the set of minimum number of vertices is the set of vertices that the developer 166 does not want to collapse. Thus, as shown in FIG. 9, after a collapse path has been selected (900), the system causes the collapse path to collapse one vertex specified in the minimum set of vertices. It is determined whether or not (904). If there is a vertex in the minimum set of vertices, the collapse path is not selected.
[0038]
In another embodiment, the texture map is indexed by vertices. A texture map provides a realistic appearance to an object by providing a texture to the mapped area. The textures for different triangles can be quite different from each other. Thus, when collapsing a triangle, the system must determine the effect of the loss of triangle texture on the appearance of the object. Vertices on the edges of discontinuities in the texture are not collapsed due to the effect that collapse will have on the appearance of the object. For this reason, when selecting the collapse path, the vertex in the collapse path is inspected to determine whether the vertex is located on the edge of the discontinuous portion of the texture. If the vertex is located on the edge of a texture discontinuity, the collapse path is not selected.
[0039]
FIG. 10 shows the runtime management means of the present invention. The runtime management means executes addition or reduction of polygons to the object as necessary when the application is executed in real time. The runtime management means operates in association with the graphic system of the computer and the application program that has processed the object. At the start of the application, the runtime management means collapses objects referenced in the application (1000). The runtime management means stores the extended vertex collapse information for each collapse level of the object in the table (1004). The expanded vertex collapse information is information stored in the vertex collapse list 154, and the vertex collapse list 154 includes the vertex to be collapsed of each vertex to be collapsed, and the triangle that needs to be deleted from the model. Is specified. By storing the extended vertex collapse information in the table, the processor can add and delete polygons at a higher speed. This is because the processor need only access the table to determine the vertices and triangles to add, delete, or re-index, and does not have to perform any excessively required calculations. It is.
[0040]
In one embodiment, an expanded table for each object has already been created at the development stage, and the table is simply loaded into data memory to facilitate access at the start of the application. The runtime management means waits for a request from the application regarding the collapse level from the object. The initial appearance of each object is represented with a default resolution. When an application or graphics program requests (1008) increased or decreased resolution from the runtime management means, the runtime management means that the requested resolution is greater than the current collapse level of the object. Decide if the collapse level is required (1012). Since the current collapse level of the object is the only one of the objects stored in memory, the current collapse level is known. If the requested resolution requires a higher collapse level for the object, vertices are added to the object according to the vertex collapse information in the table until the requested collapse level is met. This continuous vertex addition provides a smooth rendering of the object and eliminates the problem of object popping described above. Similarly, if the requested resolution is one that requires a collapse level lower than the current collapse level, the vertex is collapsed until the correct resolution of the object is achieved (1016). The table also makes it possible to instantly add and delete polygons from an object when requested. The table also does not need to store all versions of the object, so that the present invention allows a minimum memory occupancy to be achieved. Also, artifacts due to object popping are eliminated by the addition or reduction of continuous polygons on the object. Thus, in accordance with the present invention, an efficient and fast object modeling process is disclosed that provides multiple levels of resolution and minimizes resource usage.
[0041]
FIG. 11 shows an alternative embodiment of runtime management means for analyzing objects to determine collapse levels. In this embodiment, as described above, the object is collapsed (1100), and vertex information is stored for each collapse level (1104). However, in this example, the object is analyzed (1108) to determine the optimal collapse level. If the runtime management means determines an optimal collapse level that requires a higher resolution (1112), vertices are added to the object (1120). Also, if the optimal collapse level requires a lower resolution than the current resolution, the vertex is collapsed (1116).
[0042]
FIG. 12 shows several methods for analyzing the optimal collapse level of an object. One or all of these methods can be used in accordance with the present invention to determine the optimal collapse level. Initially, the speed of the object is determined (1200). The speed of the object is determined by measuring the distance that the object has moved between the current frame and the previous frame and dividing the distance by the time elapsed between those frames. Alternatively, the speed measures the distance traveled over some of the most recently rendered frames, and the distance is the total elapsed time for rendering the entire recent frame sequence. Calculated by dividing. The determined speed is then compared to a table that maps the speed of the object to the collapse level. This table can be specially designed for a given object, or it can be a global table that gives a general correlation between velocity and collapse level. An object needs a lower resolution for its realistic rendering as its moving speed increases. This is because such movement tends to obscure the finer details of the object. Thus, the current speed of the object is compared with the table to determine the resolution required at that speed. If the runtime management means determines that the required resolution is a collapse level greater than the current collapse level of the object (1232), more polygons are added as described above (1236). . If the resolution required by the object is lower than the resolution given by the current collapse level, polygons are reduced (1240). Thus, the runtime management means dynamically manages the resolution of the object to provide optimum fidelity and minimize the use of processing power.
[0043]
The protruding area of the object is another factor used by the runtime management means to determine the optimal collapse level for the object. The protruding area of the object is an area that the object will occupy when rendered on the display. The larger the protruding area of the object, the higher the required resolution. The system determines (1208) the current protruding area of the object and compares the protruding area to a table that correlates the protruding area and the collapse level (1212). Next, the number of polygons is adjusted according to the comparison result (1232).
[0044]
The present invention also provides global polygon count management. In this embodiment, the user selects the number of target polygons (hereinafter referred to as the target polygon number) for each frame. In this embodiment, the system determines the number of polygons currently displayed in one frame (1216). The total number of polygons displayed in one frame is determined by determining the objects on the screen and summing the number of polygons of each object, or the number of triangles drawn on the screen in one frame. It is possible to make a calculation by holding a typical tally in the rendering means. This number is compared (1220) with a predetermined target polygon number. If the runtime management means determines that the current polygon count is smaller than the target polygon count (1232), additional polygons are added (1236). If it is determined that the current number of polygons is larger than the number of target polygons, the number of polygons is reduced (1240). The decision as to which object a polygon is added to and from which object the polygon is reduced can be implemented in many ways. It is possible to add or delete polygons uniformly for all polygons. Alternatively, it is possible to analyze objects one by one and add or delete polygons in units of individual objects.
[0045]
Alternatively, the user 170 can select a target frame rate (hereinafter referred to as a target frame rate). The runtime management means determines the current frame rate by monitoring the processor clock and determining the time required to render the frame (1224). The current frame rate is then compared to the target frame rate (1228). When the runtime management means determines that the current frame rate is faster than the target frame rate (1232), a polygon is added to the frame (1236) to slow down the frame rate. If the current frame rate is slower than the target frame rate, polygons are reduced from the frame (1240) to increase the frame rate. In this way, the runtime management means enables dynamic and global polygon management that requires minimal input from the user 170. This management process allows the present invention to be a universal platform, allowing the target frame rate or polygon count to be set as low as if the present invention were used in a system with a slower processor. Is possible, and the benefits described above are still provided. However, systems with faster processors can be set to have higher frame rates or polygon numbers, and the higher processing power of the system is maximized by the present invention.
[0046]
As shown in FIG. 13, the present invention can also be used to transmit data over a remote connection. When receiving data over a remote connection (eg, the Internet), the user 170 often waits for the data to be downloaded before the requested object is displayed. In accordance with the present invention, a minimal vertex set or lowest collapse level object is transmitted to the user 170 when requesting an object over a remote connection. This lowest resolution version of the object requires less data for display and is therefore transmitted to the user 170 much faster. Additional collapse levels are then continuously sent to the user 170 to increase the resolution of the object to its maximum resolution. Since each collapse level typically adds only a few polygons, each collapse level is also transmitted very quickly. This method allows the user to receive the lowest resolution version of the object very quickly and then shortly thereafter to receive the full resolution version of the object. If the user 170 does not need a full resolution object, the user 170 does not have to wait for unnecessary data (higher resolution data) to be transmitted before viewing the object. Also, even if the user 170 does not reach the maximum resolution but needs a higher resolution, the present invention transmits the higher resolution in packets, so that the user 170 can receive the maximum resolution version. The object can be viewed in less time than would be required to wait for the entire object to be downloaded.
[0047]
As shown in FIG. 13, a request for an object is received over a remote connection (1300). In response to the request, an object with the minimum resolution is transmitted to the requesting side (1304). The minimum resolution object is the lowest resolution object that can be displayed and still represent the object accurately. If a set of a minimum number of vertices of an object is specified by developer 166, that set is used as the minimum resolution to send. A packet of information is then sent (1308) containing the vertices needed to raise the collapse level of the object to the next higher resolution. As detailed above, this information includes the vertices and connections required to increase the resolution of the object. The system then determines (1312) whether the maximum resolution or target resolution has been transmitted. The system knows that the maximum resolution has been achieved when a packet is sent that contains the information necessary to increase the resolution of the object to its maximum resolution. Alternatively, the user 170 can specify a target resolution when requesting an object download. The optional selection of the target resolution allows the user to optimize the time required for data transfer to meet the user's fidelity needs. If the user 170 does not require a maximum resolution object, the user can specify that and only the intermediate resolution object is transmitted. The option is useful, for example, if the user 170 wants to see an object different from that being downloaded, or if the user 170 has a computer that cannot be viewed in high resolution. is there. If the target resolution or maximum resolution is not met, another packet is sent to the user 170. If the target resolution is satisfied, data transmission is complete.
[Brief description of the drawings]
FIG. 1A is a block diagram illustrating a preferred embodiment of a computer system according to the present invention.
FIG. 1B is a block diagram illustrating a preferred embodiment of a computer system with a modular distributed architecture according to the present invention.
FIG. 2A is a schematic diagram illustrating a preferred embodiment for creating a collapse order list according to the present invention.
FIG. 2B is an explanatory diagram illustrating a first example of an object before a vertex is collapsed;
2C is an illustration of the object of FIG. 2B after the vertices have been collapsed according to the present invention.
FIG. 2D is an explanatory diagram showing an object having a lower resolution.
FIG. 2E is an explanatory diagram showing the object of FIG. 2D with vertices added.
FIG. 3 is an illustration showing in detail a preferred embodiment of determining the collapse order according to the present invention.
FIG. 4 is an illustration detailing a preferred embodiment of determining a set of collapse paths according to the present invention.
FIG. 5 is a diagram illustrating in detail a preferred embodiment of selecting a collapse path according to the present invention.
FIG. 6 is an illustration showing in detail a preferred embodiment of the visual distortion factor calculation according to the present invention.
FIG. 7 is an illustration detailing a preferred embodiment of determining collapse values for selected collapse paths according to the present invention.
FIG. 8 is an illustration showing an alternative preferred embodiment of determining the collapse order according to the present invention.
FIG. 9 is an illustration showing an alternative embodiment of determining a set of collapse paths according to the present invention.
FIG. 10 is a flow chart showing a preferred embodiment of runtime management means according to the present invention.
FIG. 11 is a flowchart showing an alternative embodiment of the runtime management means according to the present invention.
FIG. 12 is an explanatory diagram showing an example of analysis of an optimal collapse level of an object according to the present invention.
FIG. 13 is an illustration showing an embodiment of the present invention for use in remote transmission of data.
[Explanation of symbols]
100 computer system
104 processor
108 RAM
112 ROM
116 Input means
118 bus
120 displays
124 discs
138 Vertex list generation module
142 Collapse path determination module
146 Decay Value Analysis Module
150 Collapse path selection module
154 Vertex Collapse List
158 Vertex list

Claims (20)

所定の詳細度レベルでオブジェクトの3次元視覚表現を生成するためにコンピュータで実施される方法であって、
前記オブジェクトの全ての詳細度レベルにわたって、前記オブジェクトの頂点について崩壊順序を判定することと、
前記判定された崩壊順序に従って前記オブジェクトの頂点を頂点リスト中に順序付けることと、
前記崩壊順序に従って頂点崩壊リストを生成することであって、前記頂点崩壊リストは、前記オブジェクトの少なくとも1つの詳細度レベルについて、各ターゲット頂点について、前記ターゲット頂点の崩壊先である前記オブジェクトの隣りの頂点を指定し、かつ、各詳細度レベルにおける各頂点崩壊オペレーションは、各ターゲット頂点を各詳細度レベルにおいて前記ターゲット頂点に直接接続された隣の頂点に崩壊させる、ことと、
前記頂点崩壊リストをメモリに保存することと、
前記オブジェクトを描画すべき詳細度レベルを指定することと、
前記メモリに保存された頂点崩壊リスト及び前記頂点リストを使用して、前記オブジェクトの3次元視覚表現を指定されたレベルの詳細度で描画することであって、前記頂点崩壊リストに従って、当該指定されたレベルの詳細度について、前記ターゲット頂点を当該ターゲット頂点に直接接続された隣の頂点に崩壊させた後に前記頂点リストに残された当該ターゲット頂点と当該隣の頂点を用いてポリゴンを作成することにより、前記オブジェクトの3次元視覚表現を描画すること
を有するコンピュータで実施される方法。
A computer-implemented method for generating a three-dimensional visual representation of an object at a predetermined level of detail comprising:
Determining the collapse order for the vertices of the object across all levels of detail of the object;
Ordering the vertices of the object in a vertex list according to the determined collapse order;
Generating a vertex collapse list according to the collapse order, wherein the vertex collapse list is for each target vertex for at least one level of detail of the object, adjacent to the object to which the target vertex is collapsed. Specifying a vertex and each vertex collapse operation at each level of detail collapses each target vertex to an adjacent vertex directly connected to the target vertex at each level of detail;
Storing the vertex collapse list in memory;
Specifying the level of detail at which the object should be drawn;
Rendering a three-dimensional visual representation of the object with a specified level of detail using a vertex collapse list stored in the memory and the vertex list , the specified according to the vertex collapse list; Create a polygon using the target vertex and the adjacent vertex left in the vertex list after collapsing the target vertex to the adjacent vertex directly connected to the target vertex Drawing a three-dimensional visual representation of the object .
前記崩壊順序を判定することは、
或る詳細度レベルにおいて利用可能な一組の崩壊経路を判定することと、
前記一組の崩壊経路における各崩壊経路について、当該崩壊経路に沿って頂点を崩壊させたときに発生する前記オブジェクトの面積変化、角度変化、及び局所的体積変化を含む視覚的歪み因子を計算することと、
前記計算された視覚的歪み因子を重み付けし、結合することにより、前記一組の崩壊経路のそれぞれについて崩壊値を判定することと
を含む、請求項1に記載のコンピュータで実施される方法。
Determining the collapse order includes
Determining a set of collapse paths available at a level of detail;
For each collapse path in the set of collapse paths, calculate a visual distortion factor including area change, angle change, and local volume change of the object that occurs when a vertex is collapsed along the collapse path And
The computer-implemented method of claim 1, comprising: determining a collapse value for each of the set of collapse paths by weighting and combining the calculated visual distortion factors.
前記一組の崩壊経路における各崩壊経路について視覚的歪み因子を計算することは、
各崩壊経路について面積変化を計算することと、
各崩壊経路について角度変化を計算することと、
各崩壊経路について局所的体積変化を計算することと、
前記計算された面積変化、角度変化、及び体積変化を重み付けし、結合することとを有する、請求項2に記載のコンピュータで実施される方法。
Calculating a visual distortion factor for each collapse path in the set of collapse paths,
Calculating the area change for each collapse path;
Calculating the angular change for each decay path;
Calculating the local volume change for each decay path;
3. The computer-implemented method of claim 2, comprising weighting and combining the calculated area change, angle change, and volume change.
前記各崩壊経路について面積変化を計算することは、
第1の崩壊経路に沿って第1のターゲット頂点を崩壊させた後、前記オブジェクトの面積を計算することと、
前記崩壊の前に、前記計算された面積を前記オブジェクトの面積から減算することを有する、請求項3に記載のコンピュータで実施される方法。
Calculating the area change for each collapse path is
Computing the area of the object after collapsing the first target vertex along a first decay path;
The computer-implemented method of claim 3, comprising subtracting the calculated area from the area of the object prior to the collapse.
前記各崩壊経路について体積変化を計算することは、
第1の崩壊経路に沿って第1のターゲット頂点を崩壊させた後、前記オブジェクトの体積を計算することと、
前記崩壊の前に、前記計算された体積を前記オブジェクトの体積から減算することとを有する、請求項3に記載のコンピュータで実施される方法。
Calculating the volume change for each collapse path is
Computing the volume of the object after collapsing the first target vertex along a first decay path;
4. The computer-implemented method of claim 3, comprising subtracting the calculated volume from the volume of the object prior to the collapse.
前記体積を計算することは、
角錐の頂点となる第1のターゲット頂点を選択することと、
3つの連続して隣り合う頂点を前記第1のターゲット頂点に接続することにより、三角形から、前記角錐の基部を形成することと、
前記角錐の体積を計算することと、
連続して隣り合う3つの頂点の次の組から、次の角錐を構成することと、
前記次の角錐の体積を計算することと、
連続して隣り合う3つの頂点の重複しない全ての組について、前記次の角錐を構成すること及び前記体積を計算することを繰り返すことと、
前記角錐の体積を合計し、前記オブジェクトの体積を得ることと
を有する、請求項5に記載のコンピュータで実施される方法。
Calculating the volume is
Selecting a first target vertex to be the vertex of the pyramid;
Forming a base of the pyramid from a triangle by connecting three consecutive vertices to the first target vertex;
Calculating the volume of the pyramid;
Constructing the next pyramid from the next set of three adjacent vertices;
Calculating the volume of the next pyramid;
Repeating the construction of the next pyramid and calculating the volume for all non-overlapping pairs of three consecutive vertices;
6. The computer-implemented method of claim 5, comprising summing the pyramid volumes to obtain the object volume.
前記視覚的歪み因子に対して優先順位重みを指定する入力を受信することを更に含み、前記崩壊値を判定することは、前記優先順位重みに応じて崩壊値を判定することを有する、請求項2に記載のコンピュータで実施される方法。  The method further comprises receiving an input specifying a priority weight for the visual distortion factor, wherein determining the collapse value comprises determining a collapse value in response to the priority weight. 3. A computer-implemented method according to 2. 前記一組の崩壊経路を判定することは、
第1のターゲット頂点を選択することと、
受信した入力に応じて、多数の隣りの頂点を識別することと、
前記第1のターゲット頂点の座標及び前記識別された多数の隣りの頂点に応じて、複数の崩壊パスを判定することと
を含む、請求項2に記載のコンピュータで実施される方法。
Determining the set of collapse paths includes
Selecting a first target vertex;
Identifying a number of adjacent vertices in response to received input;
3. The computer-implemented method of claim 2, comprising determining a plurality of collapse paths in response to the coordinates of the first target vertex and the identified number of neighboring vertices.
一組の頂点を指定する入力を受信することを更に含み、前記崩壊順序を判定することは、前記指定された頂点の組が崩壊されない崩壊順序を判定することを有する、請求項1に記載のコンピュータで実施される方法。  The method of claim 1, further comprising receiving input specifying a set of vertices, wherein determining the collapse order comprises determining a collapse order in which the specified set of vertices is not collapsed. A computer-implemented method. 前記オブジェクトの複数の解像度レベルが存在し、前記方法は、崩壊のための解像度レベルを選択することを更に含み、
前記崩壊順序を判定することは、前記選択された解像度レベルの頂点について崩壊順序を判定することを有する請求項1に記載のコンピュータで実施される方法。
There are a plurality of resolution levels of the object, and the method further comprises selecting a resolution level for collapse;
The computer-implemented method of claim 1, wherein determining the collapse order comprises determining a collapse order for vertices of the selected resolution level.
前記オブジェクトの頂点はそれぞれ、頂点座標及び頂点属性を有する請求項1に記載のコンピュータで実施される方法。  The computer-implemented method of claim 1, wherein each vertex of the object has vertex coordinates and vertex attributes. 前記頂点はそれぞれ、テクスチャマップ座標を有し、
前記描画することは、
第1の頂点を第2の頂点へと崩壊させることと、
前記第1の頂点を前記第2の頂点へと崩壊させた後、前記第1の頂点を前記第2の頂点へと崩壊させる前の前記第2の頂点のテクスチャマップ座標を、前記第2の頂点のテクスチャマップ座標として割り当てることと
を含む、請求項11に記載のコンピュータで実施される方法。
Each of the vertices has texture map coordinates;
The drawing is
Collapsing the first vertex into a second vertex;
After collapsing the first vertex to the second vertex, the texture map coordinates of the second vertex before collapsing the first vertex to the second vertex are the second 12. The computer-implemented method of claim 11, comprising assigning as vertex texture map coordinates.
前記頂点はそれぞれ、法線マップ座標を有し、
前記描画することは、
第1の頂点を第2の頂点へと崩壊させることと、
前記第1の頂点を前記第2の頂点へと崩壊させた後、前記第1の頂点を前記第2の頂点へと崩壊させる前の前記第2の頂点の法線マップ座標を、前記第2の頂点の法線マップ座標として割り当てることと
を含む、請求項11に記載のコンピュータで実施される方法。
Each of the vertices has normal map coordinates;
The drawing is
Collapsing the first vertex into a second vertex;
After collapsing the first vertex into the second vertex, the normal map coordinates of the second vertex before collapsing the first vertex into the second vertex, the second vertex 12. The computer-implemented method of claim 11, comprising: assigning as normal map coordinates of vertices.
前記頂点はそれぞれ、カラーマップ座標を有し、
前記描画することは、
第1の頂点を第2の頂点へと崩壊させることと、
前記第1の頂点を前記第2の頂点へと崩壊させた後、前記第1の頂点を前記第2の頂点へと崩壊させる前の前記第2の頂点のカラーマップ座標を、前記第2の頂点のカラーマップ座標として割り当てることと
を含む、請求項11に記載のコンピュータで実施される方法。
Each of the vertices has color map coordinates;
The drawing is
Collapsing the first vertex into a second vertex;
After collapsing the first vertex into the second vertex, the color map coordinates of the second vertex before collapsing the first vertex into the second vertex, 12. The computer-implemented method of claim 11, comprising assigning as vertex colormap coordinates.
オブジェクトを表示するためにコンピュータで実施される方法であって、
前記オブジェクトの頂点リスト及び隣接リストに従って前記オブジェクトの崩壊を実施することであって、
前記頂点リスト中の頂点が、崩壊優先順位によって識別され、
前記隣接リストが、前記オブジェクトの全ての詳細度レベルにわたって、前記頂点リスト中の頂点について崩壊パスを識別し、かつ、前記オブジェクトの少なくとも1つの詳細度レベルについて、前記頂点リスト中の各ターゲット頂点について、前記ターゲット頂点の崩壊先である前記オブジェクトの隣りの頂点を指定し、
各詳細度レベルにおける各頂点崩壊オペレーションは、各ターゲット頂点を各詳細度レベルにおいて前記ターゲット頂点に直接接続された隣の頂点に崩壊させ、及び、
前記崩壊の後、前記オブジェクトが、第1の崩壊レベルにある、前記オブジェクトの崩壊を実施する、ことと、
前記崩壊に関する情報をメモリに格納することであって、前記情報は、前記オブジェクトのどの頂点が、前記第1の崩壊レベルよりも少なくとも1つ多くの頂点を有する第2の崩壊レベルに存在し、前記オブジェクトのどの頂点が、前記第1のレベルよりも少なくとも1つ少ない頂点を有する第3の崩壊レベルに存在するかを示す、前記崩壊に関する情報を格納する、ことと、
前記第1の崩壊レベルよりも多くの頂点を必要とする崩壊レベルの要求に応じて、前記頂点リスト、及び前記メモリに記憶された頂点情報に従って、前記オブジェクトの頂点リストから頂点を追加することと、
前記第1の崩壊レベルよりも少ない頂点を必要とする崩壊レベルの要求に応じて、前記頂点リスト、及び前記メモリに記憶された頂点情報に従って、前記オブジェクトの頂点リストから頂点を崩壊させることと、
要求された各崩壊レベルについて、前記頂点リスト中の頂点を描画し、前記オブジェクトの3次元視覚表現を生成することであって、前記第1の崩壊レベルよりも少ない頂点を必要とする崩壊レベルの要求に応じて、前記ターゲット頂点を前記第1の崩壊レベルにおいて当該ターゲット頂点に直接接続された隣の頂点に崩壊させた後に前記頂点リストに残された当該ターゲット頂点と当該隣の頂点を用いてポリゴンを作成することにより前記オブジェクトの3次元視覚表現を生成すること
を有するコンピュータで実施される方法。
A computer-implemented method for displaying an object, comprising:
Performing collapse of the object according to the vertex list and neighbor list of the object,
Vertices in the vertex list are identified by collapse priority,
The neighbor list identifies a collapse path for vertices in the vertex list across all levels of detail of the object, and for each target vertex in the vertex list for at least one level of detail of the object , Specify the next vertex of the object that is the collapse destination of the target vertex,
Each vertex collapse operation at each level of detail collapses each target vertex to an adjacent vertex directly connected to the target vertex at each level of detail; and
Performing a collapse of the object after the collapse, wherein the object is at a first collapse level;
Storing information about the collapse in a memory, wherein the information is present at a second collapse level in which any vertex of the object has at least one more vertex than the first collapse level; Storing information about the collapse indicating which vertices of the object are at a third collapse level having at least one less vertex than the first level;
Adding vertices from the vertex list of the object according to the vertex list and vertex information stored in the memory in response to a collapse level request that requires more vertices than the first collapse level; ,
Collapsing vertices from the vertex list of the object according to the vertex list and vertex information stored in the memory in response to a collapse level requirement that requires fewer vertices than the first collapse level;
For each requested collapse level, draw the vertices in the vertex list to generate a three-dimensional visual representation of the object, for a collapse level that requires fewer vertices than the first collapse level. Upon request, using the target vertex and the adjacent vertex left in the vertex list after collapsing the target vertex to an adjacent vertex directly connected to the target vertex at the first collapse level Generating a three-dimensional visual representation of the object by creating a polygon .
前記崩壊に関する情報を格納することは、
前記頂点の少なくとも一部についての三角形連結情報を格納することを含む、請求項15に記載のコンピュータで実施される方法。
Storing information about the collapse is
The computer-implemented method of claim 15, comprising storing triangle connection information for at least a portion of the vertices.
オブジェクトを表示するためにコンピュータで実施される方法であって、
前記オブジェクトの崩壊に関する情報をメモリに格納することであって、
前記オブジェクトが、頂点リスト、及び隣接リストを含み、
前記頂点リスト中の頂点が、崩壊優先順位によって識別され、
前記隣接リストが、前記頂点リスト中の頂点について崩壊経路を識別し、かつ、前記頂点リスト中の各ターゲット頂点について、前記オブジェクトの少なくとも1つの解像度について、前記ターゲット頂点が崩壊先である前記オブジェクトの隣の頂点を指定し、
前記オブジェクトの各解像度における各頂点崩壊オペレーションは、前記オブジェクトの前記各解像度において、各ターゲット頂点を前記ターゲット頂点が直接接続する隣の頂点に崩壊させ、及び、
前記情報は、前記頂点リストのどの頂点が、前記オブジェクトの現在の崩壊レベルの直ぐ上の崩壊レベル及び直ぐ下の崩壊レベルに存在するかを示す、前記オブジェクトの崩壊に関する情報を格納する、ことと、
前記オブジェクトを分析し、前記オブジェクトの現在の崩壊レベルを判定することと、
現在の崩壊レベルよりも高い解像度でオブジェクトを描画すべきことを要求する判定に応じて、前記メモリに記憶された情報に従って、前記オブジェクトの頂点リストから頂点を追加することと、
現在の崩壊レベルよりも低い解像度でオブジェクトを描画すべきことを要求する判定に応じて、前記メモリに記憶された情報に従って、前記オブジェクトの頂点リストから頂点を崩壊させることと、
要求された解像度について、前記頂点リスト中の頂点を描画し、前記オブジェクトの3次元視覚表現を生成することであって、前記現在の崩壊レベルの解像度よりも低い解像度で前記オブジェクトを描画すべきことを要求する判定に応じて、前記ターゲット頂点を前記現在の崩壊レベルにおいて当該ターゲット頂点に直接接続された隣の頂点に崩壊させた後に前記頂点リストに残された当該ターゲット頂点と当該隣の頂点を用いてポリゴンを作成することにより前記オブジェクトの3次元視覚表現を生成すること
を有するコンピュータで実施される方法。
A computer-implemented method for displaying an object, comprising:
Storing information about the collapse of the object in memory,
The object includes a vertex list and a neighbor list;
Vertices in the vertex list are identified by collapse priority,
The neighbor list identifies a collapse path for vertices in the vertex list, and for each target vertex in the vertex list, for at least one resolution of the object, the target vertex of the object to which it is collapsed Specify the next vertex,
Each vertex collapse operation at each resolution of the object collapses each target vertex to an adjacent vertex to which the target vertex directly connects at each resolution of the object; and
The information stores information about the collapse of the object, indicating which vertices of the vertex list are at a collapse level immediately above and below the current collapse level of the object; ,
Analyzing the object to determine a current collapse level of the object;
Adding vertices from the vertex list of the object according to the information stored in the memory in response to determining that the object should be drawn at a resolution higher than the current collapse level;
Collapsing vertices from the vertex list of the object according to the information stored in the memory in response to a determination that the object should be drawn at a resolution lower than a current collapse level;
Drawing the vertices in the vertex list for the requested resolution and generating a three-dimensional visual representation of the object, which should draw the object at a resolution lower than the resolution of the current collapse level The target vertex and the adjacent vertex left in the vertex list after collapsing the target vertex to an adjacent vertex directly connected to the target vertex at the current collapse level. Generating a three-dimensional visual representation of the object by creating a polygon using the computer-implemented method.
前記オブジェクトを分析することは、
前記オブジェクトの速度を判定することと、
前記速度に基いて前記オブジェクトの崩壊レベルを判定することと、を有する請求項17に記載のコンピュータで実施される方法。
Analyzing the object includes
Determining the speed of the object;
18. The computer-implemented method of claim 17, comprising determining a collapse level of the object based on the speed.
前記オブジェクトを分析することは、
現在表示されているポリゴンの数を判定することと、
前記判定されたポリゴンの数を所定のターゲットポリゴン数と比較することと、
現在表示されているポリゴンの数の判定結果が前記所定のターゲットポリゴン数よりも少ないことに応じて、前記オブジェクトの前記頂点リストから頂点を追加することと
を含む、請求項17に記載のコンピュータで実施される方法。
Analyzing the object includes
Determining the number of polygons currently displayed,
Comparing the determined number of polygons with a predetermined number of target polygons;
The computer according to claim 17, further comprising: adding a vertex from the vertex list of the object in response to a determination result of the number of currently displayed polygons being less than the predetermined target polygon number. The method performed.
前記オブジェクトを分析することは、
現在のフレームレートを判定することと、
前記現在のフレームレートを所定のフレームレートと比較することと、
前記現在のフレームレートが前記所定のフレームレートよりも小さいという判定結果に応じて、前記オブジェクトに関する頂点リストから頂点を崩壊させることと、を有する請求項17に記載のコンピュータで実施される方法。
Analyzing the object includes
Determining the current frame rate;
Comparing the current frame rate to a predetermined frame rate;
18. The computer-implemented method of claim 17, comprising collapsing vertices from a vertex list for the object in response to a determination that the current frame rate is less than the predetermined frame rate.
JP20968599A 1999-06-18 1999-06-18 Multi-resolution geometrical arrangement Expired - Lifetime JP4759109B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20968599A JP4759109B2 (en) 1999-06-18 1999-06-18 Multi-resolution geometrical arrangement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20968599A JP4759109B2 (en) 1999-06-18 1999-06-18 Multi-resolution geometrical arrangement

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009292018A Division JP4887419B2 (en) 2009-12-24 2009-12-24 Multi-resolution geometrical arrangement

Publications (3)

Publication Number Publication Date
JP2001056871A JP2001056871A (en) 2001-02-27
JP2001056871A5 JP2001056871A5 (en) 2006-08-03
JP4759109B2 true JP4759109B2 (en) 2011-08-31

Family

ID=16576936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20968599A Expired - Lifetime JP4759109B2 (en) 1999-06-18 1999-06-18 Multi-resolution geometrical arrangement

Country Status (1)

Country Link
JP (1) JP4759109B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157228A (en) * 2009-12-24 2010-07-15 Sven Technologies Inc Geometry by multi-resolution

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3785700B2 (en) * 1995-12-18 2006-06-14 ソニー株式会社 Approximation method and apparatus
JPH10198823A (en) * 1997-01-13 1998-07-31 Hitachi Ltd Video generating device
JPH11144089A (en) * 1997-11-11 1999-05-28 Hitachi Ltd Processor and method for graphic processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157228A (en) * 2009-12-24 2010-07-15 Sven Technologies Inc Geometry by multi-resolution

Also Published As

Publication number Publication date
JP2001056871A (en) 2001-02-27

Similar Documents

Publication Publication Date Title
USRE42406E1 (en) Multi-resolution geometry
JP3840014B2 (en) Scan conversion execution apparatus for graphics display system
EP0531157B1 (en) Three dimensional graphics processing
JP4938850B2 (en) Graphic processing unit with extended vertex cache
US7830380B2 (en) Method, apparatus, and medium for transforming graphic data of an object
WO1998000811A1 (en) Fly-through computer aided design method and apparatus
US8072456B2 (en) System and method for image-based rendering with object proxies
WO1998000811A9 (en) Fly-through computer aided design method and apparatus
JPH10247253A (en) Method for mapping graphic surface model and computer device
US20040249617A1 (en) Selective, pregressive transmission of 3D geometry models with the pre-ordered hierarchical meshes
CN108154553A (en) The seamless integration method and device of a kind of threedimensional model and monitor video
US6043825A (en) Method of displaying 3D networks in 2D with out false crossings
JP4887419B2 (en) Multi-resolution geometrical arrangement
US6831642B2 (en) Method and system for forming an object proxy
JP4759109B2 (en) Multi-resolution geometrical arrangement
US6690827B1 (en) Approximation method of shape data, information processing apparatus and medium
JP2655056B2 (en) Texture data generator
JPH10198823A (en) Video generating device
US20040181373A1 (en) Visual simulation of dynamic moving bodies
US6831636B1 (en) System and process for level of detail selection based on approximate visibility estimation
Sommer et al. Geometry and rendering optimizations for the interactive visualization of crash-worthiness simultations
JP7368950B2 (en) Method and apparatus for efficient building footprint identification
EP4145396A1 (en) Method for adapting the rendering of a scene
KR20240012464A (en) Generation of surface meshes from voxel models of three-dimensional environments
CN113888394A (en) Image deformation method and device and electronic equipment

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060616

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090924

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100406

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100726

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100910

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110606

R150 Certificate of patent or registration of utility model

Ref document number: 4759109

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term