(57)【要約】動的運動体をシミュレーションする方法が提供される。動的運動体を複数のセルへ分割する。各セルは関連する分解能を有する対応するメッシュと関連している。隣りのものの夫々のメッシュの分解能を決定するために、セルをメモリへページ入力する場合に、セルの隣りのものをクエリーする。該セルのメッシュを、該メッシュの分解能の比較及び該隣りのものの夫々のメッシュの分解能に従って調節する。
2006520050.tif 000002
【特許請求の範囲】
【請求項１】
動的運動体をシミュレートする方法において、
前記動的運動体を複数個のセルへ分割し、各セルは関連する解像度を有する対応するメッシュと関連しており、
隣りのものの夫々のメッシュの分解能を決定するためにセルをメモリ内にページ入力する場合に前記セルの隣りのものをクエリーし、
前記メッシュの分解能と前記隣りのものの夫々のメッシュの分解能との比較に従って前記メッシュと前記隣りのものとを縫合させるために対応する１つ又はそれ以上のストリップにより前記セルのメッシュを調節する、
ことを包含している方法。
【請求項２】
請求項１において、前記セルのメッシュの上及び右を、前記メッシュの分解能と前記セルの夫々の下及び東の隣りのものの分解能との比較に従って調節する方法。
【請求項３】
請求項２において、前記メッシュ及び前記東の隣りのものの分解能が同一でない場合には、前記メッシュと前記東の隣のものとを縫合させて三角形からなる１つの列を構築する方法。
【請求項４】
請求項２において、前記メッシュ及び北の隣りのものの分解能が同一でない場合には、前記メッシュと前記北の隣りのものとを縫合させるために三角形からなる１つの行を構築する方法。
【請求項５】
請求項２において、前記北及び東の隣りのものの分解能が両方共前記メッシュの分解能よりもより高いか又は両方ともより低い場合には、前記メッシュと前記北及び東の隣りのもののとを縫合させてファセットを構築する方法。
【請求項６】
請求項２において、前記セルがメモリからページ出力する場合に、前記セルが前記東及び北の隣りのものをリセットする方法。
【請求項７】
請求項２において、前記セルが、前記セルがメモリ内にページ入力した後に前記セルの西及び南の隣りのものに通知する方法。
【請求項８】
請求項７において、前記セルがメモリからページ出力する場合に、前記セルがページ出力したことを前記セルが前記西及び南の隣りのものに通知する方法。
【請求項９】
請求項１において、前記セルのメッシュの下及び左が、前記メッシュの分解能と前記セルの南及び西の隣りのものの分解能との夫々の比較に従って調節する方法。
【請求項１０】
請求項９において、前記メッシュ及び前記西の隣りのものの分解能が同一でない場合には、前記メッシュ及び前記西の隣りのものを縫合させて三角形からなる１つの列を構築する方法。
【請求項１１】
請求項９において、前記メッシュ及び南の隣りのものの分解能が同一でない場合には、前記メッシュ及び前記南の隣りのものを縫合させて三角形からなる１つの行を構築する方法。
【請求項１２】
請求項９において、前記南及び西の隣りのものの分解能が両方共前記メッシュの分解能よりも一層高いか又は両方共一層低い場合には、前記メッシュ及び前記南及び西の隣りのものを縫合させてファセットを構築する方法。
【請求項１３】
請求項９において、前記セルがメモリからページ出力する場合に、前記セルが前記西及び南の隣りのものをリセットする方法。
【請求項１４】
請求項９において、前記セルがメモリ内にページ入力した後に、前記セルが前記セルの東及び北の隣りのものに通知する方法。
【請求項１５】
請求項１４において、前記セルがメモリからページ出力する場合に、前記セルがページ出力したことを前記セルが前記東及び北の隣りのものに通知する方法。
【請求項１６】
請求項１において、前記セルのメッシュの下及び右が、前記メッシュの分解能と前記セルの南及び東の隣りのものの分解能との夫々の比較に従って調節される方法。
【請求項１７】
請求項１において、前記セルのメッシュの上及び左が、前記メッシュの分解能と前記セルの夫々の北及び西の隣りのものの分解能との比較に従って調節される方法。
【請求項１８】
請求項１において、前記セルが複数のオブザーバーのうちの各々に対する幾何学的形状を有している方法。
【請求項１９】
請求項１において、各メッシュの分解能が２の冪であり、且つ前記メッシュが継ぎ目無しで周期的である方法。
【請求項２０】
請求項１において、前記複数のセルのメッシュ分解能の中で最も高い分解能において各フレーム毎にマスターメッシュが計算される方法。
【請求項２１】
請求項２０において、その後のメッシュにおける頂点の位置がマスターメッシュからサンプルされる方法。
【請求項２２】
請求項１において、各セルの詳細のレベルが関連する最大直線距離を有しており、その場合に、視点から前記セルへの直線距離が前記最大直線距離を超える場合には、より低いレベルの詳細が前記セルに対して選択される方法。
【請求項２３】
請求項１において、前記動的運動体が水域を包含している方法。
【請求項２４】
マシンにより読取可能なプログラム格納装置において、請求項１に記載した方法を実施するために前記マシンにより実行可能な命令からなるプログラムをタンジブルに実現しているプログラム格納装置。
【請求項２５】
伝送媒体において１つ又はそれ以上のセグメントで送信されるコンピュータデータ信号において、請求項１に記載した方法を実施するためにコンピュータにより実行可能な命令を実現しているコンピュータデータ信号。
【請求項２６】
コンピュータシステムにおいて、
プロセッサ、
前記コンピュータシステムにより読取可能なプログラム格納装置であって、請求項１に記載した方法を実施するために前記プロセッサによって実行可能な命令からなるプログラムをタンジブルに実現しているプログラム格納装置、
を有しているコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はコンピュータグラフィックスに関するものである。特に、本願は動的運動体の視覚的シミュレーションに関するものである。
【背景技術】
【０００２】
海洋シーンの動的特性のために、海洋水シミュレーションは計算上高価なコンピュータグラフィックスプロセスであり、且つ高いフレームレートにおいての視覚的に最もらしい三次元コンピュータグラフィックス効果を必要とするアプリケーションに対しての困難な作業である。
【０００３】
海洋シーンのフーリエ合成は、水表面を自然的に部分に分解させることを可能とするコンピュータグラフィックス技術である。フーリエ合成技術を介して、複雑性を独立的に調節することが可能であり且つトライアンギュレーション（ｔｒｉａｎｇｕｌａｔｉｏｎ）即ち三角形分割を視点依存性とさせることが可能である。例えば、Ｇ．  Ａ．  Ｍｓｔｉｍ等、「海洋シーンのフーリエ合成（Ｆｏｕｒｉｅｒ  Ｓｙｎｔｈｅｓｉｓ  ｏｆ  Ｏｃｅａｎ  Ｓｃｅｎｅｓ）」、ＩＥＥＥ・コンピュータ・グラフィックス・アンド・アプリケーションズ、１６−２３頁、１９８７年３月を参照すると良い。然しながら、フーリエ合成は高度に計算上の負荷を発生し、従って、応用特定ハードウエアが使用可能なものでない限り、実時間処理が所望される場合には適切なものではない。
【０００４】
コンピュータグラフィックスにおける詳細のレベル（ＬＯＤ）の概念は、究極的にＣＰＵの利用を最適化させる観点から、視野及び視点からの範囲に基づいて異なる多角形密度の幾何学的メッシュをレンダリングすることを包含している。
【０００５】
古典的な幾何学的ＬＯＤ最適化技術は、対話的実時間適応的メッシングを実施するものでもなく、又視点依存性適応的メッシングを実施するものでもない。例えば、Ｊ．  Ｈ．  Ｃｌａｒｋ「可視的表面アルゴリズムに対する階層的幾何学的モデル（Ｈｉｅｒａｃｈｉｃｈａｌ  Ｇｅｏｍｅｔｒｉｃ  Ｍｏｄｅｌｓ  ｆｏｒ  Ｖｉｓｉｂｌｅ  Ｓｕｒｆａｃｅ  Ａｌｇｏｒｉｔｈｍｓ）」、コミュニケーション・オブ・ＡＣＳ、１９（１０）：５４７−５５４（１９７６年１０月）、及びＴ．  Ａ．  Ｆｕｎｋｈｏｕｓｅｒ及びＣ．  Ｈ．  Ｓｅｑｕｉｎ、「複雑なバーチャル環境の視覚化期間中における対話的フレームレート用の適用的表示アルゴリズム（Ａｄａｐｔｉｖｅ  Ｄｉｓｐｌａｙ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｒａｍｅ  Ｒａｔｅｓ  Ｄｕｒｉｎｇ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ｏｆ  Ｃｏｍｐｌｅｘ  Ｖｉｒｔｕａｌ  Ｅｎｖｉｒｏｎｍｅｎｔ）」、ＳＩＧＧＲＡＴＨ  ９３プロシーディングズ、２４７−２５４頁（１９９３）を参照すると良い。
【０００６】
然しながら、視点依存性で局所的に適用的な地形メッシングを対話的に実施することが可能な従来のコンピュータグラフィックス技術は、それから各フレーム毎に適用的三角形メッシュを構築するための予め定めたマルチ分解能表現に依存する。例えば、Ｍ．  Ａ．  Ｄｕｃｈａｉｎｅａｕ等、「ローミング地形：実時間最適適用用メッシュ（ＲＯＡＭｉｎｇ  Ｔｅｒｒａｉｎ  ：Ｒｅａｌ−ｔｉｍｅ  Ｏｐｔｉｍａｌｌｙ  Ａｄａｐｔｉｎｇ  Ｍｅｓｈｅｓ）」、ＩＥＥＥビジュアジゼーション’９７、８１−８８（１９９７年１１月）は所要のフレームレートでイメージを発生する視点依存性三角形メッシュを維持する技術を特集している。然しながら、これらの技術は地形視覚化に適用するものであり、最適化した実時間性能を達成するためには地形の予備処理を必要とし、且つマップ上の任意の点の高度に対する参照として高さマップを必要とする。海洋シーン（及びコンピュータのアクションゲーム又は迅速な動作又は運動が関与するその他のシミュレーションにおける等の動的運動体を包含するシーン）は、典型的に、動的に変化するプロファイルを有しているので、従来の地形視覚化技術は、動的運動体をシミュレーションするためには多くの場合において容易に適合が可能なものではない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
水域又は何等水域無しでのシーン内の動的運動体等の動的運動体をシミュレーションするための改良した方法が必要とされている。
【課題を解決するための手段】
【０００８】
本願は、動的運動体をシミュレーションする方法を提供している。１実施例においては、本方法は、動的運動体を複数のセルへ分割し、各セルが関連する分解能を有する対応するメッシュと関連しており、隣りのものの夫々のメッシュの分解能を決定するためにセルがメモリ内にページ入力する場合に該セルの隣りのものをクエリーし、且つ該セルのメッシュの分解能と比較して該隣りのものの夫々のメッシュの分解能に従って該セルのメッシュを調節する、ことを包含している。
【発明を実施するための最良の形態】
【０００９】
本開示は、動的運動体をシミュレーションするためのツールを提供しており、ジオメトリー（ｇｅｏｍｅｔｒｙ）即ち幾何学的形状のページング（ｐａｇｉｎｇ）、メモリ条件の最小化、セルに対する詳細のレベルの選択、三角形幾何学的形状に対する詳細のレベルの選択、ビューフラスタム（ｖｉｅｗ  ｆｒｕｓｔｕｍ）に対するセルのカリング（ｃｕｌｌｉｎｇ）、及びトライアングルストリッピング（ｔｒｉａｎｇｌｅ  ｓｔｒｉｐｐｉｎｇ）を管理するための改良した方法を包含している。コンパクトディスク（ＣＤ）のようなコンピュータにより読取可能な媒体上に格納され、及び／又はインターネットのようなコンピュータネットワーク、又はワイヤレス媒体等の別の伝送媒体を介して１つ又はそれ以上のセグメントで送信されるコンピュータプログラム（又はコンピュータがそれに対して応答する命令からなるモジュール）で実現することが可能である。
【００１０】
１実施例に基づいて動的運動体をシミュレーションする方法について図１を参照して説明する。動的運動体を複数のセルに分割し、各セルは関連する分解能を有する対応するメッシュと関連している（ステップＳ１１）。隣りのものの夫々のメッシュの分解能を決定するために、セルをメモリ内にページ入力する場合にそのセルの隣りのものをクエリーする（ステップＳ１３）。該セルのメッシュは、該メッシュの分解能と該隣りのものの夫々のメッシュの分解能との比較に従って調節する（ステップＳ１５）。該セルのメッシュは、該メッシュと該隣りのものとを縫合（ｓｔｉｔｃｈ  ｔｏｇｅｔｈｅｒ）させるために１つ又はそれ以上のストリップを構築することにより調節することが可能である。
【００１１】
１実施例によれば、該セルのメッシュの上及び右は、該メッシュの分解能と該セルの北及び東の隣りのものの分解能とを夫々比較することによって調節することが可能である。該メッシュ及び該東の隣りのものの分解能が同一でない場合には、該メッシュと該東の隣りのものとを縫合させるためにトライアングル即ち三角形からなる１つの列を構築することが可能である。該メッシュ及び該北の隣りのものの分解能が同一でない場合には、該メッシュ及び該北の隣りのものを縫合させるために三角形からなる１つの行を構築する。該セルがメモリからページ出力する場合には、該セルは該東及び北の隣りのものをリセットすることが可能である。該セルは、又、該セルがメモリ内にページ入力した後に、該セルの西及び南の隣りのものに通知することが可能である。該セルがメモリからページ出力する場合には、該セルは、該セルがページ出力したことを西及び南の隣りのものに通知する。
【００１２】
別の実施例によれば、該セルのメッシュの下及び左は、該メッシュの分解能と該セルの南及び西の隣りのものの分解能との夫々の比較に従って調節される。該メッシュ及び該西の隣りのものの分解能が同じでない場合には、該メッシュと該西の隣りのものとを縫合させるために三角形からなる１つの列を構築することが可能である。該メッシュと南の隣りのものの分解能が同じでない場合には、該メッシュと該南の隣りのものとを縫合させるために三角形からなる１つの行を構築することが可能である。該セルがメモリからページ出力する場合に、該セルは該西及び南の隣りのものをリセットすることが可能である。該セルは、又、それがメモリ内にページ入力した後に、該セルの東及び北の隣りのものに通知することが可能である。該セルがメモリからページ出力する場合に、該セルは、該セルがページ出力したことを該東及び北の隣りのものに通知する。
【００１３】
別の実施例によれば、該セルのメッシュの下及び右は、該メッシュの分解能と該セルの南及び東の隣りのものの分解能との夫々の比較に従って調節される。
【００１４】
別の実施例によれば、該セルのメッシュの上及び左は、該メッシュの分解能と該セルの北及び西の隣りのものの分解能との夫々の比較に従って調節される。
【００１５】
更に、各セルは、好適には、複数のオブザーバーのうちの各１つに対し幾何学的形状を有している。
【００１６】
該複数のセルのメッシュ分解能の中で最も高い分解能において各フレーム毎にマスターメッシュを計算することが可能である。後のメッシュにおける頂点の位置は該マスターメッシュからサンプルされる。
【００１７】
詳細の各レベルは、対応する最大直線距離と関連することが可能である。視点からある詳細のレベルを有するセルへの直線距離が対応する最大直線距離を超える場合には、詳細のより低いレベルがそのセルに対して選択される。
【００１８】
海洋水をシミュレーションする文脈において、図２Ａ乃至２Ｆを参照して幾つかの用語について以下に掲示する。理解すべきことであるが、本明細書においては海洋又は海洋水をシミュレーションすることに関して例示的な実施例について説明するが、本明細書に記載するツールはその他の水域及び／又はその他の運動体についてもシミュレーションするために適用することが可能である。
【００１９】
海洋（又は別の動的運動体）は（詳細の）単一レベル矩形上グリッドのセルとして表わすことが可能である。シミュレーションしたシーンは行及び列（例えば、グリッド構造）に分割され、それは該グリッドの個々のセルを定義する（図２Ａ）。シミュレーションしたシーンは、メッシュの周期性を使用することにより１個のセルより大きな区域をカバーする。
【００２０】
セルはグリッド構造の細分化である。セルはグリッドの構造の定義内における空の位置である。各セルは一意的な一対の列及び行番号（列、行）を有しており、それはそのセルのアドレスである。そのセルはその内側の幾何学的形状とは独立的であり、且つグリッド構造内における１つの位置の境界及びアドレスを識別するに過ぎない（図２Ｂ）。そのセルはメッシュ内に保持されている表面データ（例えば、幾何学的形状）に対応するシミュレーションしたシーンにおける概念的に大きな表面の物理的領域である。オプションとして、より大きなドメインにわたって継ぎ目無しでセルをタイル張りさせることを可能とするために該シーンのフーリエ合成を適用することが可能である。
【００２１】
メッシュはグリッド構造の対応するセルを占有する幾何学的形状である。該メッシュはほぼ矩形状のパターンで配列された一様に離隔された離散的な点の集まりである（図２Ｃ）。メッシュの点はマルチコンポーネントデータ要素に対応する。マルチコンポーネントデータ要素の例は高さ（一次元）、水平位置（二次元）、垂直（三次元）である。従って、メッシュは幾何学的形状（例えば、位置、高さ及び／又は垂線）を有しており、且つランタイムシーングラフ内に存在している。メッシュの水平寸法はグリッドにわたって一定であるが、各メッシュは実際の又は仮想的なオブザーバーからの範囲の関数である異なる分解能（又は詳細のレベル）を有することが可能である（図２Ｄ）。高さ、位置及び垂線等のメッシュオブジェクトからのデータ出力は、メッシュ及び同じ場所に位置したセルの両方と関連することが可能である。然しながら、メッシュ及び同じ場所に位置したセルの間の差異は、メッシュは地球上の１つの位置から抽出されたものであり、且つセルは、基本的に、それと関連する位置を具備するメッシュである。メッシュは、又、継ぎ目が無く周期的である。
【００２２】
メッシュ点はメッシュの最も小さな分割不可能な要素であり（図２Ｅ）、且つ幾つかのインスタンスにおいては「頂点」と呼称することが可能である。４個のメッシュ点はメッシュファセットを構成する（図２Ｆ）。
【００２３】
オブザーバーの位置は詳細のレベル（ＬＯＤ）及び各セルの光学系に影響を与える。海洋（又は別の動的運動体）が特定した位置に固定されているか又はオブザーバーの位置を中心としているかに拘わらずに、該動的運動体をオブザーバーのチャンネル（例えば、ビューポート）においてレンダリングさせるためには、そのシーンはそのシーンの視点においてオブザーバーにより参照される。オブザーバーと関連するチャンネルの各々は、そのオブザーバーに対応する海洋幾何学的形状に対するポインターを共有することが可能であり、従って、計算はチャンネル毎を基礎とすることは必要ではない。
【００２４】
更に、固定した海洋は複数のオブザーバーにより観察されることが可能である。海洋の位置が固定され且つ一人又はそれ以上のオブザーバーにより参照される場合には、それは該オブザーバーのチャンネルの各々においてレンダリングされる。そのオブザーバーの位置に関していずれか一人のオブザーバーとは独立的なものであるが、オブザーバーを中心とした海洋が遭遇することのないその海洋の幾何学的形状に関して複数のオブザーバーが独特のチャレンジを提示し、即ち、各セルのＬＯＤ及び光学系の計算は各オブザーバーの一意的な位置によって駆動される。
【００２５】
例えば、オブザーバーＡは水面より４０フィート上の航空母艦のデッキ上におり、一方オブザーバーＢは水面から１０，０００フィート上の全体的な海洋のビューを有するＦ−１８ジェット内にいる。オブザーバーＡの水平及び垂直の視野を充填するセルの数はオブザーバーＢに対する数とは異なるものである。更に、オブザーバーＢに対するセルのＬＯＤはオブザーバーＡに対するよりもより低い忠実性を必要とする。
【００２６】
本開示の方法によれば、セル毎のＬＯＤの決定、光学系の計算及び頂点リスト発生はセル幾何学的形状の構築をメインアプリケーションスレッドと同期化させる非同期的なページングスレッドの文脈において発生する。
【００２７】
視点の範囲内にある各セルの基礎となる幾何学的形状は非同期ページングスレッドにおいて無条件に計算されるが、該セルは無条件にレンダリングされるものではない。アプリケーションが高いフレームレートで動作するためには、セルをビューフラスタムでカリングすることが可能である。ビューフラスタムは視点に対して見ることが可能な境界を定義する６個の半空間の交差として定義される。セルが完全ではなく即ち部分的にビューフラスタム内にある場合には、セルをレンダリングするためにオーバーヘッドが発生することはなく、且つレンダリング時間は実質的に全体として減少させることが可能である。
【００２８】
各セルはその基礎となる幾何学的形状のＬＯＤを知っており、且つ各フレーム毎に多角形の詳細の異なるレベルにおいて少なくとも潜在的にレンダリングさせることが可能である。セルが更に外に拡張するに従い分解能は減少する。メッシュ間での一貫性を維持するために、異なる分解能を有する隣りのメッシュ間においてストリップを縫合させる。
【００２９】
例えば、東及び／又は北の隣のセルが存在する場合には、該メッシュの右及び／又は上を対応する隣りのものの分解能に対応すべく正しく縫合させる。そうでない場合には、該メッシュの右及び／又は上を検査中のセルの分解能でレンダリングさせる。
【００３０】
セルがメモリ内にページ入力すると、そのセルは、存在する場合に、東及び北のセルの隣りのものにクエリーし、従ってそのセルは各フレーム毎にそれらの夫々のＬＯＤをクエリーすることが可能であり、且つそのセルが丁度ページ入力したことを存在する場合にその西及び南の隣りのものに通知する。
【００３１】
逆に、セルがメモリからページ出力する場合には、そのセルはその東及び北の隣りのものをリセットし、且つ、そのセルがページ出力したことを、存在する場合に、西及び南の隣りのものに通知する。
【００３２】
海洋（又はその他の動的運動体）の幾何学的形状が非同期的なスレッドにおいて発生し、且つその基礎となる幾何学的形状はオブザーバー毎に独特なものであるので、セルはオブザーバー毎に１つのメッシュを包含しており、従って、そのセルのＬＯＤ及び光学系は各オブザーバーに対して一意的なものである場合がある。
【００３３】
メッシュクラスはメッシュの基礎となる幾何学的形状をクラス内にカプセル化する。該メッシュはｘ軸上の水平幅、ｙ軸上の水平長さ、及びそのメッシュの細分化の数等のデータを包含している。該メッシュは２つの基礎となる幾何学的形状インスタンスを包含することが可能であり、そのことは該幾何学的形状を二重にバッファすることを可能とし、一方のインスタンスがレンダリングされる場合に、他方を次のアニメーションシーケンスに対して構築させる。
【００３４】
以下に更に説明するように、各メッシュの分解能は両方の方向（即ち、ｘ及びｙ）において２の冪であり、メッシュは継ぎ目がなく周期的であり、且つ全てのメッシュの水平方向寸法（即ち、幅及び長さ）はグリッドにわたって一定である。
【００３５】
メッシュの周期性は特定された最も高い分解能で各フレーム毎に１つのマスター海洋メッシュを計算することを可能とし、且つそのシーングラフにおけるその後のメッシュが該マスターメッシュからサンプルしたそれらの頂点の位置を有することを可能とする。マスターメッシュのサンプリングは、シーングラフ内の各メッシュが潜在的に異なる分解能（即ち詳細のレベル）を有することを可能とする。頂点対世界空間マッピングｗ（ｖ）はｗ（ｖ）＝（ｖx，ｖy，ｚ（ｖ））を介して達成され、尚（ｖx、ｖy）は頂点ｖの水平座標であり（マスターメッシュにおいて）、且つｚ（ｖ）はｖにおける高さである。
【００３６】
該メッシュはその詳細のレベルを知っており且つそれらの夫々の詳細のレベルに関する情報を得るためにその２つの隣りのもの（即ち東／南及び北／上）に対してクエリーする。該メッシュは該隣りのものの詳細のレベルに関する情報を維持することが可能であり且つメッシュ間で三角形を縫合させるために該情報を使用する。
【００３７】
１つの例示的実施例によれば、詳細のレベルは２の冪における整数としてキャッシュされ（１，２，４，．．．）、尚１は最も高い詳細レベル（即ち分解能）と関連しており、その場合には全ての頂点が描かれる。メッシュの最も高い分解能が６４×６４である場合には、１のＬＯＤは６４×６４のレンダリングされたメッシュ分解能に対応し、２のＬＯＤは３２×３２のレンダリングされたメッシュ分解能に対応し、４は１６×１６のレンダリングされたメッシュ分解能に対応し、８は８×８のレンダリングされたメッシュ分解能に対応し、１６は４×４のレンダリングされたメッシュ分解能に対応し、且つ３２は２×２のレンダリングされたメッシュ分解能に対応する。
【００３８】
最も高い分解能を有するメッシュはＬＯＤに対して最大数の頂点を割当てる。各フレームに対して、該メッシュは、そのメッシュのＬＯＤ及びそのメッシュの東及び北の隣りのもののＬＯＤに基づいて、ＬＯＤ条件を満足させるために適宜の数の頂点を発生させる（例えば、頂点アレイの再割当は実施されない）。
【００３９】
海洋（又はその他の動的運動体）は、詳細のレベルと間接的に関連される場合のあるスイッチ距離のベクトルを有するように構成することが可能である。距離は昇順にベクトル内に挿入される。海洋が構築される場合にデフォルトによりゼロがベクトル内に挿入される。各隣接する対の数は距離の範囲を表わす。
【００４０】
例えば、ベクトルにおける全ての値が１００の倍数（最大で５００）である場合には、ベクトル内には６個の範囲が存在している。
【００４１】
【表１】
2006520050.tif 000003
【００４２】
各インデックスにおける値は、ページングストラテジーがあるＬＯＤにおいてレンダリングされるべきセルに対してそのセルからとすることが可能な最大直線距離を表わしている。この最大距離を超える場合には、そのセルのＬＯＤ複雑性は２の冪だけ低下される。視点により近いセルは更に遠いものよりもより粗く三角形分割される。遠クリッププレーンは、海洋（又はその他の動的運動体）が最早見えない視点からの直線距離である。
【００４３】
該ベクトルにおける各要素のインデックスは、ページングストラテジーが対応する範囲内にある場合に現在のメッシュがレンダリングされるＬＯＤに対して間接的に対応している。該インデックスは、２を底とするＬＯＤを計算するための指数として使用されるのでＬＯＤに間接的に対応しており、その場合にＬＯＤ値は２の冪であり
［１，２，４，８，．．．］＝［２0，２1，２2，２3，．．．］
である。上述したように１は最も高い詳細レベルであり、その場合の全ての頂点が描かれる。上の例において、メッシュの最も高い詳細レベルが６４×６４であると仮定する。６４＝２6であるので、最大で６個の詳細レベルの範囲を設定することが可能である。インデックスゼロで開始し、
２0＝１、２1＝２、２2＝４、２3＝８、２4＝１６、２5＝３２
である。
【００４４】
詳細のレベルが決定された後に、残りのレンダリングタスクは、レンダリングパイプラインへ送られる三角形ストリップの数を最適化し、且つ異なる分解能のメッシュ間の連続性を維持することを包含しており、それは、該メッシュとその東の隣りのものとを縫合させる三角形からなる列、該メッシュとその北の隣りのものとを縫合させる三角形からなる行、及び該隣りのものの分解能に依存する右上角部におけるファセットを構築することを包含している。
【００４５】
三角形をストリップへ編成させることから顕著な性能利得が得られる。１実施例によれば、該メッシュは高々４個の三角形ストリップとしてレンダリングすることが可能である。該メッシュの殆ど全体が第一ストリップを有している。残りの３個のストリップは、夫々、右、上、角の縫合である。
【００４６】
三角形からなる各列は、オプションとして、１つの三角形ストリップとして取扱うことが可能であり且つ頂点データが三角形からなる各列に対して発生される。然しながら、レンダリングパイプラインへ送られるコマンドの数を最適化させるために、該メッシュの本体を有する列の全てが、好適には、１つの三角形ストリップへ編成される。
【００４７】
該メッシュのボディー即ち本体は、以下の態様で構築することが可能である。メッシュの左角部（０，ｙｍａｘ）で開始し、三角形が頂点（０，０）に対して描かれる。次いで、（１，ｙｍａｘ）から開始して次の列が処理される。該列の全てが処理された後に、発生された最後の頂点は右下角部（ｘｍａｘ，０）である。ｘｍａｘ及びｙｍａｘはメッシュの最大分解能（メッシュのＬＯＤ値の倍数を除く）を表わす。ＬＯＤ値の倍数の減算は、三角形からなる最も右側の列及び最も上の行の構築を別のステップにおいて実施することを可能とする。三角形の付加的な列及び行は該メッシュを該隣りのものへ接続させる。
【００４８】
メッシュを縫合させるために各メッシュのその隣りのＬＯＤの知識を取得及び／または維持する。更に、該三角形は、好適には、正面に向いた三角形となる等一貫性のある配向状態で構築される。幾つかの従来のソフトウエアによれば、スクリーン上でそれらの頂点が反時計方向順に表われるポリゴン即ち多角形は「正面に向いている」ものである。水平情報において、後ろに向いてポリゴンのいずれもがレンダリングパイプラインへ送られることなく、従って、後ろに向いたポリゴンは可視的なものではない。
【００４９】
メッシュをその隣りのものへ縫合させることは、以下のタスクを実施することを包含することが可能である。
【００５０】
メッシュ及びその東の隣りのものの分解能が比較される。メッシュ及び東の隣りのものの分解能が同一である場合には、調節作用を行うことは必要ではない。２つのメッシュを接続させる三角形の列が同一の分解能で発生され、且つ第一三角形ストリップへ付加される。
【００５１】
右側（即ち、東の隣りのもの）のメッシュがより高い分解能にある場合には、三角形からなる最後の列を以下の如くに構築することが可能である。メッシュの上から開始して、図３Ａ及び３Ｂに示したように、繰返しパターンにおいて三角形ストリップを構築する。頂点（１乃至５）が図３Ａに示した順番で訪ねられている。三角形の列から構築されるに従い、次のファセットがそのパターンを繰返し、即ち、頂点５及び４は、夫々、次のファセットに対する頂点１及び２となる。図３Ｂはレンダリングされた場合に、低分解能メッシュをその東の隣りの高分解能メッシュと縫合させる１つのファセットを示している。
【００５２】
右上角部の対角線の右側で且つそれに隣接する三角形は、右側角部が後に縫合されるまで構築されることはない。何故ならば、そのファセットの構築は、北の隣りのもののＬＯＤにも依存するからである。
【００５３】
東の隣りのもののメッシュがより低い分解能にある場合には、三角形からなる最後の列を以下の如くに構築することが可能である。メッシュの下から開始して、図４Ａ及び４Ｂに示したように、繰返しパターンで三角形ストリップを構築する。頂点（１乃至５）は図４Ａに示した順番で訪ねられる。三角形からなる列が構築されるに従い、上方の次のファセットがそのパターンを繰返す（即ち、頂点５及び４は、次のファセットに対し、夫々、頂点１及び２となる）。図４Ｂは、レンダリングされた場合に高分解能メッシュを東の隣のものの低分解能メッシュと縫合させる１つのファセットを示している。
【００５４】
次に、そのメッシュの北の隣りのものの分解能がそのメッシュの分解能と比較される。これらの分解能が同じである場合には、調節動作は行われない。これら２つのメッシュを接続させる三角形からなる行を同一の分解能で発生させ且つ第一三角形ストリップへ付加させることが可能である。
【００５５】
上のメッシュがより高い分解能にある場合には、三角形からなる上の行が以下の如くに構築される。メッシュの左側から開始して、図５Ａ及び５Ｂに示したように、繰返しパターンで三角形ストリップを構築する。頂点（１乃至５）は図５Ａに示した順番で訪ねられる。三角形からなる行が構築されるに従い、右側の次のファセットがそのパターンを繰返す（即ち、頂点５及び４は、次のファセットに対し、夫々頂点１及び２となる）。図５Ｂは、レンダリングされた場合に、低分解能メッシュをその北の隣りのものの高分解能メッシュへ縫合させる１つのファセットを示している。
【００５６】
上のメッシュがより低い分解能にある場合には、三角形からなる上の行が以下の如くに構築される。該メッシュの右側で開始して、図６Ａ及び６Ｂに示したように、繰り返しパターンで三角形ストリップを構築する。頂点（１乃至５）は図６Ａに示した順番で訪ねられる。三角形からなる行が構築されるに従い、左側の次のファセットが次のパターンを繰返す（即ち、頂点５及び４は、次のファセットに対し、夫々、頂点１及び２となる）。図６Ｂは、レンダリングされる場合に、高分解能メッシュをその北の隣りのものである低分解能メッシュと縫合させる１つのファセットを示している。
【００５７】
右上角部の対角線の左側で且つそれに隣接した三角形は、右側角部が後に縫合されるまで構築されることはない。何故ならば、このファセットの構築は東の隣りのものにも依存するからである。
【００５８】
次に、両方の隣りのものに隣接している右上角部が構築される。東又は北の隣りのものの分解能がより低いか又はより高いかに拘わらずに、頂点は同一の順番で訪ねられる。図７Ａ，７Ｂ，８Ａ，８Ｂは、メッシュのＬＯＤ及びその２つの隣りのもののＬＯＤに基づいて、マスターメッシュから頂点をサンプリングする場合に得られる差異を例示している。
【００５９】
図７Ａに例示したように、両方の隣りのメッシュが現在のメッシュよりもより高い分解能にある。図７Ｂはレンダリングされた場合の角のファセットを示している。
【００６０】
図８Ａに例示したように、両方の隣りのメッシュが現在のメッシュよりもより低い分解能にある。図８Ｂはレンダリングされた場合の角のファセットを示している。
【００６１】
本開示の方法は、異なる多角形密度の最適な三角形メッシュを発生し、その場合に、該密度は視点依存性であり且つその論理はランタイムで実施することが可能であり、それから各フレーム毎に適用的三角形メッシュを構築するためにあらかじめ定義したマルチ分解能表現に依存するものではなく、最適な三角形ストリッピングを特徴とし、マルチビュー依存性メトリックを考慮し、一貫性のある高いフレームレートにおいて動作し且つフレーム当たり数千個の三角形をレンダリングしながらフレーム間の一貫性を確保し、且つ異なる分解能でレンダリングしたメッシュ間において不連続性又はクラックが表われることを防止する。
【００６２】
異なる例示的実施例の要素及び／又は特徴は、本開示及び特許請求の範囲内において互いに結合させることが可能であり及び／又は互いに置換させることが可能である。
【００６３】
上の特定の実施例は例示的なものであり、且つ本開示の精神から又は特許請求の範囲から逸脱することなしにこれらの実施例に関し多くの変形例を導入することが可能である。
【００６４】
例えば、詳細のレベルの表現及びそれらをどのようにして分解能へ変換するかは異なるものとすることが可能である。更に、スイッチ距離のベクトルがキャッシュされ且つ処理される態様、及び該値が究極的にどのようにしてＬＯＤ選択に影響を与えるかは異なる場合がある。更に、当業者にとって明らかであるように、メッシュの基礎となるジオメトリー即ち幾何学的形状は、複数の非同期スレッドにおいて構築することが可能である。
【００６５】
上述した実施例はセル（又はメッシュ）の東及び北の隣りのものにクエリーし且つ該セルの分解能を該東及び北の隣りのものの分解能に対して比較することを言及するものであるが、そのクエリー及び比較は、代替的に、選択される対が一貫性を持って適用される限り、例えば南及び西の隣りのもの、又は南及び東の隣りのもの、又は北及び西の隣りのもの等のその他の等価な隣りのものの対に関して行うことが可能である。従って、「東隣りのもの」に対する言及は、主題のセルの右側の隣りのもの、又は、代替的に、（及び等価的に）左側の隣りのものをカバーすべく解釈されるべきである。同様に、「北隣りのもの」に対する言及は、セルの上側の隣りのもの、又は代替的（等価的に）セルの下側の隣りのものをカバーする。
【００６６】
本願は、「動的移動体の視覚的シミュレーション（ＶＩＳＵＡＬ  ＳＩＭＵＬＡＴＩＯＮ  ＯＦ  ＤＹＮＡＭＩＣ  ＭＯＶＩＮＧ  ＢＯＤＩＥＳ）」という名称で２００３年３月１２日付で出願された米国特許出願第１０／３８６，７３２号の優先権を主張するものである。
【図面の簡単な説明】
【００６７】
【図１】本願の１実施例に基づいて動的運動体をシミュレーションする方法を示したフローチャート。
【図２】（Ａ）は動的運動体を包含する例示的なシーン内における３×２セルからなるグリッド構造の概略図、（Ｂ）は図（Ａ）のグリッド構造のセル（１，０）を示しており、（Ｃ）は（Ｂ）のセル（１，０）内に同じに位置された８×８の分解能を有するメッシュを示しており、（Ｄ）は８×８のメッシュ分解能を有するセル（１，０）及び４×４のメッシュ分解能を有するセル（２，１）を包含する異なる夫々の分解能を有する２つのメッシュを示しており、（Ｅ）は（Ｄ）のセル（２，１）におけるメッシュ点を示しており、（Ｆ）は（Ｄ）のセル（２，１）におけるメッシュファセットを示している。
【図３】（Ａ）及び（Ｂ）は本開示の１実施例に基づいて、東の隣りのものがメッシュよりもより高い分解能を有する場合にメッシュをその東の隣りのものへ縫合させる三角形からなる列の構成を例示した各概略図。
【図４】（Ａ）及び（Ｂ）は東の隣りのものがメッシュよりもより低い分解能を有する場合に、別の実施例に基づいて、メッシュをその東の隣りのものへ縫合させるための三角形からなる列の構成を例示した各概略図。
【図５】（Ａ）及び（Ｂ）は１実施例に基づいて、北の隣りのものがメッシュよりもより高い分解能を有する場合に、メッシュをその北の隣りのものへ縫合させるための三角形からなる行の構成を例示した各概略図。
【図６】（Ａ）及び（Ｂ）は北の隣りのものがメッシュよりもより低い分解能を有する場合に、別の実施例に基づいて、メッシュをその北の隣りのものへ縫合させるための三角形からなる行の構成を例示した各概略図。
【図７】（Ａ）及び（Ｂ）は１実施例に基づいて、東及び北の隣りのものがメッシュよりもより高い分解能を有する場合、メッシュの右上角部をその東及び北の隣りのものへ縫合させる場合を例示した各概略図。
【図８】（Ａ）及び（Ｂ）は東及び北の隣りのものがメッシュよりもより低い分解能を有する場合に、別の実施例に基づいて、メッシュの右上角部をその東及び北の隣りのものへ縫合させる場合を例示した各概略図。
【図１】
2006520050.tif 000004
【図２】
2006520050.tif 000005
【図３】
2006520050.tif 000006
【図４】
2006520050.tif 000007
【図５】
2006520050.tif 000008
【図６】
2006520050.tif 000009
【図７】
2006520050.tif 000010
【図８】
2006520050.tif 000011
【国際調査報告】
2006520050.tif 000012
2006520050.tif 000013
2006520050.tif 000014