(57)【要約】  コンピュータ、携帯電話、ゲームコンソール又はその他のデバイス等の電子プロセッサベースのシステムに実装するためのコンピュータグラフィックス方法を提供する。本方法は、シーンのいくつかの部分に関しては透視投影を用い、それ以外の部分に関しては正投影を用いて、システムの電子ディスプレイデバイスのピクセルを起動することにより、３次元シーンをレンダリングすることを伴う。透視投影は、透視投影におけるレンダリングと正投影によるレンダリングとの間に知覚可能な差が発生することになるシーンの部分に対して使用される。所定の条件を満たすシーンのその他の部分をレンダリングするためには、コンピュータ処理コストが大幅に低い正投影を用いる。本方法により得られる、ディスプレイデバイスのピクセルが表示するレンダリングされたシーンは、透視変換を用いてその全体を写実的にレンダリングしたかのように見えるものとなる。しかしながら、レンダリングされたシーンの一部分は正投影を使用してレンダリングされているため、本方法は、透視投影のみを用いるレンダリングよりもコンピュータ処理コストが低い。【選択図】図１５
2015535978.tif 000002
【特許請求の範囲】
【請求項１】
電子ディスプレイデバイスを制御するために配設された少なくとも１つのプロセッサを有する電子プロセッサベースのシステムに実装される、コンピュータグラフィックス方法であって、
以下のような前記プロセッサの操作ステップ：
データ構造から３次元シーンを定義するデータを抽出するステップ；
所定の条件を満たす前記シーンの一部分に対応する抽出データを、正投影によって前記電子ディスプレイデバイス上にレンダリングするステップ；及び
前記電子ディスプレイデバイス上の透視投影に従って、前記シーンの他の部分に対応する抽出データをレンダリングするステップ
を含み、
前記電子ディスプレイデバイスに表示されるレンダリングされた前記シーンは、透視投影によって全体がレンダリングされたかのように見え、これによって、前記シーンのレンダリングのために前記電子プロセッサが実施する計算の総数が、透視投影のみを用いるレンダリングに対して減少する、前記方法。
【請求項２】
前記シーンの一部分が、前記部分の寸法、透視投影の焦点距離及び前記ディスプレイの解像度を考慮した前記所定の条件を満たすかどうかを試験するステップを含む、請求項１に記載の方法。
【請求項３】
前記所定の条件を満たす前記シーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成するステップ；及び
前記２Ｄ形成パターンに基づいて、前記シーンのサブ部分の投影を決定するステップ
を含む、請求項１に記載の方法。
【請求項４】
前記２Ｄ形成パターンを再帰的に更新するステップ；及び
更新された前記形成パターンを参照して下位のサブ部分の投影を決定するステップ
を含む、請求項３に記載の方法。
【請求項５】
前記２Ｄ形成パターンを再帰的に更新する前記ステップは、前記形成パターンの頂点の座標を表す値をビットシフトするステップを含む、請求項４に記載の方法。
【請求項６】
前記２Ｄ形成パターンを再帰的に更新する前記ステップは、１つ前の再帰の反復の形成パターンに関するバウンディングボックスの最小値からオフセットを計算するステップを含む、請求項５に記載の方法。
【請求項７】
前記データ構造はオクトリーからなり、
前記データ構造を処理する前記ステップは、前記オクトリーを横断するステップを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記部分は、前記オクトリーに関連する親及び子オクタントに対応する、請求項７に記載の方法。
【請求項９】
所定の視点位置に関して前から後への順序で、前記オクトリーのノードを処理するためのシーケンスを決定するステップを含む、請求項７又は８に記載の方法。
【請求項１０】
あるオクタントの境界が視錐台と交差するかどうかを試験するステップを含む、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記ディスプレイに対する書き込みの前にマスク試験を実施するステップを含む、請求項６〜１０のいずれか１項に記載の方法。
【請求項１２】
前記ディスプレイに対する書き込みの前にオクリュージョン試験を実施するステップを含む、請求項６〜１１のいずれか１項に記載の方法。
【請求項１３】
３次元（３Ｄ）シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムであって、前記プロセッサは、
前記データ構造を処理して、前記シーンを定義するデータを取得し；
正投影によって、所定の条件を満たす前記シーンの一部分をレンダリングし；
あるいは、透視投影を用いて前記シーンをディスプレイデバイス上にレンダリングする
よう配設され、
これにより、正投影を使用することで、前記シーンをレンダリングするために前記電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する、前記コンピュータグラフィックスシステム。
【請求項１４】
前記コンピュータグラフィックスシステムの前記プロセッサは、更に、
前記所定の条件を満たす前記シーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成し；
前記２Ｄ形成パターンに基づいて、前記シーンのサブ部分の投影を決定する
よう配設される、請求項１３に記載のシステム。
【請求項１５】
前記コンピュータグラフィックスシステムの前記プロセッサは、更に、前記シーンの一部分が、前記部分の寸法、透視投影の焦点距離及び前記ディスプレイの解像度を考慮した前記所定の条件を満たすかどうかを試験するよう配設される、請求項１４に記載のシステム。
【請求項１６】
好ましくは、前記コンピュータグラフィックスシステムの前記プロセッサは、更に、
前記所定の条件を満たす前記シーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成し；
３Ｄから２Ｄへの投影のためにリソースを要することなく、前記２Ｄ形成パターンに基づいて、前記シーンのサブ部分の投影を決定する
よう配設される、請求項１４又は１５に記載のシステム。
【請求項１７】
請求項１〜１２のいずれか１項に記載の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品。
【請求項１８】
正投影によってシーンの一部分をレンダリングするための電子プロセッサベースのシステムが実装することになる、コンピュータグラフィックス方法であって、以下のステップ：
前記部分に関するバウンディングボックスに関連する３Ｄ点を３Ｄから２Ｄに投影することによって２Ｄ形成パターンを生成するステップ；及び
前記２Ｄ形成パターンに基づいて、前記シーンのサブ部分の投影を決定するステップ
を含む、前記コンピュータグラフィックス方法。
【請求項１９】
請求項１８に記載の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品。
【請求項２０】
３次元（３Ｄ）シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムであって、前記プロセッサは、
前記データ構造を処理して、前記シーンを定義するデータを取得し；
前記シーンの一部分に関するバウンディングボックスに関連する３Ｄ点を３Ｄから２Ｄに投影することによって２Ｄ形成パターンを生成し；
前記２Ｄ形成パターンに基づいて、前記シーンのサブ部分の投影を生成する
よう配設される、前記コンピュータグラフィックスシステム。
【請求項２１】
画像を、前記画像が第１の投影によって生成されているかのように見えるように生成するための、コンピュータグラフィックス方法であって、
前記方法は、
電子ディスプレイデバイスのピクセルを制御するよう配設された少なくとも１つのプロセッサを含むコンピュータシステムによって実施され、
前記方法は、
前記第１の投影によって前記ディスプレイ上に前記画像の一部分を生成するステップ；及び
第２の投影が前記第１の投影を近似している間に、前記第２の投影によって前記ディスプレイ上に前記画像の他の部分を生成するステップ
を含み、
前記第２の投影は、前記第１の投影よりもコンピュータ処理的に高負荷でない、前記コンピュータグラフィックス方法。
【請求項２２】
電子プロセッサベースのシステムが実装することになる、コンピュータグラフィックス方法であって、前記方法は、
電子ディスプレイが表示することになる３次元（３Ｄ）シーンのためのデータを含有するデータ構造を処理するステップ；
正投影によって、所定の条件を満たす前記シーンの一部分をレンダリングするステップ；
あるいは、透視投影を用いて前記シーンをレンダリングするステップ
を含み、
これによって、前記シーンをレンダリングするために前記電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元シーンをレンダリングするためのコンピュータグラフィックス方法に関する。
【背景技術】
【０００２】
従来技術の方法、装置又は文献に対するいずれの参照は、これらが世界中のいずれの国において共通の技術常識の一部を形成した又は形成していることに対する証拠又は承認を構成する物として解釈してはならない。
【０００３】
３Ｄコンピュータグラフィックス技術は、３次元シーンを描画するデータを、電子表示スクリーン上で表示するための２次元画像に変換するために使用される。請求項全体を含む本出願で使用される用語「シーン（ｓｃｅｎｅ）」は、極めて複雑なシーンと、数個若しくは単一のオブジェクトしか含まないシーン、又は実際上最も単純な形態では、１つ又は複数の可視点の単なる集合との両方を含むものとして、広い意味で理解されるものとする。
【０００４】
この２０年に亘ってコンピュータグラフィックスが集中的に発展した領域は、決してこれだけではないが、コンピュータ及びビデオゲームの領域である。
【０００５】
コンピュータゲームの開発及びマーケティングは現在、世界的なエンターテインメント産業の極めて大きな割合を占める。例えば２０１０年には、「Ｃａｌｌ  ｏｆ  Ｄｕｔｙ：  Ｂｌａｃｋ  Ｏｐｓ」というビデオゲームが発売から５日で６億５千万アメリカドルを超える売上を得た。
【０００６】
更に臨場感のあるゲーム体験をゲームプレイヤーに与えるために、ゲームシーンをレンダリングできる速度及び臨場感を上昇させることを対象として相当な開発が行われている。
【０００７】
ゲームシーンのレンダリング中、そのシーンを表すデータ、例えばシーン内の各オブジェクトに関連する位置データをゲーム機のプロセッサによって処理して、シーンの３Ｄ空間から、ゲーム機のディスプレイデバイスで表示するために適した２Ｄデータへと投影しなければならない。この変換は、該シーンに対するプレイヤーの位置及び視野角を考慮する必要がある。人間はその通常の視覚系において透視短縮を知覚するため、コンピュータグラフィックスレンダリング方法は透視投影を用いる。
【０００８】
透視投影は、行列ベクトル乗算を含む操作と共に通常適用される三角関数計算を必要とするため、コンピュータ処理的に高負荷である。従って、シーンに記録されている例えば位置データ等の詳細の量が増大するに従って、シーンをレンダリングするために行わなければならない冗長な計算の数も増加する。これらの追加の計算により、フレームレートを低下させてゲームをプレイする必要が生じる場合がある。
【０００９】
従って、シーンの臨場感の向上とフレームレートの維持との間のトレードオフが存在することが分かるだろう。この問題に対処するために広く採用されている１つのアプローチは、複数の平坦なポリゴンを使用してシーンをレンダリングすることであった。ポリゴンメッシュを使用して、レンダリングしたいシーンのオブジェクトをモデル化する。続いてポリゴンの角を３Ｄから２Ｄに変換し、ユーザに対して表示する。増加するシーンの詳細と高いフレームレート作製との両方を両立させるために、ＡＴＩ、ＮＶＩＤＩＡ等のメーカーは、ゲーム機に組み込むための専用グラフィックプロセッサカードを開発及び市販している。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、現在実装されているポリゴンシステムのままだと、これに関連する多くの制限が存在する。例えば、ポリゴンは直線の境界を有するため、これを使用して湾曲したオブジェクトを容易に表現できない。更に、専用のグラフィックプロセッサを使用してさえ、人間の眼はポリゴンの直線的な辺を用いて湾曲したオブジェクトが近似されていることに対して依然として敏感である。従ってこのようなポリゴンをベースとするシステムは、実装するにはコンピュータ処理的に高負荷であり、また識別力のあるゲームプレイヤーにとって不満足なものである。
【００１１】
上述のような従来技術の問題を克服する、又は少なくともこれまでに知られている方法の有用な代替案となる、３次元シーンを表示するためのコンピュータグラフィックス方法を提供できれば有利である。
【課題を解決するための手段】
【００１２】
本発明の第１の態様によると、電子ディスプレイデバイスを制御するために配設された少なくとも１つのプロセッサを有する電子プロセッサベースのシステムに実装される、コンピュータグラフィックス方法が提供され、上記方法は、以下のようなプロセッサ操作ステップ：
データ構造から３次元シーンを定義するデータを抽出するステップ；
所定の条件を満たすシーンの一部分に対応する抽出データを、正投影によって電子ディスプレイデバイス上にレンダリングするステップ；
シーンの他の部分に対応する抽出データを、透視投影に従って電子ディスプレイデバイス上にレンダリングするステップ
を含み、上記電子ディスプレイデバイスに表示されるレンダリングされたシーンは、透視投影によって全体がレンダリングされたかのように見え、これによって、シーンのレンダリングのために電子プロセッサが実施する計算の総数が、透視投影のみを用いるレンダリングに対して減少する。
【００１３】
本発明の第１の態様によると、電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、上記方法は、
電子ディスプレイが表示することになる３次元（３Ｄ）シーンのためのデータを含有するデータ構造を処理するステップ；
正投影によって、所定の条件を満たすシーンの一部分に対応する抽出データをレンダリングするステップ；
あるいは、透視投影を用いてシーンをレンダリングするステップ
を含み、これによって、シーンをレンダリングするために電子プロセッサが実行する計算の数が減少する。
【００１４】
好ましい実施形態では、本方法は、シーンの一部分が、上記部分の寸法、透視投影の焦点距離及び上記ディスプレイの解像度を考慮した所定の条件を満たすかどうかを試験するステップを含む。
【００１５】
本方法は、好ましくは、
所定の条件を満たすシーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成するステップ；
上記２Ｄ形成パターンに基づいて、上記シーンのサブ部分の投影を決定するステップ
を含む。
【００１６】
好ましい実施形態では、本方法は、上記２Ｄ形成パターンを再帰的に更新するステップ、及び更新された形成パターンを参照して下位のサブ部分の投影を決定するステップを含む。
【００１７】
２Ｄ形成パターンを再帰的に更新する上記ステップは、好ましくは、形成パターンの頂点の座標を表す値をビットシフトするステップを含む。
【００１８】
あるいは、２Ｄ形成パターンを再帰的に更新する上記ステップは、形成パターンの頂点の座標を表す値に、積和演算（ｍｕｌｔｉｐｌｙ−ａｎｄ−ａｄｄ：ＭＡＤ）又は融合型積和演算（ｆｕｓｅｄ  ｍｕｌｔｉｐｌｙ−ａｎｄ−ａｄｄ：ＦＭＡＤ）操作を適用するステップを含んでよい。例えばこのステップは、０．５を積算することによって、形成パターンの頂点の座標を表す値を半減させることを含んでよい。
【００１９】
２Ｄ形成パターンを再帰的に更新する上記ステップは、１つ前の再帰の反復の形成パターンに関するバウンディングボックスの最小値からオフセットを計算するステップを含んでよい。
【００２０】
好ましい実施形態では、データ構造はオクトリーからなり、このデータ構造を処理するステップは、このオクトリーを横断して、そこから上記シーンを表すデータを抽出するステップを含む。
【００２１】
データ構造がオクトリーからなる場合、上記部分は、このオクトリーに関連する親及び子オクタントに対応する。
【００２２】
本方法は、好ましくは、所定の視点位置に関して前から後への順序で、オクトリーのノードを処理するためのシーケンスを決定するステップを伴う。
【００２３】
本方法は、更に、あるオクタントの境界が視錐台と交差するかどうかを試験するステップを含んでよい。
【００２４】
本方法は、好ましくは、上記ディスプレイに対する書き込みの前にマスク試験を実施するステップを含む。
【００２５】
本方法は、また、上記ディスプレイに対する書き込みの前にオクリュージョン試験を実施するステップを含んでもよい。
【００２６】
本発明の更なる態様によると、３次元（３Ｄ）シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムが提供され、上記プロセッサは、
データ構造を処理して、上記シーンを定義するデータを取得し；
正投影によって、所定の条件を満たすシーンの一部分をレンダリングし；
あるいは、透視投影を用いてシーンをディスプレイデバイス上にレンダリングする
よう配設され、これにより、正投影を使用することで、シーンをレンダリングするために電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する。
【００２７】
好ましくは、このコンピュータグラフィックスシステムのプロセッサは、更に、
所定の条件を満たすシーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成し；
上記２Ｄ形成パターンに基づいて、上記シーンのサブ部分の投影を決定する
よう配設される。
【００２８】
好ましい実施形態では、このコンピュータグラフィックスシステムのプロセッサは、更に、シーンの一部分が、上記部分の寸法、透視投影の焦点距離及び上記ディスプレイの解像度を考慮した所定の条件を満たすかどうかを試験するよう配設される。
【００２９】
好ましくは、このコンピュータグラフィックスシステムのプロセッサは、更に、
所定の条件を満たすシーンの一部分に関連する３Ｄ点を３Ｄから２Ｄに投影して２Ｄ形成パターンを生成し；
３Ｄから２Ｄへの投影のためにリソースを要することなく、上記２Ｄ形成パターンに基づいて、上記シーンのサブ部分の投影を決定する
よう配設される。
【００３０】
本発明の更なる態様によると、上述の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品が提供される。
【００３１】
本発明の更なる態様によると、正投影によってシーンの一部分をレンダリングするための電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、この方法は、以下のステップ：
上記部分に関するバウンディングボックスに関連する３Ｄ点を３Ｄから２Ｄに投影することによって２Ｄ形成パターンを生成するステップ；
上記２Ｄ形成パターンに基づいて、上記シーンのサブ部分の投影を決定するステップ
を含む。
【００３２】
本発明の更なる態様によると、上述の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品が提供される。
【００３３】
本発明の別の態様によると、３次元（３Ｄ）シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムが提供され、上記プロセッサは、
データ構造を処理して、上記シーンを定義するデータを取得し；
上記シーンの一部分に関するバウンディングボックスに関連する３Ｄ点を３Ｄから２Ｄに投影することによって２Ｄ形成パターンを生成し；
上記２Ｄ形成パターンに基づいて、上記シーンのサブ部分の投影を生成する
よう配設される。
【００３４】
本発明の更なる態様によると、画像を、その画像が第１の投影によって生成されているかのように見えるように生成するための、コンピュータグラフィックス方法が提供され、上記方法は、電子ディスプレイデバイスのピクセルを制御するよう配設された少なくとも１つのプロセッサを含むコンピュータシステムによって実施され、また上記方法は、
上記第１の投影によって上記ディスプレイ上に上記画像の一部分を生成するステップ；
第２の投影が第１の投影を近似している間に、上記第２の投影によって上記ディスプレイ上に上記画像の他の部分を生成するステップ
を含み、この第２の投影は、第１の投影よりもコンピュータ処理的に高負荷でない。
【００３５】
本発明の第１の態様によると、電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、上記方法は、
電子ディスプレイが表示することになる３次元（３Ｄ）シーンのためのデータを含有するデータ構造を処理するステップ；
正投影によって、所定の条件を満たす上記シーンの一部分をレンダリングするステップ；
あるいは、透視投影を用いてシーンをレンダリングするステップ
を含み、これによって、シーンをレンダリングするために電子プロセッサが実行する計算の数が減少する。
【００３６】
本発明の好ましい特徴、実施形態及び変形例は、以下の「発明を実施するための形態」から認識でき、この「発明を実施するための形態」は、当業者にとって本発明を実施するために十分な情報を提供する。「発明を実施するための形態」は、上述の「発明の概要」の範囲をいかなる様式でも制限するものと見做してはならない。「発明を実施するための形態」は以下の多数の図面を参照する。
【図面の簡単な説明】
【００３７】
【図１】図１は、本発明のある実施形態を実装するためのコンピュータシステムを示す。
【図２】図２は、オブジェクトを透視図で示す。
【図３】図３は、単純なシーンを含むワイヤフレームの立方体を示す。
【図４】図４は、上記ワイヤフレーム立方体の透視投影を示す。
【図５】図５は、上記ワイヤフレーム立方体の透視投影の平面図である。
【図６】図６は、ピクセルの長方形のアレイを備える表示スクリーンを示す。
【図７】図７は、立方体内のオブジェクトを透視図で示す。
【図８】図８は、図６の透視投影を、図７のピクセルの長方形のアレイ上に重ねて示す。
【図９】図９は、図７のスクリーンによる立方体の透視投影のレンダリングを示す。
【図１０】図１０は、ピクセル表示スクリーンに対する立方体の正（即ち平行）投影と透視投影とを比較した図である。
【図１１】図１１は、図１０の立方体の透視投影を上記ピクセル表示スクリーン上に重ねて示す。
【図１２】図１２は、図１０の立方体の正投影を上記ピクセル表示スクリーン上に重ねて示す。
【図１３】図１３は、上記ピクセル表示スクリーンによる、図１０の立方体の透視投影のレンダリングを示す。
【図１４】図１４は、上記ピクセル表示スクリーンによる、図１０の立方体の正投影のレンダリングを示す。
【図１５】図１５は、ある例示的なシーンを定義するオクトリー立方体構造の、高次オクトリー立方体を示す。
【図１６】図１６は、子オクタントの低次生成を示す、図１５のオクトリー立方体構造のスライスを示す。
【図１７】図１７は、本発明のある実施形態によるレンダリングのための、単純な３次元（３Ｄ）シーンを示す。
【図１８】図１８は、図１７のシーンに対応する、細分化されたオクトリー立方体を示す。
【図１９】図１９は、図１８のオクトリー立方体に対応するオクトリーデータ構造のノードの図である。
【図２０】図２０は、図１８のオクトリー立方体の最高次の立方体の、３Ｄから２Ｄへの正投影を示す。
【図２１】図２１は、図１８の立方体の正投影を示す。
【図２２】図２２は、３Ｄから３Ｄへの投影にリソースを割くことなく、２Ｄから２Ｄへの操作を用いて、オクタントの子立方体の投影を高次立方体の投影を定義する頂点から得ることができる方法を示すために使用される図である。
【図２３】図２３は、図１７のシーンのレンダリングを示す。
【図２４】図２４は、正投影モードにおける立方体の２Ｄ投影の頂点を計算するための代替方法を示す。
【図２５】図２５は、表示スクリーンのオリジンからのオフセットとして立方体の２Ｄ投影の頂点を計算できる方法を示す。
【図２６】図２６は、本発明の好ましい実施形態による方法のフローチャートである。
【図２７】図２７は、本発明の好ましい実施形態による方法のフローチャートである。
【図２８】図２８は、本発明の好ましい実施形態による方法のフローチャートである。
【発明を実施するための形態】
【００３８】
図１を参照すると、後に説明する本発明のある実施形態による方法を実施するための例示的なコンピュータシステム１のブロック図が示されている。
【００３９】
このコンピュータシステム１は、上記方法を実施するための例示的な電子プロセッサベースのシステムを含むことが理解できるだろう。しかしながらこの方法は、他の電子プロセッサベースのシステムを用いても容易に実行できる。このようなシステムとしては、ゲーム用コンソール、タブレット、ラップトップ及びネットブックコンピュータデバイス、スマートフォン並びに医療用撮像装置が挙げられるが、これらに限定されない。
【００４０】
コンピュータシステム１は、少なくとも１つのオンボードプロセッサ５に対する給電及びインタフェース接続のための回路構成を含むメインボード３を含む。この少なくとも１つのオンボードプロセッサは、２つ以上の別個のプロセッサ、又は複数の処理コアを有する複数のプロセッサを備えてよい。
【００４１】
コンピュータゲームをプレイするために使用されるパーソナルコンピュータにおいて現在一般的なマイクロプロセッサの非限定的な例は、Ｉｎｔｅｌ社製のｉ５又はｉ７プロセッサシリーズのうちの１つである。
【００４２】
メインボード３は、マイクロプロセッサ５と補助メモリ７との間のインタフェースとして機能する。補助メモリ７は、１つ又は複数の光学ドライブ、磁気ドライブ又はソリッドステートドライブを備えてよい。補助メモリ９は、オペレーティングシステム９のための命令を記憶する。メインボード３はまた、ランダムアクセスメモリ１１及び読み出し専用メモリ１３と通信する。ＲＯＭ１３は典型的には、基本入出力システム（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ：ＢＩＯＳ）のための命令を記憶しており、スタートアップ時にマイクロプロセッサ５はＢＩＯＳにアクセスし、ＢＩＯＳはオペレーティングシステム９のローディングのためにマイクロプロセッサ５を準備する。
【００４３】
メインボード３はまた、グラフィックプロセッサユニット１５ともインタフェース接続している。いくつかのシステムでは、グラフィックプロセッサユニット１５はメインボード３に一体化されていることが理解できるだろう。
【００４４】
メインボード３は典型的には、コンピュータシステム１をインターネット等のコンピュータネットワークとデータ通信できるようにする通信アダプタ、例えばＬＡＮアダプタ又はモデムを含むことになる。
【００４５】
コンピュータシステム１のユーザは、キーボード１９、マウス２１、ディスプレイ１７を用いてコンピュータシステム１に干渉する。
【００４６】
システム１のユーザはオペレーティングシステム９を操作して、コンピュータグラフィックス関連ソフトウェア製品２９をロードしてよい。このコンピュータグラフィックス関連ソフトウェア製品２９は、光ディスク２７等のコンピュータ可読媒体が含む具体的な命令として提供される。
【００４７】
コンピュータグラフィックス関連ソフトウェア製品２９は、例えばゲームの様々なシーンを定義するデータを記憶するデータ構造を含む。
【００４８】
このソフトウェア製品２９はまた、キーボード１９及びマウス２１等のオペレータ制御を介してユーザから受信した入力に応答してシーンのデータを操作するための、マイクロプロセッサ５及び場合によってはＧＰＵ１５のための命令も含む。
【００４９】
シーンデータを記憶するために使用できるコンピュータデータ構造の種類は数多く存在することが分かるだろう。本発明の好ましい実施形態ではオクトリーデータ構造を使用するが、例えばバイナリ空間分割ツリー（ｂｉｎａｒｙ−ｓｐａｃｅ  ｐａｒｔｉｔｉｏｎｎｉｎｇ  ｔｒｅｅ：ＢＳＰツリー）といったその他の種類のデータ構造も、オクトリーデータ構造が好ましいとはいえ、使用できる。
【００５０】
シーンの位置データを記憶するためにどのような種類のデータ構造を使用しても、ディスプレイデバイス１７への表示のためにデータを３Ｄから２Ｄに変換する必要がある。
【００５１】
３Ｄグラフィックスと２Ｄグラフィックスとの間の主要な違いの１つは、透視画法の概念及び視点からの距離によるサイズ低下である。図２では、オブジェクトは視点からの距離に従って小さくなっている。この距離の計算により、３Ｄグラフィックスに関連する多くの３Ｄから２Ｄへの計算に、有意に大きい仕事量が追加される。
【００５２】
ここで図３を参照すると、コンピュータシステム１のディスプレイ１７上でのレンダリングのためのワイヤフレーム立方体３１が図示されている。ディスプレイはいずれの好適な種類のものであってよい。例えばブラウン管（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ：ＣＲＴ）、ＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ：液晶ディスプレイ）又はプラズマディスプレイが、ディスプレイ１７によって使用できるディスプレイ技術の非限定的な例である。立方体３１の頂点及び辺のデータは、上述のようなコンピュータシステムの好適なデータ構造に記憶される。
【００５３】
図４は、表示スクリーン３５上での立方体３１の２Ｄ一点投影を横から見たものである。
【００５４】
立方体の３Ｄ頂点及び辺モデルを、スクリーン３５を含む２Ｄ観察面上に変換することを表すために、立方体３１の頂点からカメラ点３３への多数の光線がスクリーン３５を通過する様子を示す。この変換、又はこの変換を「投影（ｐｒｏｊｅｃｔｉｏｎ）」と呼ぶ場合もあり、標準的な３Ｄから２Ｄへの透視投影を用いて実施されることは、コンピュータグラフィックスの分野において公知であり、例えば「Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｐｒｉｎｃｉ；ｌｅｓ  ａｎｄ  Ｐｒａｃｔｉｃｅ」（Ｆｏｌｅｙ、ｖａｎ  Ｄａｍ、Ｆｅｉｎｅｒ、Ｈｕｇｈｅｓ著、第２版、１９９０年発行、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ（ＩＳＢＮ０−２０１−１２１１０−７））において説明されており、上記文献の開示は、その全体が参照により本明細書に援用される。
【００５５】
既に注記したように、透視変換は三角関数計算を伴うため、コンピュータ処理的に高負荷である。
【００５６】
図５は、カメラ点３３から見た立方体３１の図像３７を示す。これは事実上、立方体３１の、観察平面３５上への一点２Ｄ透視投影である。立方体が視覚的に３Ｄに見えるようにするために、立方体の背面が前面よりも有意に小さくなるように示している。
【００５７】
立方体３１の投影３７の背面の投影と前面の投影とは距離Ｔだけ離間していることに留意されたい。
【００５８】
図７は、立方体内に存在するオブジェクトを示す。これらのオブジェクトは、立方体の前方及び後方に位置決めされているため、サイズが異なる。
【００５９】
図１のシステム１等のコンピュータグラフィックスシステムの文脈において、スクリーン３５は典型的には、図６に示すようなピクセルの格子３９を含む、図１のディスプレイ１７のようなディスプレイモニタ又はその他のディスプレイデバイスを備える。
【００６０】
図８は、ピクセルの格子３９上に重ねられた、立方体３１の投影３７の拡大図である。格子を構成するピクセルは、図示したように概念上の幅及び高さｐを有する。
【００６１】
格子３９のピクセルを用いて投影３７を表示するために、投影３７の線が重なるピクセルが、対照的な色（即ちこの例では黒）に設定される。結果として得られるピクセル画像を図９に示す。
【００６２】
立方体３１の投影３７の背面と前面との距離Ｔは、３つの隣接するピクセルの幅より大きかったため、図９の対応するピクセル画像は、これら背面と前面とを互いに区別できることに留意されたい。
【００６３】
図１０は、カメラ点３３から見るための表示スクリーン３５上への、より小さい３Ｄ立方体４１の投影（平面図で示す）を示していることを除いて、図４の図とある程度類似した図である。使用した焦点距離は図４のものより有意に長いため、空間４３によって示される均等目盛には不連続が存在する。図１０では、平行な光線４５ａ、４５ｂは、表示スクリーン３５上への立方体４１の正投影を表し、集束する光線のペア４７ａ、４７ｂは透視投影を表す。
【００６４】
立方体４１のサイズがより小さいこと、及び透視投影に使用した焦点距離がより長いことにより、正投影の光線４５ａ、４５ｂ及び透視投影に関連する光線の各ペア４７ａ、４７ｂは、表示スクリーン３５においてピクセル幅ｐ未満の距離だけ離れていることに留意されたい。
【００６５】
図１１は、表示スクリーン３５のピクセル格子３９上に重ねられた、カメラ点３３に関する立方体４１の透視投影図である。
【００６６】
同様に図１２は、表示スクリーン３５のピクセル格子３９上に重ねられた、カメラ点３３に関する立方体４１の正投影図である。
【００６７】
図１１の透視投影は、図１２の正投影と同一のピクセル上に重なっていることに留意されたい。その結果、表示スクリーン３５のピクセル格子３９上に生成され、コンピュータシステムのユーザ、例えばゲームプレイヤーが見る実際の画像は、図１３、１４に示す各投影と同一となる。この投影は図９内に示したものよりも大幅に小さい。投影のサイズが小さいため、背面と前面との差は観察できない程度であり、従ってこの図では立方体は正方形に見える。
【００６８】
この立方体内にオブジェクトが存在する場合、オブジェクトが立方体の前方にあるか背方にあるかに応じて小さく又は大きく見えることはない。
【００６９】
技術的には、前面と背面との間には常に差が存在することになるが、コンピュータのモニタがピクセルの格子であるため、このような差のサイズが１ピクセル未満である場合は、上記差は小さすぎて存在できない。３Ｄ計算は通常は透視を使用するが、前面と背面との間のサイズ差が存在しないため、透視を考慮しない異なる計算が使用される。
【００７０】
以上の論証は一点透視を用いて行ったが、本発明者らは、これに対応する結果が二点及び三点透視にも同様に当てはまることを発見した。
【００７１】
以上の論証から、表示されることになる３Ｄオブジェクトのサイズ、並びに観察平面の背後の距離及び使用する焦点距離等のパラメータに応じて、正投影を用いて生成したオブジェクトの図像と透視投影を用いて生成したオブジェクトの図像との間には、スクリーン上で観察可能な差が存在しない場合があり得る。更に、透視投影は正投影に比べて計算コストが極めて高く、即ち透視投影に関しての方が計算の総数が多い。
【００７２】
更に、ワイヤフレーム立方体３１、４１をバウンディングボックスとして考えることができる。その結果、ボックス４１の場合のように正投影を用いてバウンディングボックスをレンダリングできる場合、このバウンディングボックス内にあるシーンのいずれのオブジェクトもまた、正投影を用いてレンダリングできる。
【００７３】
従って本発明者らは、透視投影におけるレンダリングと正投影によるレンダリングとの間に知覚可能な差が発生することになるオブジェクトに関しては透視投影を用い、それ以外のオブジェクトに関しては正投影を用いて、電子ディスプレイデバイスのピクセルを起動することにより、シーンをレンダリングでき、これにより、透視変換を用いて全体的にリアルにレンダリングされているかのように見えるシーンを生成できることを発見した。
【００７４】
更に、簡潔に説明すると、本発明の方法の好ましい実施形態では、各オクタントを３Ｄから３Ｄ空間に別個に投影する必要なしに、総体としての親オクタント立方体の２Ｄ投影に基づき、オクトリーを用いてモデル化したシーンのオクタントの２Ｄ投影を生成できる。
【００７５】
図１５は、総体としてのオクトリー立方体４３内に重ねられた、キノコ型の３つのオブジェクトを含むシーンを示す。オクトリー立方体は、図１に示したコンピュータシステムのメモリ内にデータ構造として記憶される。分かりやすくするために、図１５では、実線で示されているオクトリーの総体としての親立方体４３、及び破線で示されている初めの８個の子オクタント４５ａ…４５ｈのみを示す。しかしながら、コンピュータグラフィックスの分野で公知であるように、オクトリーの子立方体は、シーン内のオブジェクトの湾曲した部分の周りを、事前に決定された解像度限界まで分割し続ける。これは図１６に示されており、図１６は、図１５のオクトリーを通るスライスを含み、ここでは更なる３つのレベルのオクタント４９、５１、５３が確認できる。
【００７６】
これより、本発明の好ましい実施形態による方法について、図１７〜２３を参照して説明する。
【００７７】
図１７は、３つの３Ｄ立方体５５、５７、５９の形態の３つの極めて単純なオブジェクトを含むシーンを示す。ここでの説明を目的として、図１７に示した視野角６３に沿った図１７のシーンの２Ｄ表現を表示するために、図１のコンピュータシステム１を動作させることが望ましい。
【００７８】
図１８は、図１５のシーンをモデル化するために複数のオクタントに分割された、総体としてのオクトリー立方体６１を示す。ここでの説明を目的として、オクトリー立方体６１の全体の寸法は、図１０の立方体４１に関連して説明したように、透視投影ではなく正投影を適用した場合に、識別できる差が知覚されないような寸法である。
【００７９】
総体としてのオクトリー立方体６１は、０〜７の番号が付けられた８つの第１レベルの子立方体に分割されている。立方体５は更に、８つの第２レベルの子立方体に分割されている。第１レベルの子立方体３、４と、第１のレベルの子立方体５の第２レベルの子立方体３は、図１７に示したシーンの立方体５５、５７、５９をモデル化したものである。
【００８０】
オクトリー立方体６１は、図１のコンピュータシステムのメモリ内に、図１９に示すオクトリーを含むデータ構造で記憶される。
【００８１】
図１７のシーンを表示するために、オクトリーのノードを、視野角６３に対して前から後への順序で読み取る、即ち通過する。
【００８２】
オクリュージョンカリングに関連する主要な操作は、バウンディングボックスの寸法を得ることである。オクトリーをベースとするシステムでは、これは通常、総体としての立方体の８つの値を収集するステップ、これらの値を３Ｄ実世界空間から３Ｄスクリーン空間に変換するステップ、そしてこれらの値をソートして、水平及び垂直方向の最小値及び最大値を決定するステップを必要とする。これは通常全てのボックスに対して計算されることになるため、透視をベースとするシステムでは相当な仕事量となる。既に述べたように、本発明の好ましい実施形態による、ここで説明している方法は、実世界／オブジェクトをより小さい複数の正投影領域に分解するというコンセプトを利用する。オクトリーデータを扱う場合、正投影領域のバウンディングボックスは、正確にその親の１／４のサイズであるため、これらの領域を用いてバウンディングボックスの寸法を得る代わりに、水平及び垂直な辺を２等分することができる。
【００８３】
コンピュータグラフィックスの分野において公知であるように、オクトリーを見ることができる８個の異なる視野セクタが存在し、また、どのセクタに視野角が対応するかに応じて、オクトリーを前から後ろに観察するために通過する順序の複数のテーブルが考えられる。図１６に示した状況では、視点はセクタ＋ｘ、＋ｙ、＋ｚに位置し、オクトリーを前から後ろに観察するために通過する順序は「７、６、５、３、４、２、１、０」である。
【００８４】
ここで図２０を参照すると、８個の３Ｄ頂点座標Ｐ０（ｘ０，ｙ０，ｚ０）、…、Ｐ７（ｘ７，ｙ７，ｚ７）によって定義される総体としてのオクトリー立方体６１は、視野角６３において、所望の観察平面６５上に正投影されており、これによって、８個の２Ｄ頂点座標Ｐ０（ｘ０，ｙ０）、…、Ｐ７（ｘ７，ｙ７）を含む立方体の２Ｄ投影６７が生成される。図２１を参照すると、この２Ｄ投影の頂点を定義する８個の２Ｄ頂点座標Ｐ０（ｘ０，ｙ０）、…、Ｐ７（ｘ７，ｙ７）は、オクトリーの投影の形状を定義するため、「形状パターン」と呼ぶことができる。更に、この投影は正投影であるため、上記頂点座標は、縮小すると子オクタントの投影の形状も定義し、透視投影を使用した場合にはこのようにはならない。
【００８５】
図２１では、頂点は辺によって相互接続された状態で図示されているが、これらの辺は図１７のシーンの最終的なレンダリングには現れない。形状パターン頂点Ｐ０（ｘ０，ｙ０）、…、Ｐ７（ｘ７，ｙ７）は、オクトリーの観察順序と同一の順序で、アレイ内に記憶される。即ちＦＰＡｒｒａｙ＝［Ｐ７，Ｐ６，Ｐ５，Ｐ４，Ｐ３，Ｐ２，Ｐ１，Ｐ０］である。
【００８６】
図１９のオクトリーは、前から後への順序で読み取られ、これは図１８に示す視点に関しては、７、６、５、３、４、２、１、０の順序である。
【００８７】
ノード７は空であるため、動作は発生しない。
【００８８】
ノード６は空であるため、動作は発生しない。
【００８９】
ノード５は子ノードを指しているため、手順は次のレベルにドリルダウンする。
【００９０】
次のレベルでは：
ノード７は空であるため、動作は発生しない。
ノード６は空であるため、動作は発生しない。
ノード５は空であるため、動作は発生しない。
ノード３は葉ノードであるため、子ノード５の子ノード３に対して葉ノードサブルーチンが呼び出される。葉ノードサブルーチンについては後に簡潔に説明する。
ノード４は空であるため、動作は発生しない。
ノード２は空であるため、動作は発生しない。
ノード１は空であるため、動作は発生しない。
ノード０は空であるため、動作は発生しない。手順は１レベル上にジャンプする。
【００９１】
ノード３は葉ノードであるため、子ノード３に対して葉ノードサブルーチンが呼び出される。
【００９２】
ノード４は葉ノードであるため、子ノード４に対して葉ノードサブルーチンが呼び出される。
【００９３】
ノード２は空であるため、動作は発生しない。
【００９４】
ノード１は空であるため、動作は発生しない。
【００９５】
ノード０は空であるため、動作は発生しない。
【００９６】
葉ノードサブルーチンは、形状パターンアレイ、バウンディングボックスのＭｉｎＰｏｉｎｔ及びＭａｘＰｏｉｎｔ、並びに葉ノード情報をパスする。
【００９７】
バウンディングボックスの左上角（この場合はオクトリー立方体６１の投影６７の頂点（ｘ０，ｙ０）に対応する）は、８個の頂点（ｘ０，ｙ０）、…、（ｘ７，ｙ７）の起点として使用される。
【００９８】
葉ノードサブルーチンは次に８個の頂点（ｘ０，ｙ０）、…、（ｘ７，ｙ７）に対して作用してこれらを２等分し、図１９に示すような８個の点（ｘ０，ｙ０）２、…、（ｘ７，ｙ７）２を生成する。この８個の頂点（ｘ０，ｙ０）２、…、（ｘ７，ｙ７）２は、図２２に２’として示す、図１８のオクトリー立方体のオクタント２の２Ｄ投影を定義する。この投影は、総体としてのオクタント立方体の２Ｄ投影の頂点を定義する点を分割することにより得られることに留意されたい。オクタント２の３Ｄ頂点を観察平面に投影する必要はなかった。その結果、これら８個の点（ｘ０，ｙ０）２、…、（ｘ７，ｙ７）２は、バウンディングボックス６９の最小値からのオフセットとなる。ビットシフト操作を用いて、バウンディングボックス６９の最小値に対して８個の頂点（ｘ０，ｙ０）、…、（ｘ７，ｙ７）の値を２等分する。新たな点（ｘ０，ｙ０）２、…、（ｘ７，ｙ７）２をそれぞれ再び２等分して、１つ下のレベルの各オクタントに関する更なる８個の補助点、例えば（ｘ０，ｙ０）３、…、（ｘ７，ｙ７）３を生成する。例えば図２２の子オクタント立方体の投影５−３’によって示すようなものである。
【００９９】
子オクタントが葉ノードであることをオクトリーが示す場合、図２３に示すようにこれら子オクタントに濃淡を付けて、初めに図１７に示したシーンのレンダリングを生成する。オブジェクト、例えば図２３の立方体の寸法が十分に小さければ、図１〜１３に関して既に記載したように、正投影を用いて、又は透視投影変換を用いてレンダリングしたこれらオブジェクトの間に認識可能な差は存在しなくなる。
【０１００】
この形状パターン法が、終端する分岐を有するオクトリーデータに結び付けられていなければ、本方法は浮動点の中実立方体をレンダリングすることになる。本方法をオクトリーデータ及び分岐が空である場合の上記パターンの展開に結び付けることによって、本方法は、比喩を用いると、形状パターンがプラスターであるかのように形状パターンを切り分ける。最終的なオブジェクトは全て、３Ｄから２Ｄへのアルゴリズムと共にボクセルを使用するという従来の技術を用いて作製されたオブジェクトと同一の特性及び形状を有するが、処理パワーに関して、形状パターン法は僅かな時間及び操作しか使用しない。
【０１０１】
２Ｄ正投影点（ｘ０，ｙ０）、…、（ｘ７，ｙ７）によって定義される親立方体の投影の形状は、最高次の親オクタントのみならず、下位レベルの子オクタントの正投影のバランス、即ち形状を定義するため、「形状パターン」と呼ぶことができる。実装可能な形状パターンには数多くの種類がある。
【０１０２】
例えば、頂点は通常、８個の「ｘ」値と８個の「ｙ」値として、例えば上述のような（ｘ０，ｙ０）、…、（ｘ７，ｙ７）として記憶される。しかしながら、４個の「ｘ」値と４個の「ｙ」値を収集し、操作が行われている対象の立方体の３次元中点を２次元投影することによって、又は上述のバウンディングボックス（例えば図２１のボックス６９）の２Ｄ中点を使用することによって生成された中点からのオフセットにこれらの収集した値を変換することによって、残りの値を生成することもできる。これらのオフセットを収集すると、これらの値の符号を反転させることによっていくつかの点を生成できる。上述の角の値のうちの半分を適切に収集することにより、上述の方法を用いて残りの値を生成できる。符号の反転によって点を生成するこの方法は、図２４に示すように正投影された立方体又は角柱を用いる場合のみ正確である。
【０１０３】
形状パターンは通常、バウンディングボックス１９の４個の角のうちの１つに関するオフセットとなる。あるいは形状パターンは、バウンディングボックス内の又はバウンディングボックスの境界の外側のいずれの点からのオフセットとなり得、また形状パターンはオフセットを全く有さない場合もあり得、これらの値が、これらが現在スクリーンのピクセルとして保持している元のままの値となる。しかしながら、バウンディングボックスの４個の角のうちの１つを使用することは、理解の助けとなると考えられ、従って左上角（図２１において「Ｍｉｎ」として示す）は、図２５に示すように、スクリーンの左上角の位置（０，０）を処理する操作と符合する。
【０１０４】
３Ｄグラフィックスのレンダリングにおいてプロセッサの負荷が最も高い部分の１つは、３Ｄ実世界から２Ｄスクリーンへの点の変換である。このプロセスは通常、多数の数学的操作からなる。形状パターンを２等分して、これら２等分値を、親形状パターン点の形状パターン点に加算するプロセスにより、通常の３Ｄから２Ｄへの変換と同一の出力が得られる。
【０１０５】
好ましい実施形態では、形状パターンの計算は、乗算、除算又は複数の複雑な操作を使用しない。代わりにこの計算は、全体のシステムをビットシフト及び加算で置換する。透視をベースとした３Ｄ、グラフィックスの通常の条件下では、この方法は機能しないが、レンダリングされるオブジェクトが上述のように正投影のサブ部分に分割される場合、このシステムはこの普通でないパターンを利用できる。
【０１０６】
ここで図２６〜２８を参照すると、レンダリングのためにシーンをモデル化したデータを含有するオクトリーデータ構造を処理するための、本発明の好ましい実施形態による方法が、フローチャートの形式で記載されている。この方法は、例えば図１の光ディスク２７上の具体的なコンピュータ可読命令としてコード化でき、これにより、この方法は、コンピュータシステム１によって処理するためのコンピュータソフトウェア製品２９を構成する。
【０１０７】
図２６〜２８のフローチャートの各ボックスにおいて実施される様々な処理について記載する。
【０１０８】
ボックス８３では、マスクバッファをクリアしてゼロとする。マスクバッファは、ピクセルがその位置に書き込まれているかどうかを示す一連のフラグ（ディスプレイバッファ内の各ピクセルに対して１つ）である。アルゴリズムが提供する前から後への順序により、各ピクセルは１回しか書き込まれる必要がない。ノードの２Ｄバウンディングボックスに重なる全てのピクセルが既に書き込まれている場合、マスクバッファを用いて、ノード及びその全ての子を無視する。
【０１０９】
ボックス８４では、各ノードは０〜８個の子を有してよい。あるノード上に存在する全ての子が処理されたら、ノードはそのスタックから移動され、もはや考慮されない。
【０１１０】
ボックス８５では、再帰型の実装に関しては、単に関数から戻すことによって、最も上のノードをスタックから移動させる。反復型の実装ではスタックのサイズを１だけ減らす。
【０１１１】
ボックス８６では、スタックにこれ以上ノードが残っていない場合、全てのモデルが処理されている。
【０１１２】
ボックス８７では、複数の子を前から後への順序で処理し、ノードを破棄できる時点を決定するために、これら複数の子それぞれを処理済みとしてマーキングする（ボックス８４参照）。
【０１１３】
ボックス８８では、親ノード又はその親のうちのいずれかが正投影モードに関する基準を満たす場合に、この親ノードを正投影モードにあるものとしてマーキングする（ボックス１０１、１０２参照）。
【０１１４】
ボックス８９では、数学的不正確性を回避するために、近接した観察平面と交差するノードを細分化しなければならない。
【０１１５】
ボックス９０では、現在のノードをスタック上に押し上げて、（存在する場合は）その子が次に処理されることを保証する。
【０１１６】
ボックス９１では、正投影モードにおいて、正投影バッファデータに保存された２Ｄバウンディングボックスのサイズを用い、これを、正投影データが生成されてからの祖先の全てのレベルに関して２で除算することによって、２Ｄバウンディングボックスを計算する。即ち、正投影モード基準を満たす（ボックス１０１参照）ノードの子は、正投影データバッファに記憶されているものの丁度半分のバウンディングボックスサイズを有することになる。孫は丁度１／４のバウンディングボックスを有することになり、以下同様に続く。実際には、正投影バッファデータが生成された時点のスタックのサイズを正投影バッファデータに記憶でき、スタックのサイズからこれを減じて、２で除算した回数を与えることができる。この値を用いて、バイナリシフト操作によって分割が達成され、これは一般的な分割より遥かに迅速である。計算したバウンディングボックスのサイズを用いて、子の数に基づいてボックスのオフセット値を選択し、これを、サイズに関してと全く同様に、祖先の全てのレベルに関して２で除算し、これを、正投影バッファデータに記憶されたバウンディングボックス位置に加算することにより、オフセットを計算する。
【０１１７】
ボックス９２では、透視投影モードにおいて、現在のノードの３Ｄバウンディングボックスの８個の角点においてスクリーン空間への完全な透視変換を実施するための標準的な手段を用いて、２Ｄバウンディングボックスを計算する。一般にこれは、４Ｄベクトル（ｘ，ｙ，ｚ，ｗ）を得る３Ｄベクトル乗算による４×４マトリクスであり、そのｗ成分は、最終的な透視変換を実施するための除数として使用される。本発明の好ましい実施形態によるシステムは、このステップを可能な限り回避するように設計されることが分かるだろう。
【０１１８】
ボックス９３では、２Ｄバウンディングボックスを計算した後で、これがスクリーンのいずれの辺と重なるかどうかを試験し、重なる場合はこれに応じて、ディスプレイバッファと重なるボックスの一部分のみを映し出すために座標を調整する。バウンディングボックスが完全にディスプレイバッファの外側にある場合、ノードはもはや考慮されず、制御はノードの残りの子を処理するためのボックス８４に進む。
【０１１９】
ボックス９４では、前から後への描画順序により、いずれのノードのバウンディングボックス内の全てのピクセルを書き込んだ後、そのノードを閉塞し、そのノードはもはや考慮されない。この試験は、バウンディングボックスの領域に対応するマスクバッファ内の各フラグについて、全てのピクセルが書き込み済みとしてマーキングされているかどうかを試験することによって達成され、その後このノードを破棄でき、制御はボックス８４へと進む。
【０１２０】
ボックス９５では、処理のこの時点においてノードが子を有さない場合、そのノードを描画する（ボックス９７参照）。
【０１２１】
ボックス９６では、バウンディングボックスのサイズが閾値（１ピクセル等）以下である場合にそのノードを描画する。これは主として、１ピクセルのサイズ未満の更なる細分化が不要であるためである。
【０１２２】
ボックス９７では、ノードを描画するために、クリップされた２Ｄバウンディングボックスに対応する各ピクセルを試験し、ピクセルが既に書き込まれている場合、カラーバッファ内の対応するピクセルをノードの色に設定し、マスクバッファを設定する。更にこの時点で他のバッファに書き込んでよく、これにより深度値及び／又は正常値等の情報を記録する。
【０１２３】
ボックス９８では、現在のノードをスタックに押し上げて、その子が次に処理されることを保証する。
【０１２４】
ボックス９９では、あるノードが正投影モードの基準を満たすと、このノードの全ての子も暗黙のうちに正投影となり、従ってこの時点でフラグ及び正投影バッファが複製され、上記子にまで正投影モードを伝達する。
【０１２５】
ボックス１００では、ノードのいずれの祖先が正投影モードの基準を満たす場合、正投影モードフラグをこのノードに設定する。
【０１２６】
ボックス１０１では正投影モードの基準を試験する。図３〜１５に関連して上述したように、品質の観点から、この基準は、ボックスをスクリーン空間に透視により投影する場合に（透視効果により）箱の背面が箱の前面より小さく見える量が１ピクセル未満であり、画素変換時に知覚できるものではないことである。これを試験する方法は多数存在するが、透視効果は、ベクトルを（ボックス９２に関して上述したように）ｗで除算することによって適用されるため、ボックス前面において変換された点とボックス背面において変換された点との間のｗ値の比を試験するのが、便利かつ簡潔な試験である。この比の実際の閾値は、焦点距離やディスプレイバッファの寸法に応じて変化するため、これらのパラメータのうちのいずれかが変化する度に上記閾値を再計算しなければならない。
【０１２７】
従って、正投影モードの監視及び実装に対して、以下の２つの部分が存在する。
【０１２８】
第１の部分は、（ディスプレイサイズ又は焦点距離（視野）が変化した場合に常に更新される）最適な閾値の事前計算を伴い、第２の部分はレンダリング中にこの閾値を適用することを伴う。
【０１２９】
上述のように、基礎となる論理は単純なものである。本発明者らは、投影された前面及び背面の座標が１．０ピクセル未満（又はその他の同様の許容可能な値）だけ離間する時点を知ることを望んでいる。
【０１３０】
この値を即座に計算するための方法は存在し得るが、バイナリ検索が現在使用されている。標準的なバイナリ検索は、ｎｅａｒＺとｆａｒＺとの間で実施され、点のペアｎｅａｒＰｏｉｎｔ＝（１，１，１）及びｆａｒＰｏｉｎｔ（１，１，−１）を変換し、（０，０，ｍｉｄＺ）を加算する。ｍｉｄＺは単にｎｅａｒＺとｆａｒＺとの間の値である。
【０１３１】
投影されたＸ、Ｙのデルタはがピクセル閾値未満である場合、閾値点が配置される。
【０１３２】
バイナリ検索から変換された点（Ｘ、Ｙ、Ｚ、Ｗ）を用いてｆｉｘｅｄＷＲａｔｉｏ＝ｎｅａｒＷ／ｆａｒＷを計算する。
【０１３３】
次に、透視モードレンダリング中に、８個の変換されたボックス点（それぞれに関してＸ、Ｙ、Ｚ、Ｗ）を計算する。
【０１３４】
続いてＸ、Ｙ、ＷのＭｉｎ及びＭａｘを計算することによってバウンディングボックスを決定する（ここではＷについて示す）。
【０１３５】
続いて現在のＷ比を、ｃｕｒＷＲａｔｉｏ＝ｍｉｎＷ／ｍａｘＷとして計算する。
【０１３６】
ｃｕｒＷＲａｔｉｏ≧ｆｉｘｅｄＷＲａｔｉｏである場合、正投影モードに入る。１／ｗは透視変換の一部として計算されることが多いため、上記除算を逆数による乗算に置き換えることができ、これは一般的な浮動点最適化である。
【０１３７】
本方法は、（これもまたバイナリ検索又は試行錯誤によって計算される）約２４のピクセル閾値に関するデルタｘ，ｙを比較するという従来の方法とは幾分異なることにも留意されたい。
【０１３８】
上述の方法は、スクリーンに対するノードの相対的配向に関わらず、オクトリーノードを可能な限り迅速に正投影モードとすることができる点で優れている。そうでない場合、回転するノードのバウンディングボックスが閾値試験を最高４０％（即ちｓｑｒｔ（２））まで偏向させ得、これによって、更に細分化されるまで正投影モードに入るのが遅れることになる。
【０１３９】
本方法はまた、投影の効果は、バウンディングボックスのサイズがより小さくなることであるが、その原因は、ｘ／ｗ  ｙ／ｗ、即ちｗの相対比が透視を引き起こしてｘ、ｙ値を縮小することである点で有意義であることが理解されるであろう。従ってｗを試験することはより論理的かつより正確である。
【０１４０】
上記基準を測定できる他のメトリクスとしては、スクリーン空間の立方体の１辺の長さ、又はスクリーン空間の立方体を取り囲む球体の直径が挙げられる。
【０１４１】
ボックス１０２では、正投影バッファデータは、オクトリーの下流へのノードの深度／レベル（スタックの現在の長さで表される）と、ノードの２Ｄバウンディングボックスと、上記２Ｄバウンディングボックスの左上角からのオフセットとしての、８個の変換されたスクリーン空間点とからなる。
【０１４２】
要約すると、正投影モードはオクトリーデータ構造のノードに対して、これらを分割し、立方体を含むコンテンツの軌跡を追跡することによって作用する。正投影モードの手順は、３Ｄから２Ｄへの変換を回避でき、その代わりに、再帰的な２等分によってより高次のオクタントの投影を表す一連の２Ｄ点、即ち「形成パターン」をスケーリングし、子オクタントの投影を表すための対応する一連の点に到達できる。
【０１４３】
手順中のボックス８８において試験されるように、透視投影と正投影との間に認識可能な差がないオクタントに関してのみ、正投影モードに入るため、レンダリングされたシーンの観察者は、そのシーンを、全体として透視変換を用いてレンダリングされたものであるかのように知覚することになる。正投影モードでレンダリングされた各サブ部分は内部透視を有さないが、透視はこれらサブ部分間の関係としての形態で存在する。サブ部分は背面の近くで小さくなることはないが、全体としてのサブ部分は、観察者に対する関係に関する限りは適切なサイズとなる。
【０１４４】
全てのこれら異なるサイズのサブ部分の組み合わせは、数学的負荷がより高い３Ｄシステムによって生成された画像と同様の外見でありながら操作が大幅に少ない、透視による３Ｄ画像を生成する
【０１４５】
法令に準拠して、構造的又は方法論的特徴に関してある程度具体的に本発明を説明した。用語「含む（ｃｏｍｐｒｉｓｅ）」並びに「含む（ｃｏｍｐｒｉｓｉｎｇ）」「からなる（ｃｏｍｐｒｉｓｅｄ  ｏｆ）」等の変化形は、全体を通して包括的な意味で使用されており、いずれの追加の特徴を排除するためのものではない。ここで説明した手段は本発明を実施する好ましい形態を含むものであるため、本発明は図示及び説明された具体的特徴に限定されるものではないことを理解されたい。従って本発明は、当業者が適切に解釈する添付の請求項の適切な範囲内の形態又は改変のうちのいずれかとして請求される。
【０１４６】
明細書及び請求項を通して、用語「略（ｓｕｂｓｔａｎｔｉａｌｌｙ）」又は「約（ａｂｏｕｔ）」は、文脈的に必要でない限り、上記用語によって定量化される範囲に値を限定するものとして理解してはならない。
【図１】
2015535978.tif 000003
【図２】
2015535978.tif 000004
【図３】
2015535978.tif 000005
【図４】
2015535978.tif 000006
【図５】
2015535978.tif 000007
【図６】
2015535978.tif 000008
【図７】
2015535978.tif 000009
【図８】
2015535978.tif 000010
【図９】
2015535978.tif 000011
【図１０】
2015535978.tif 000012
【図１１】
2015535978.tif 000013
【図１２】
2015535978.tif 000014
【図１３】
2015535978.tif 000015
【図１４】
2015535978.tif 000016
【図１５】
2015535978.tif 000017
【図１６】
2015535978.tif 000018
【図１７】
2015535978.tif 000019
【図１８】
2015535978.tif 000020
【図１９】
2015535978.tif 000021
【図２０】
2015535978.tif 000022
【図２１】
2015535978.tif 000023
【図２２】
2015535978.tif 000024
【図２３】
2015535978.tif 000025
【図２４】
2015535978.tif 000026
【図２５】
2015535978.tif 000027
【図２６】
2015535978.tif 000028
【図２７】
2015535978.tif 000029
【図２８】
2015535978.tif 000030
【国際調査報告】
2015535978.tif 000031
2015535978.tif 000032
2015535978.tif 000033
2015535978.tif 000034
2015535978.tif 000035