JP2015535978A - 3次元シーンをレンダリングするためのコンピュータグラフィックス方法 - Google Patents

3次元シーンをレンダリングするためのコンピュータグラフィックス方法 Download PDF

Info

Publication number
JP2015535978A
JP2015535978A JP2015532245A JP2015532245A JP2015535978A JP 2015535978 A JP2015535978 A JP 2015535978A JP 2015532245 A JP2015532245 A JP 2015532245A JP 2015532245 A JP2015532245 A JP 2015532245A JP 2015535978 A JP2015535978 A JP 2015535978A
Authority
JP
Japan
Prior art keywords
scene
projection
processor
rendering
computer graphics
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.)
Granted
Application number
JP2015532245A
Other languages
English (en)
Other versions
JP6159807B2 (ja
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 ユークリデオン・プロプリエタリー・リミテッド
Publication of JP2015535978A publication Critical patent/JP2015535978A/ja
Application granted granted Critical
Publication of JP6159807B2 publication Critical patent/JP6159807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/003Reconstruction from projections, e.g. tomography
    • G06T11/006Inverse problem, transformation from projection-space into object-space, e.g. transform methods, back-projection, algebraic methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/028Multiple view windows (top-side-front-sagittal-orthogonal)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

コンピュータ、携帯電話、ゲームコンソール又はその他のデバイス等の電子プロセッサベースのシステムに実装するためのコンピュータグラフィックス方法を提供する。本方法は、シーンのいくつかの部分に関しては透視投影を用い、それ以外の部分に関しては正投影を用いて、システムの電子ディスプレイデバイスのピクセルを起動することにより、3次元シーンをレンダリングすることを伴う。透視投影は、透視投影におけるレンダリングと正投影によるレンダリングとの間に知覚可能な差が発生することになるシーンの部分に対して使用される。所定の条件を満たすシーンのその他の部分をレンダリングするためには、コンピュータ処理コストが大幅に低い正投影を用いる。本方法により得られる、ディスプレイデバイスのピクセルが表示するレンダリングされたシーンは、透視変換を用いてその全体を写実的にレンダリングしたかのように見えるものとなる。しかしながら、レンダリングされたシーンの一部分は正投影を使用してレンダリングされているため、本方法は、透視投影のみを用いるレンダリングよりもコンピュータ処理コストが低い。【選択図】図15

Description

本発明は、3次元シーンをレンダリングするためのコンピュータグラフィックス方法に関する。
従来技術の方法、装置又は文献に対するいずれの参照は、これらが世界中のいずれの国において共通の技術常識の一部を形成した又は形成していることに対する証拠又は承認を構成する物として解釈してはならない。
3Dコンピュータグラフィックス技術は、3次元シーンを描画するデータを、電子表示スクリーン上で表示するための2次元画像に変換するために使用される。請求項全体を含む本出願で使用される用語「シーン(scene)」は、極めて複雑なシーンと、数個若しくは単一のオブジェクトしか含まないシーン、又は実際上最も単純な形態では、1つ又は複数の可視点の単なる集合との両方を含むものとして、広い意味で理解されるものとする。
この20年に亘ってコンピュータグラフィックスが集中的に発展した領域は、決してこれだけではないが、コンピュータ及びビデオゲームの領域である。
コンピュータゲームの開発及びマーケティングは現在、世界的なエンターテインメント産業の極めて大きな割合を占める。例えば2010年には、「Call of Duty: Black Ops」というビデオゲームが発売から5日で6億5千万アメリカドルを超える売上を得た。
更に臨場感のあるゲーム体験をゲームプレイヤーに与えるために、ゲームシーンをレンダリングできる速度及び臨場感を上昇させることを対象として相当な開発が行われている。
ゲームシーンのレンダリング中、そのシーンを表すデータ、例えばシーン内の各オブジェクトに関連する位置データをゲーム機のプロセッサによって処理して、シーンの3D空間から、ゲーム機のディスプレイデバイスで表示するために適した2Dデータへと投影しなければならない。この変換は、該シーンに対するプレイヤーの位置及び視野角を考慮する必要がある。人間はその通常の視覚系において透視短縮を知覚するため、コンピュータグラフィックスレンダリング方法は透視投影を用いる。
透視投影は、行列ベクトル乗算を含む操作と共に通常適用される三角関数計算を必要とするため、コンピュータ処理的に高負荷である。従って、シーンに記録されている例えば位置データ等の詳細の量が増大するに従って、シーンをレンダリングするために行わなければならない冗長な計算の数も増加する。これらの追加の計算により、フレームレートを低下させてゲームをプレイする必要が生じる場合がある。
従って、シーンの臨場感の向上とフレームレートの維持との間のトレードオフが存在することが分かるだろう。この問題に対処するために広く採用されている1つのアプローチは、複数の平坦なポリゴンを使用してシーンをレンダリングすることであった。ポリゴンメッシュを使用して、レンダリングしたいシーンのオブジェクトをモデル化する。続いてポリゴンの角を3Dから2Dに変換し、ユーザに対して表示する。増加するシーンの詳細と高いフレームレート作製との両方を両立させるために、ATI、NVIDIA等のメーカーは、ゲーム機に組み込むための専用グラフィックプロセッサカードを開発及び市販している。
しかしながら、現在実装されているポリゴンシステムのままだと、これに関連する多くの制限が存在する。例えば、ポリゴンは直線の境界を有するため、これを使用して湾曲したオブジェクトを容易に表現できない。更に、専用のグラフィックプロセッサを使用してさえ、人間の眼はポリゴンの直線的な辺を用いて湾曲したオブジェクトが近似されていることに対して依然として敏感である。従ってこのようなポリゴンをベースとするシステムは、実装するにはコンピュータ処理的に高負荷であり、また識別力のあるゲームプレイヤーにとって不満足なものである。
上述のような従来技術の問題を克服する、又は少なくともこれまでに知られている方法の有用な代替案となる、3次元シーンを表示するためのコンピュータグラフィックス方法を提供できれば有利である。
本発明の第1の態様によると、電子ディスプレイデバイスを制御するために配設された少なくとも1つのプロセッサを有する電子プロセッサベースのシステムに実装される、コンピュータグラフィックス方法が提供され、上記方法は、以下のようなプロセッサ操作ステップ:
データ構造から3次元シーンを定義するデータを抽出するステップ;
所定の条件を満たすシーンの一部分に対応する抽出データを、正投影によって電子ディスプレイデバイス上にレンダリングするステップ;
シーンの他の部分に対応する抽出データを、透視投影に従って電子ディスプレイデバイス上にレンダリングするステップ
を含み、上記電子ディスプレイデバイスに表示されるレンダリングされたシーンは、透視投影によって全体がレンダリングされたかのように見え、これによって、シーンのレンダリングのために電子プロセッサが実施する計算の総数が、透視投影のみを用いるレンダリングに対して減少する。
本発明の第1の態様によると、電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、上記方法は、
電子ディスプレイが表示することになる3次元(3D)シーンのためのデータを含有するデータ構造を処理するステップ;
正投影によって、所定の条件を満たすシーンの一部分に対応する抽出データをレンダリングするステップ;
あるいは、透視投影を用いてシーンをレンダリングするステップ
を含み、これによって、シーンをレンダリングするために電子プロセッサが実行する計算の数が減少する。
好ましい実施形態では、本方法は、シーンの一部分が、上記部分の寸法、透視投影の焦点距離及び上記ディスプレイの解像度を考慮した所定の条件を満たすかどうかを試験するステップを含む。
本方法は、好ましくは、
所定の条件を満たすシーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成するステップ;
上記2D形成パターンに基づいて、上記シーンのサブ部分の投影を決定するステップ
を含む。
好ましい実施形態では、本方法は、上記2D形成パターンを再帰的に更新するステップ、及び更新された形成パターンを参照して下位のサブ部分の投影を決定するステップを含む。
2D形成パターンを再帰的に更新する上記ステップは、好ましくは、形成パターンの頂点の座標を表す値をビットシフトするステップを含む。
あるいは、2D形成パターンを再帰的に更新する上記ステップは、形成パターンの頂点の座標を表す値に、積和演算(multiply−and−add:MAD)又は融合型積和演算(fused multiply−and−add:FMAD)操作を適用するステップを含んでよい。例えばこのステップは、0.5を積算することによって、形成パターンの頂点の座標を表す値を半減させることを含んでよい。
2D形成パターンを再帰的に更新する上記ステップは、1つ前の再帰の反復の形成パターンに関するバウンディングボックスの最小値からオフセットを計算するステップを含んでよい。
好ましい実施形態では、データ構造はオクトリーからなり、このデータ構造を処理するステップは、このオクトリーを横断して、そこから上記シーンを表すデータを抽出するステップを含む。
データ構造がオクトリーからなる場合、上記部分は、このオクトリーに関連する親及び子オクタントに対応する。
本方法は、好ましくは、所定の視点位置に関して前から後への順序で、オクトリーのノードを処理するためのシーケンスを決定するステップを伴う。
本方法は、更に、あるオクタントの境界が視錐台と交差するかどうかを試験するステップを含んでよい。
本方法は、好ましくは、上記ディスプレイに対する書き込みの前にマスク試験を実施するステップを含む。
本方法は、また、上記ディスプレイに対する書き込みの前にオクリュージョン試験を実施するステップを含んでもよい。
本発明の更なる態様によると、3次元(3D)シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムが提供され、上記プロセッサは、
データ構造を処理して、上記シーンを定義するデータを取得し;
正投影によって、所定の条件を満たすシーンの一部分をレンダリングし;
あるいは、透視投影を用いてシーンをディスプレイデバイス上にレンダリングする
よう配設され、これにより、正投影を使用することで、シーンをレンダリングするために電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する。
好ましくは、このコンピュータグラフィックスシステムのプロセッサは、更に、
所定の条件を満たすシーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成し;
上記2D形成パターンに基づいて、上記シーンのサブ部分の投影を決定する
よう配設される。
好ましい実施形態では、このコンピュータグラフィックスシステムのプロセッサは、更に、シーンの一部分が、上記部分の寸法、透視投影の焦点距離及び上記ディスプレイの解像度を考慮した所定の条件を満たすかどうかを試験するよう配設される。
好ましくは、このコンピュータグラフィックスシステムのプロセッサは、更に、
所定の条件を満たすシーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成し;
3Dから2Dへの投影のためにリソースを要することなく、上記2D形成パターンに基づいて、上記シーンのサブ部分の投影を決定する
よう配設される。
本発明の更なる態様によると、上述の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品が提供される。
本発明の更なる態様によると、正投影によってシーンの一部分をレンダリングするための電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、この方法は、以下のステップ:
上記部分に関するバウンディングボックスに関連する3D点を3Dから2Dに投影することによって2D形成パターンを生成するステップ;
上記2D形成パターンに基づいて、上記シーンのサブ部分の投影を決定するステップ
を含む。
本発明の更なる態様によると、上述の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品が提供される。
本発明の別の態様によると、3次元(3D)シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムが提供され、上記プロセッサは、
データ構造を処理して、上記シーンを定義するデータを取得し;
上記シーンの一部分に関するバウンディングボックスに関連する3D点を3Dから2Dに投影することによって2D形成パターンを生成し;
上記2D形成パターンに基づいて、上記シーンのサブ部分の投影を生成する
よう配設される。
本発明の更なる態様によると、画像を、その画像が第1の投影によって生成されているかのように見えるように生成するための、コンピュータグラフィックス方法が提供され、上記方法は、電子ディスプレイデバイスのピクセルを制御するよう配設された少なくとも1つのプロセッサを含むコンピュータシステムによって実施され、また上記方法は、
上記第1の投影によって上記ディスプレイ上に上記画像の一部分を生成するステップ;
第2の投影が第1の投影を近似している間に、上記第2の投影によって上記ディスプレイ上に上記画像の他の部分を生成するステップ
を含み、この第2の投影は、第1の投影よりもコンピュータ処理的に高負荷でない。
本発明の第1の態様によると、電子プロセッサベースのシステムが実装することになるコンピュータグラフィックス方法が提供され、上記方法は、
電子ディスプレイが表示することになる3次元(3D)シーンのためのデータを含有するデータ構造を処理するステップ;
正投影によって、所定の条件を満たす上記シーンの一部分をレンダリングするステップ;
あるいは、透視投影を用いてシーンをレンダリングするステップ
を含み、これによって、シーンをレンダリングするために電子プロセッサが実行する計算の数が減少する。
本発明の好ましい特徴、実施形態及び変形例は、以下の「発明を実施するための形態」から認識でき、この「発明を実施するための形態」は、当業者にとって本発明を実施するために十分な情報を提供する。「発明を実施するための形態」は、上述の「発明の概要」の範囲をいかなる様式でも制限するものと見做してはならない。「発明を実施するための形態」は以下の多数の図面を参照する。
図1は、本発明のある実施形態を実装するためのコンピュータシステムを示す。 図2は、オブジェクトを透視図で示す。 図3は、単純なシーンを含むワイヤフレームの立方体を示す。 図4は、上記ワイヤフレーム立方体の透視投影を示す。 図5は、上記ワイヤフレーム立方体の透視投影の平面図である。 図6は、ピクセルの長方形のアレイを備える表示スクリーンを示す。 図7は、立方体内のオブジェクトを透視図で示す。 図8は、図6の透視投影を、図7のピクセルの長方形のアレイ上に重ねて示す。 図9は、図7のスクリーンによる立方体の透視投影のレンダリングを示す。 図10は、ピクセル表示スクリーンに対する立方体の正(即ち平行)投影と透視投影とを比較した図である。 図11は、図10の立方体の透視投影を上記ピクセル表示スクリーン上に重ねて示す。 図12は、図10の立方体の正投影を上記ピクセル表示スクリーン上に重ねて示す。 図13は、上記ピクセル表示スクリーンによる、図10の立方体の透視投影のレンダリングを示す。 図14は、上記ピクセル表示スクリーンによる、図10の立方体の正投影のレンダリングを示す。 図15は、ある例示的なシーンを定義するオクトリー立方体構造の、高次オクトリー立方体を示す。 図16は、子オクタントの低次生成を示す、図15のオクトリー立方体構造のスライスを示す。 図17は、本発明のある実施形態によるレンダリングのための、単純な3次元(3D)シーンを示す。 図18は、図17のシーンに対応する、細分化されたオクトリー立方体を示す。 図19は、図18のオクトリー立方体に対応するオクトリーデータ構造のノードの図である。 図20は、図18のオクトリー立方体の最高次の立方体の、3Dから2Dへの正投影を示す。 図21は、図18の立方体の正投影を示す。 図22は、3Dから3Dへの投影にリソースを割くことなく、2Dから2Dへの操作を用いて、オクタントの子立方体の投影を高次立方体の投影を定義する頂点から得ることができる方法を示すために使用される図である。 図23は、図17のシーンのレンダリングを示す。 図24は、正投影モードにおける立方体の2D投影の頂点を計算するための代替方法を示す。 図25は、表示スクリーンのオリジンからのオフセットとして立方体の2D投影の頂点を計算できる方法を示す。 図26は、本発明の好ましい実施形態による方法のフローチャートである。 図27は、本発明の好ましい実施形態による方法のフローチャートである。 図28は、本発明の好ましい実施形態による方法のフローチャートである。
図1を参照すると、後に説明する本発明のある実施形態による方法を実施するための例示的なコンピュータシステム1のブロック図が示されている。
このコンピュータシステム1は、上記方法を実施するための例示的な電子プロセッサベースのシステムを含むことが理解できるだろう。しかしながらこの方法は、他の電子プロセッサベースのシステムを用いても容易に実行できる。このようなシステムとしては、ゲーム用コンソール、タブレット、ラップトップ及びネットブックコンピュータデバイス、スマートフォン並びに医療用撮像装置が挙げられるが、これらに限定されない。
コンピュータシステム1は、少なくとも1つのオンボードプロセッサ5に対する給電及びインタフェース接続のための回路構成を含むメインボード3を含む。この少なくとも1つのオンボードプロセッサは、2つ以上の別個のプロセッサ、又は複数の処理コアを有する複数のプロセッサを備えてよい。
コンピュータゲームをプレイするために使用されるパーソナルコンピュータにおいて現在一般的なマイクロプロセッサの非限定的な例は、Intel社製のi5又はi7プロセッサシリーズのうちの1つである。
メインボード3は、マイクロプロセッサ5と補助メモリ7との間のインタフェースとして機能する。補助メモリ7は、1つ又は複数の光学ドライブ、磁気ドライブ又はソリッドステートドライブを備えてよい。補助メモリ9は、オペレーティングシステム9のための命令を記憶する。メインボード3はまた、ランダムアクセスメモリ11及び読み出し専用メモリ13と通信する。ROM13は典型的には、基本入出力システム(Basic Input Output System:BIOS)のための命令を記憶しており、スタートアップ時にマイクロプロセッサ5はBIOSにアクセスし、BIOSはオペレーティングシステム9のローディングのためにマイクロプロセッサ5を準備する。
メインボード3はまた、グラフィックプロセッサユニット15ともインタフェース接続している。いくつかのシステムでは、グラフィックプロセッサユニット15はメインボード3に一体化されていることが理解できるだろう。
メインボード3は典型的には、コンピュータシステム1をインターネット等のコンピュータネットワークとデータ通信できるようにする通信アダプタ、例えばLANアダプタ又はモデムを含むことになる。
コンピュータシステム1のユーザは、キーボード19、マウス21、ディスプレイ17を用いてコンピュータシステム1に干渉する。
システム1のユーザはオペレーティングシステム9を操作して、コンピュータグラフィックス関連ソフトウェア製品29をロードしてよい。このコンピュータグラフィックス関連ソフトウェア製品29は、光ディスク27等のコンピュータ可読媒体が含む具体的な命令として提供される。
コンピュータグラフィックス関連ソフトウェア製品29は、例えばゲームの様々なシーンを定義するデータを記憶するデータ構造を含む。
このソフトウェア製品29はまた、キーボード19及びマウス21等のオペレータ制御を介してユーザから受信した入力に応答してシーンのデータを操作するための、マイクロプロセッサ5及び場合によってはGPU15のための命令も含む。
シーンデータを記憶するために使用できるコンピュータデータ構造の種類は数多く存在することが分かるだろう。本発明の好ましい実施形態ではオクトリーデータ構造を使用するが、例えばバイナリ空間分割ツリー(binary−space partitionning tree:BSPツリー)といったその他の種類のデータ構造も、オクトリーデータ構造が好ましいとはいえ、使用できる。
シーンの位置データを記憶するためにどのような種類のデータ構造を使用しても、ディスプレイデバイス17への表示のためにデータを3Dから2Dに変換する必要がある。
3Dグラフィックスと2Dグラフィックスとの間の主要な違いの1つは、透視画法の概念及び視点からの距離によるサイズ低下である。図2では、オブジェクトは視点からの距離に従って小さくなっている。この距離の計算により、3Dグラフィックスに関連する多くの3Dから2Dへの計算に、有意に大きい仕事量が追加される。
ここで図3を参照すると、コンピュータシステム1のディスプレイ17上でのレンダリングのためのワイヤフレーム立方体31が図示されている。ディスプレイはいずれの好適な種類のものであってよい。例えばブラウン管(Cathode Ray Tube:CRT)、LCD(liquid crystal display:液晶ディスプレイ)又はプラズマディスプレイが、ディスプレイ17によって使用できるディスプレイ技術の非限定的な例である。立方体31の頂点及び辺のデータは、上述のようなコンピュータシステムの好適なデータ構造に記憶される。
図4は、表示スクリーン35上での立方体31の2D一点投影を横から見たものである。
立方体の3D頂点及び辺モデルを、スクリーン35を含む2D観察面上に変換することを表すために、立方体31の頂点からカメラ点33への多数の光線がスクリーン35を通過する様子を示す。この変換、又はこの変換を「投影(projection)」と呼ぶ場合もあり、標準的な3Dから2Dへの透視投影を用いて実施されることは、コンピュータグラフィックスの分野において公知であり、例えば「Computer Graphics Princi;les and Practice」(Foley、van Dam、Feiner、Hughes著、第2版、1990年発行、Addison−Wesley(ISBN0−201−12110−7))において説明されており、上記文献の開示は、その全体が参照により本明細書に援用される。
既に注記したように、透視変換は三角関数計算を伴うため、コンピュータ処理的に高負荷である。
図5は、カメラ点33から見た立方体31の図像37を示す。これは事実上、立方体31の、観察平面35上への一点2D透視投影である。立方体が視覚的に3Dに見えるようにするために、立方体の背面が前面よりも有意に小さくなるように示している。
立方体31の投影37の背面の投影と前面の投影とは距離Tだけ離間していることに留意されたい。
図7は、立方体内に存在するオブジェクトを示す。これらのオブジェクトは、立方体の前方及び後方に位置決めされているため、サイズが異なる。
図1のシステム1等のコンピュータグラフィックスシステムの文脈において、スクリーン35は典型的には、図6に示すようなピクセルの格子39を含む、図1のディスプレイ17のようなディスプレイモニタ又はその他のディスプレイデバイスを備える。
図8は、ピクセルの格子39上に重ねられた、立方体31の投影37の拡大図である。格子を構成するピクセルは、図示したように概念上の幅及び高さpを有する。
格子39のピクセルを用いて投影37を表示するために、投影37の線が重なるピクセルが、対照的な色(即ちこの例では黒)に設定される。結果として得られるピクセル画像を図9に示す。
立方体31の投影37の背面と前面との距離Tは、3つの隣接するピクセルの幅より大きかったため、図9の対応するピクセル画像は、これら背面と前面とを互いに区別できることに留意されたい。
図10は、カメラ点33から見るための表示スクリーン35上への、より小さい3D立方体41の投影(平面図で示す)を示していることを除いて、図4の図とある程度類似した図である。使用した焦点距離は図4のものより有意に長いため、空間43によって示される均等目盛には不連続が存在する。図10では、平行な光線45a、45bは、表示スクリーン35上への立方体41の正投影を表し、集束する光線のペア47a、47bは透視投影を表す。
立方体41のサイズがより小さいこと、及び透視投影に使用した焦点距離がより長いことにより、正投影の光線45a、45b及び透視投影に関連する光線の各ペア47a、47bは、表示スクリーン35においてピクセル幅p未満の距離だけ離れていることに留意されたい。
図11は、表示スクリーン35のピクセル格子39上に重ねられた、カメラ点33に関する立方体41の透視投影図である。
同様に図12は、表示スクリーン35のピクセル格子39上に重ねられた、カメラ点33に関する立方体41の正投影図である。
図11の透視投影は、図12の正投影と同一のピクセル上に重なっていることに留意されたい。その結果、表示スクリーン35のピクセル格子39上に生成され、コンピュータシステムのユーザ、例えばゲームプレイヤーが見る実際の画像は、図13、14に示す各投影と同一となる。この投影は図9内に示したものよりも大幅に小さい。投影のサイズが小さいため、背面と前面との差は観察できない程度であり、従ってこの図では立方体は正方形に見える。
この立方体内にオブジェクトが存在する場合、オブジェクトが立方体の前方にあるか背方にあるかに応じて小さく又は大きく見えることはない。
技術的には、前面と背面との間には常に差が存在することになるが、コンピュータのモニタがピクセルの格子であるため、このような差のサイズが1ピクセル未満である場合は、上記差は小さすぎて存在できない。3D計算は通常は透視を使用するが、前面と背面との間のサイズ差が存在しないため、透視を考慮しない異なる計算が使用される。
以上の論証は一点透視を用いて行ったが、本発明者らは、これに対応する結果が二点及び三点透視にも同様に当てはまることを発見した。
以上の論証から、表示されることになる3Dオブジェクトのサイズ、並びに観察平面の背後の距離及び使用する焦点距離等のパラメータに応じて、正投影を用いて生成したオブジェクトの図像と透視投影を用いて生成したオブジェクトの図像との間には、スクリーン上で観察可能な差が存在しない場合があり得る。更に、透視投影は正投影に比べて計算コストが極めて高く、即ち透視投影に関しての方が計算の総数が多い。
更に、ワイヤフレーム立方体31、41をバウンディングボックスとして考えることができる。その結果、ボックス41の場合のように正投影を用いてバウンディングボックスをレンダリングできる場合、このバウンディングボックス内にあるシーンのいずれのオブジェクトもまた、正投影を用いてレンダリングできる。
従って本発明者らは、透視投影におけるレンダリングと正投影によるレンダリングとの間に知覚可能な差が発生することになるオブジェクトに関しては透視投影を用い、それ以外のオブジェクトに関しては正投影を用いて、電子ディスプレイデバイスのピクセルを起動することにより、シーンをレンダリングでき、これにより、透視変換を用いて全体的にリアルにレンダリングされているかのように見えるシーンを生成できることを発見した。
更に、簡潔に説明すると、本発明の方法の好ましい実施形態では、各オクタントを3Dから3D空間に別個に投影する必要なしに、総体としての親オクタント立方体の2D投影に基づき、オクトリーを用いてモデル化したシーンのオクタントの2D投影を生成できる。
図15は、総体としてのオクトリー立方体43内に重ねられた、キノコ型の3つのオブジェクトを含むシーンを示す。オクトリー立方体は、図1に示したコンピュータシステムのメモリ内にデータ構造として記憶される。分かりやすくするために、図15では、実線で示されているオクトリーの総体としての親立方体43、及び破線で示されている初めの8個の子オクタント45a…45hのみを示す。しかしながら、コンピュータグラフィックスの分野で公知であるように、オクトリーの子立方体は、シーン内のオブジェクトの湾曲した部分の周りを、事前に決定された解像度限界まで分割し続ける。これは図16に示されており、図16は、図15のオクトリーを通るスライスを含み、ここでは更なる3つのレベルのオクタント49、51、53が確認できる。
これより、本発明の好ましい実施形態による方法について、図17〜23を参照して説明する。
図17は、3つの3D立方体55、57、59の形態の3つの極めて単純なオブジェクトを含むシーンを示す。ここでの説明を目的として、図17に示した視野角63に沿った図17のシーンの2D表現を表示するために、図1のコンピュータシステム1を動作させることが望ましい。
図18は、図15のシーンをモデル化するために複数のオクタントに分割された、総体としてのオクトリー立方体61を示す。ここでの説明を目的として、オクトリー立方体61の全体の寸法は、図10の立方体41に関連して説明したように、透視投影ではなく正投影を適用した場合に、識別できる差が知覚されないような寸法である。
総体としてのオクトリー立方体61は、0〜7の番号が付けられた8つの第1レベルの子立方体に分割されている。立方体5は更に、8つの第2レベルの子立方体に分割されている。第1レベルの子立方体3、4と、第1のレベルの子立方体5の第2レベルの子立方体3は、図17に示したシーンの立方体55、57、59をモデル化したものである。
オクトリー立方体61は、図1のコンピュータシステムのメモリ内に、図19に示すオクトリーを含むデータ構造で記憶される。
図17のシーンを表示するために、オクトリーのノードを、視野角63に対して前から後への順序で読み取る、即ち通過する。
オクリュージョンカリングに関連する主要な操作は、バウンディングボックスの寸法を得ることである。オクトリーをベースとするシステムでは、これは通常、総体としての立方体の8つの値を収集するステップ、これらの値を3D実世界空間から3Dスクリーン空間に変換するステップ、そしてこれらの値をソートして、水平及び垂直方向の最小値及び最大値を決定するステップを必要とする。これは通常全てのボックスに対して計算されることになるため、透視をベースとするシステムでは相当な仕事量となる。既に述べたように、本発明の好ましい実施形態による、ここで説明している方法は、実世界/オブジェクトをより小さい複数の正投影領域に分解するというコンセプトを利用する。オクトリーデータを扱う場合、正投影領域のバウンディングボックスは、正確にその親の1/4のサイズであるため、これらの領域を用いてバウンディングボックスの寸法を得る代わりに、水平及び垂直な辺を2等分することができる。
コンピュータグラフィックスの分野において公知であるように、オクトリーを見ることができる8個の異なる視野セクタが存在し、また、どのセクタに視野角が対応するかに応じて、オクトリーを前から後ろに観察するために通過する順序の複数のテーブルが考えられる。図16に示した状況では、視点はセクタ+x、+y、+zに位置し、オクトリーを前から後ろに観察するために通過する順序は「7、6、5、3、4、2、1、0」である。
ここで図20を参照すると、8個の3D頂点座標P(x0,y0,z0)、…、P(x7,y7,z7)によって定義される総体としてのオクトリー立方体61は、視野角63において、所望の観察平面65上に正投影されており、これによって、8個の2D頂点座標P(x0,y0)、…、P(x7,y7)を含む立方体の2D投影67が生成される。図21を参照すると、この2D投影の頂点を定義する8個の2D頂点座標P(x0,y0)、…、P(x7,y7)は、オクトリーの投影の形状を定義するため、「形状パターン」と呼ぶことができる。更に、この投影は正投影であるため、上記頂点座標は、縮小すると子オクタントの投影の形状も定義し、透視投影を使用した場合にはこのようにはならない。
図21では、頂点は辺によって相互接続された状態で図示されているが、これらの辺は図17のシーンの最終的なレンダリングには現れない。形状パターン頂点P(x0,y0)、…、P(x7,y7)は、オクトリーの観察順序と同一の順序で、アレイ内に記憶される。即ちFPArray=[P,P,P,P,P,P,P,P]である。
図19のオクトリーは、前から後への順序で読み取られ、これは図18に示す視点に関しては、7、6、5、3、4、2、1、0の順序である。
ノード7は空であるため、動作は発生しない。
ノード6は空であるため、動作は発生しない。
ノード5は子ノードを指しているため、手順は次のレベルにドリルダウンする。
次のレベルでは:
ノード7は空であるため、動作は発生しない。
ノード6は空であるため、動作は発生しない。
ノード5は空であるため、動作は発生しない。
ノード3は葉ノードであるため、子ノード5の子ノード3に対して葉ノードサブルーチンが呼び出される。葉ノードサブルーチンについては後に簡潔に説明する。
ノード4は空であるため、動作は発生しない。
ノード2は空であるため、動作は発生しない。
ノード1は空であるため、動作は発生しない。
ノード0は空であるため、動作は発生しない。手順は1レベル上にジャンプする。
ノード3は葉ノードであるため、子ノード3に対して葉ノードサブルーチンが呼び出される。
ノード4は葉ノードであるため、子ノード4に対して葉ノードサブルーチンが呼び出される。
ノード2は空であるため、動作は発生しない。
ノード1は空であるため、動作は発生しない。
ノード0は空であるため、動作は発生しない。
葉ノードサブルーチンは、形状パターンアレイ、バウンディングボックスのMinPoint及びMaxPoint、並びに葉ノード情報をパスする。
バウンディングボックスの左上角(この場合はオクトリー立方体61の投影67の頂点(x0,y0)に対応する)は、8個の頂点(x0,y0)、…、(x7,y7)の起点として使用される。
葉ノードサブルーチンは次に8個の頂点(x0,y0)、…、(x7,y7)に対して作用してこれらを2等分し、図19に示すような8個の点(x0,y0)2、…、(x7,y7)2を生成する。この8個の頂点(x0,y0)2、…、(x7,y7)2は、図22に2’として示す、図18のオクトリー立方体のオクタント2の2D投影を定義する。この投影は、総体としてのオクタント立方体の2D投影の頂点を定義する点を分割することにより得られることに留意されたい。オクタント2の3D頂点を観察平面に投影する必要はなかった。その結果、これら8個の点(x0,y0)2、…、(x7,y7)2は、バウンディングボックス69の最小値からのオフセットとなる。ビットシフト操作を用いて、バウンディングボックス69の最小値に対して8個の頂点(x0,y0)、…、(x7,y7)の値を2等分する。新たな点(x0,y0)2、…、(x7,y7)2をそれぞれ再び2等分して、1つ下のレベルの各オクタントに関する更なる8個の補助点、例えば(x0,y0)3、…、(x7,y7)3を生成する。例えば図22の子オクタント立方体の投影5−3’によって示すようなものである。
子オクタントが葉ノードであることをオクトリーが示す場合、図23に示すようにこれら子オクタントに濃淡を付けて、初めに図17に示したシーンのレンダリングを生成する。オブジェクト、例えば図23の立方体の寸法が十分に小さければ、図1〜13に関して既に記載したように、正投影を用いて、又は透視投影変換を用いてレンダリングしたこれらオブジェクトの間に認識可能な差は存在しなくなる。
この形状パターン法が、終端する分岐を有するオクトリーデータに結び付けられていなければ、本方法は浮動点の中実立方体をレンダリングすることになる。本方法をオクトリーデータ及び分岐が空である場合の上記パターンの展開に結び付けることによって、本方法は、比喩を用いると、形状パターンがプラスターであるかのように形状パターンを切り分ける。最終的なオブジェクトは全て、3Dから2Dへのアルゴリズムと共にボクセルを使用するという従来の技術を用いて作製されたオブジェクトと同一の特性及び形状を有するが、処理パワーに関して、形状パターン法は僅かな時間及び操作しか使用しない。
2D正投影点(x0,y0)、…、(x7,y7)によって定義される親立方体の投影の形状は、最高次の親オクタントのみならず、下位レベルの子オクタントの正投影のバランス、即ち形状を定義するため、「形状パターン」と呼ぶことができる。実装可能な形状パターンには数多くの種類がある。
例えば、頂点は通常、8個の「x」値と8個の「y」値として、例えば上述のような(x0,y0)、…、(x7,y7)として記憶される。しかしながら、4個の「x」値と4個の「y」値を収集し、操作が行われている対象の立方体の3次元中点を2次元投影することによって、又は上述のバウンディングボックス(例えば図21のボックス69)の2D中点を使用することによって生成された中点からのオフセットにこれらの収集した値を変換することによって、残りの値を生成することもできる。これらのオフセットを収集すると、これらの値の符号を反転させることによっていくつかの点を生成できる。上述の角の値のうちの半分を適切に収集することにより、上述の方法を用いて残りの値を生成できる。符号の反転によって点を生成するこの方法は、図24に示すように正投影された立方体又は角柱を用いる場合のみ正確である。
形状パターンは通常、バウンディングボックス19の4個の角のうちの1つに関するオフセットとなる。あるいは形状パターンは、バウンディングボックス内の又はバウンディングボックスの境界の外側のいずれの点からのオフセットとなり得、また形状パターンはオフセットを全く有さない場合もあり得、これらの値が、これらが現在スクリーンのピクセルとして保持している元のままの値となる。しかしながら、バウンディングボックスの4個の角のうちの1つを使用することは、理解の助けとなると考えられ、従って左上角(図21において「Min」として示す)は、図25に示すように、スクリーンの左上角の位置(0,0)を処理する操作と符合する。
3Dグラフィックスのレンダリングにおいてプロセッサの負荷が最も高い部分の1つは、3D実世界から2Dスクリーンへの点の変換である。このプロセスは通常、多数の数学的操作からなる。形状パターンを2等分して、これら2等分値を、親形状パターン点の形状パターン点に加算するプロセスにより、通常の3Dから2Dへの変換と同一の出力が得られる。
好ましい実施形態では、形状パターンの計算は、乗算、除算又は複数の複雑な操作を使用しない。代わりにこの計算は、全体のシステムをビットシフト及び加算で置換する。透視をベースとした3D、グラフィックスの通常の条件下では、この方法は機能しないが、レンダリングされるオブジェクトが上述のように正投影のサブ部分に分割される場合、このシステムはこの普通でないパターンを利用できる。
ここで図26〜28を参照すると、レンダリングのためにシーンをモデル化したデータを含有するオクトリーデータ構造を処理するための、本発明の好ましい実施形態による方法が、フローチャートの形式で記載されている。この方法は、例えば図1の光ディスク27上の具体的なコンピュータ可読命令としてコード化でき、これにより、この方法は、コンピュータシステム1によって処理するためのコンピュータソフトウェア製品29を構成する。
図26〜28のフローチャートの各ボックスにおいて実施される様々な処理について記載する。
ボックス83では、マスクバッファをクリアしてゼロとする。マスクバッファは、ピクセルがその位置に書き込まれているかどうかを示す一連のフラグ(ディスプレイバッファ内の各ピクセルに対して1つ)である。アルゴリズムが提供する前から後への順序により、各ピクセルは1回しか書き込まれる必要がない。ノードの2Dバウンディングボックスに重なる全てのピクセルが既に書き込まれている場合、マスクバッファを用いて、ノード及びその全ての子を無視する。
ボックス84では、各ノードは0〜8個の子を有してよい。あるノード上に存在する全ての子が処理されたら、ノードはそのスタックから移動され、もはや考慮されない。
ボックス85では、再帰型の実装に関しては、単に関数から戻すことによって、最も上のノードをスタックから移動させる。反復型の実装ではスタックのサイズを1だけ減らす。
ボックス86では、スタックにこれ以上ノードが残っていない場合、全てのモデルが処理されている。
ボックス87では、複数の子を前から後への順序で処理し、ノードを破棄できる時点を決定するために、これら複数の子それぞれを処理済みとしてマーキングする(ボックス84参照)。
ボックス88では、親ノード又はその親のうちのいずれかが正投影モードに関する基準を満たす場合に、この親ノードを正投影モードにあるものとしてマーキングする(ボックス101、102参照)。
ボックス89では、数学的不正確性を回避するために、近接した観察平面と交差するノードを細分化しなければならない。
ボックス90では、現在のノードをスタック上に押し上げて、(存在する場合は)その子が次に処理されることを保証する。
ボックス91では、正投影モードにおいて、正投影バッファデータに保存された2Dバウンディングボックスのサイズを用い、これを、正投影データが生成されてからの祖先の全てのレベルに関して2で除算することによって、2Dバウンディングボックスを計算する。即ち、正投影モード基準を満たす(ボックス101参照)ノードの子は、正投影データバッファに記憶されているものの丁度半分のバウンディングボックスサイズを有することになる。孫は丁度1/4のバウンディングボックスを有することになり、以下同様に続く。実際には、正投影バッファデータが生成された時点のスタックのサイズを正投影バッファデータに記憶でき、スタックのサイズからこれを減じて、2で除算した回数を与えることができる。この値を用いて、バイナリシフト操作によって分割が達成され、これは一般的な分割より遥かに迅速である。計算したバウンディングボックスのサイズを用いて、子の数に基づいてボックスのオフセット値を選択し、これを、サイズに関してと全く同様に、祖先の全てのレベルに関して2で除算し、これを、正投影バッファデータに記憶されたバウンディングボックス位置に加算することにより、オフセットを計算する。
ボックス92では、透視投影モードにおいて、現在のノードの3Dバウンディングボックスの8個の角点においてスクリーン空間への完全な透視変換を実施するための標準的な手段を用いて、2Dバウンディングボックスを計算する。一般にこれは、4Dベクトル(x,y,z,w)を得る3Dベクトル乗算による4×4マトリクスであり、そのw成分は、最終的な透視変換を実施するための除数として使用される。本発明の好ましい実施形態によるシステムは、このステップを可能な限り回避するように設計されることが分かるだろう。
ボックス93では、2Dバウンディングボックスを計算した後で、これがスクリーンのいずれの辺と重なるかどうかを試験し、重なる場合はこれに応じて、ディスプレイバッファと重なるボックスの一部分のみを映し出すために座標を調整する。バウンディングボックスが完全にディスプレイバッファの外側にある場合、ノードはもはや考慮されず、制御はノードの残りの子を処理するためのボックス84に進む。
ボックス94では、前から後への描画順序により、いずれのノードのバウンディングボックス内の全てのピクセルを書き込んだ後、そのノードを閉塞し、そのノードはもはや考慮されない。この試験は、バウンディングボックスの領域に対応するマスクバッファ内の各フラグについて、全てのピクセルが書き込み済みとしてマーキングされているかどうかを試験することによって達成され、その後このノードを破棄でき、制御はボックス84へと進む。
ボックス95では、処理のこの時点においてノードが子を有さない場合、そのノードを描画する(ボックス97参照)。
ボックス96では、バウンディングボックスのサイズが閾値(1ピクセル等)以下である場合にそのノードを描画する。これは主として、1ピクセルのサイズ未満の更なる細分化が不要であるためである。
ボックス97では、ノードを描画するために、クリップされた2Dバウンディングボックスに対応する各ピクセルを試験し、ピクセルが既に書き込まれている場合、カラーバッファ内の対応するピクセルをノードの色に設定し、マスクバッファを設定する。更にこの時点で他のバッファに書き込んでよく、これにより深度値及び/又は正常値等の情報を記録する。
ボックス98では、現在のノードをスタックに押し上げて、その子が次に処理されることを保証する。
ボックス99では、あるノードが正投影モードの基準を満たすと、このノードの全ての子も暗黙のうちに正投影となり、従ってこの時点でフラグ及び正投影バッファが複製され、上記子にまで正投影モードを伝達する。
ボックス100では、ノードのいずれの祖先が正投影モードの基準を満たす場合、正投影モードフラグをこのノードに設定する。
ボックス101では正投影モードの基準を試験する。図3〜15に関連して上述したように、品質の観点から、この基準は、ボックスをスクリーン空間に透視により投影する場合に(透視効果により)箱の背面が箱の前面より小さく見える量が1ピクセル未満であり、画素変換時に知覚できるものではないことである。これを試験する方法は多数存在するが、透視効果は、ベクトルを(ボックス92に関して上述したように)wで除算することによって適用されるため、ボックス前面において変換された点とボックス背面において変換された点との間のw値の比を試験するのが、便利かつ簡潔な試験である。この比の実際の閾値は、焦点距離やディスプレイバッファの寸法に応じて変化するため、これらのパラメータのうちのいずれかが変化する度に上記閾値を再計算しなければならない。
従って、正投影モードの監視及び実装に対して、以下の2つの部分が存在する。
第1の部分は、(ディスプレイサイズ又は焦点距離(視野)が変化した場合に常に更新される)最適な閾値の事前計算を伴い、第2の部分はレンダリング中にこの閾値を適用することを伴う。
上述のように、基礎となる論理は単純なものである。本発明者らは、投影された前面及び背面の座標が1.0ピクセル未満(又はその他の同様の許容可能な値)だけ離間する時点を知ることを望んでいる。
この値を即座に計算するための方法は存在し得るが、バイナリ検索が現在使用されている。標準的なバイナリ検索は、nearZとfarZとの間で実施され、点のペアnearPoint=(1,1,1)及びfarPoint(1,1,−1)を変換し、(0,0,midZ)を加算する。midZは単にnearZとfarZとの間の値である。
投影されたX、Yのデルタはがピクセル閾値未満である場合、閾値点が配置される。
バイナリ検索から変換された点(X、Y、Z、W)を用いてfixedWRatio=nearW/farWを計算する。
次に、透視モードレンダリング中に、8個の変換されたボックス点(それぞれに関してX、Y、Z、W)を計算する。
続いてX、Y、WのMin及びMaxを計算することによってバウンディングボックスを決定する(ここではWについて示す)。
続いて現在のW比を、curWRatio=minW/maxWとして計算する。
curWRatio≧fixedWRatioである場合、正投影モードに入る。1/wは透視変換の一部として計算されることが多いため、上記除算を逆数による乗算に置き換えることができ、これは一般的な浮動点最適化である。
本方法は、(これもまたバイナリ検索又は試行錯誤によって計算される)約24のピクセル閾値に関するデルタx,yを比較するという従来の方法とは幾分異なることにも留意されたい。
上述の方法は、スクリーンに対するノードの相対的配向に関わらず、オクトリーノードを可能な限り迅速に正投影モードとすることができる点で優れている。そうでない場合、回転するノードのバウンディングボックスが閾値試験を最高40%(即ちsqrt(2))まで偏向させ得、これによって、更に細分化されるまで正投影モードに入るのが遅れることになる。
本方法はまた、投影の効果は、バウンディングボックスのサイズがより小さくなることであるが、その原因は、x/w y/w、即ちwの相対比が透視を引き起こしてx、y値を縮小することである点で有意義であることが理解されるであろう。従ってwを試験することはより論理的かつより正確である。
上記基準を測定できる他のメトリクスとしては、スクリーン空間の立方体の1辺の長さ、又はスクリーン空間の立方体を取り囲む球体の直径が挙げられる。
ボックス102では、正投影バッファデータは、オクトリーの下流へのノードの深度/レベル(スタックの現在の長さで表される)と、ノードの2Dバウンディングボックスと、上記2Dバウンディングボックスの左上角からのオフセットとしての、8個の変換されたスクリーン空間点とからなる。
要約すると、正投影モードはオクトリーデータ構造のノードに対して、これらを分割し、立方体を含むコンテンツの軌跡を追跡することによって作用する。正投影モードの手順は、3Dから2Dへの変換を回避でき、その代わりに、再帰的な2等分によってより高次のオクタントの投影を表す一連の2D点、即ち「形成パターン」をスケーリングし、子オクタントの投影を表すための対応する一連の点に到達できる。
手順中のボックス88において試験されるように、透視投影と正投影との間に認識可能な差がないオクタントに関してのみ、正投影モードに入るため、レンダリングされたシーンの観察者は、そのシーンを、全体として透視変換を用いてレンダリングされたものであるかのように知覚することになる。正投影モードでレンダリングされた各サブ部分は内部透視を有さないが、透視はこれらサブ部分間の関係としての形態で存在する。サブ部分は背面の近くで小さくなることはないが、全体としてのサブ部分は、観察者に対する関係に関する限りは適切なサイズとなる。
全てのこれら異なるサイズのサブ部分の組み合わせは、数学的負荷がより高い3Dシステムによって生成された画像と同様の外見でありながら操作が大幅に少ない、透視による3D画像を生成する
法令に準拠して、構造的又は方法論的特徴に関してある程度具体的に本発明を説明した。用語「含む(comprise)」並びに「含む(comprising)」「からなる(comprised of)」等の変化形は、全体を通して包括的な意味で使用されており、いずれの追加の特徴を排除するためのものではない。ここで説明した手段は本発明を実施する好ましい形態を含むものであるため、本発明は図示及び説明された具体的特徴に限定されるものではないことを理解されたい。従って本発明は、当業者が適切に解釈する添付の請求項の適切な範囲内の形態又は改変のうちのいずれかとして請求される。
明細書及び請求項を通して、用語「略(substantially)」又は「約(about)」は、文脈的に必要でない限り、上記用語によって定量化される範囲に値を限定するものとして理解してはならない。

Claims (22)

  1. 電子ディスプレイデバイスを制御するために配設された少なくとも1つのプロセッサを有する電子プロセッサベースのシステムに実装される、コンピュータグラフィックス方法であって、
    以下のような前記プロセッサの操作ステップ:
    データ構造から3次元シーンを定義するデータを抽出するステップ;
    所定の条件を満たす前記シーンの一部分に対応する抽出データを、正投影によって前記電子ディスプレイデバイス上にレンダリングするステップ;及び
    前記電子ディスプレイデバイス上の透視投影に従って、前記シーンの他の部分に対応する抽出データをレンダリングするステップ
    を含み、
    前記電子ディスプレイデバイスに表示されるレンダリングされた前記シーンは、透視投影によって全体がレンダリングされたかのように見え、これによって、前記シーンのレンダリングのために前記電子プロセッサが実施する計算の総数が、透視投影のみを用いるレンダリングに対して減少する、前記方法。
  2. 前記シーンの一部分が、前記部分の寸法、透視投影の焦点距離及び前記ディスプレイの解像度を考慮した前記所定の条件を満たすかどうかを試験するステップを含む、請求項1に記載の方法。
  3. 前記所定の条件を満たす前記シーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成するステップ;及び
    前記2D形成パターンに基づいて、前記シーンのサブ部分の投影を決定するステップ
    を含む、請求項1に記載の方法。
  4. 前記2D形成パターンを再帰的に更新するステップ;及び
    更新された前記形成パターンを参照して下位のサブ部分の投影を決定するステップ
    を含む、請求項3に記載の方法。
  5. 前記2D形成パターンを再帰的に更新する前記ステップは、前記形成パターンの頂点の座標を表す値をビットシフトするステップを含む、請求項4に記載の方法。
  6. 前記2D形成パターンを再帰的に更新する前記ステップは、1つ前の再帰の反復の形成パターンに関するバウンディングボックスの最小値からオフセットを計算するステップを含む、請求項5に記載の方法。
  7. 前記データ構造はオクトリーからなり、
    前記データ構造を処理する前記ステップは、前記オクトリーを横断するステップを含む、請求項1〜6のいずれか1項に記載の方法。
  8. 前記部分は、前記オクトリーに関連する親及び子オクタントに対応する、請求項7に記載の方法。
  9. 所定の視点位置に関して前から後への順序で、前記オクトリーのノードを処理するためのシーケンスを決定するステップを含む、請求項7又は8に記載の方法。
  10. あるオクタントの境界が視錐台と交差するかどうかを試験するステップを含む、請求項7〜9のいずれか1項に記載の方法。
  11. 前記ディスプレイに対する書き込みの前にマスク試験を実施するステップを含む、請求項6〜10のいずれか1項に記載の方法。
  12. 前記ディスプレイに対する書き込みの前にオクリュージョン試験を実施するステップを含む、請求項6〜11のいずれか1項に記載の方法。
  13. 3次元(3D)シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムであって、前記プロセッサは、
    前記データ構造を処理して、前記シーンを定義するデータを取得し;
    正投影によって、所定の条件を満たす前記シーンの一部分をレンダリングし;
    あるいは、透視投影を用いて前記シーンをディスプレイデバイス上にレンダリングする
    よう配設され、
    これにより、正投影を使用することで、前記シーンをレンダリングするために前記電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する、前記コンピュータグラフィックスシステム。
  14. 前記コンピュータグラフィックスシステムの前記プロセッサは、更に、
    前記所定の条件を満たす前記シーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成し;
    前記2D形成パターンに基づいて、前記シーンのサブ部分の投影を決定する
    よう配設される、請求項13に記載のシステム。
  15. 前記コンピュータグラフィックスシステムの前記プロセッサは、更に、前記シーンの一部分が、前記部分の寸法、透視投影の焦点距離及び前記ディスプレイの解像度を考慮した前記所定の条件を満たすかどうかを試験するよう配設される、請求項14に記載のシステム。
  16. 好ましくは、前記コンピュータグラフィックスシステムの前記プロセッサは、更に、
    前記所定の条件を満たす前記シーンの一部分に関連する3D点を3Dから2Dに投影して2D形成パターンを生成し;
    3Dから2Dへの投影のためにリソースを要することなく、前記2D形成パターンに基づいて、前記シーンのサブ部分の投影を決定する
    よう配設される、請求項14又は15に記載のシステム。
  17. 請求項1〜12のいずれか1項に記載の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品。
  18. 正投影によってシーンの一部分をレンダリングするための電子プロセッサベースのシステムが実装することになる、コンピュータグラフィックス方法であって、以下のステップ:
    前記部分に関するバウンディングボックスに関連する3D点を3Dから2Dに投影することによって2D形成パターンを生成するステップ;及び
    前記2D形成パターンに基づいて、前記シーンのサブ部分の投影を決定するステップ
    を含む、前記コンピュータグラフィックス方法。
  19. 請求項18に記載の方法を実施するためにプロセッサが実行するための具体的な命令を含むコンピュータ可読媒体を備える、コンピュータグラフィックスソフトウェア製品。
  20. 3次元(3D)シーンのためのデータ構造を記憶する、ディスプレイデバイスを制御するために配設されたメモリデバイスと通信するプロセッサを含む、コンピュータグラフィックスシステムであって、前記プロセッサは、
    前記データ構造を処理して、前記シーンを定義するデータを取得し;
    前記シーンの一部分に関するバウンディングボックスに関連する3D点を3Dから2Dに投影することによって2D形成パターンを生成し;
    前記2D形成パターンに基づいて、前記シーンのサブ部分の投影を生成する
    よう配設される、前記コンピュータグラフィックスシステム。
  21. 画像を、前記画像が第1の投影によって生成されているかのように見えるように生成するための、コンピュータグラフィックス方法であって、
    前記方法は、
    電子ディスプレイデバイスのピクセルを制御するよう配設された少なくとも1つのプロセッサを含むコンピュータシステムによって実施され、
    前記方法は、
    前記第1の投影によって前記ディスプレイ上に前記画像の一部分を生成するステップ;及び
    第2の投影が前記第1の投影を近似している間に、前記第2の投影によって前記ディスプレイ上に前記画像の他の部分を生成するステップ
    を含み、
    前記第2の投影は、前記第1の投影よりもコンピュータ処理的に高負荷でない、前記コンピュータグラフィックス方法。
  22. 電子プロセッサベースのシステムが実装することになる、コンピュータグラフィックス方法であって、前記方法は、
    電子ディスプレイが表示することになる3次元(3D)シーンのためのデータを含有するデータ構造を処理するステップ;
    正投影によって、所定の条件を満たす前記シーンの一部分をレンダリングするステップ;
    あるいは、透視投影を用いて前記シーンをレンダリングするステップ
    を含み、
    これによって、前記シーンをレンダリングするために前記電子プロセッサが実行する計算の数が、透視投影のみを用いるレンダリングに対して減少する、前記方法。
JP2015532245A 2012-09-21 2012-09-21 3次元シーンをレンダリングするためのコンピュータグラフィックス方法 Active JP6159807B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/AU2012/001130 WO2014043735A1 (en) 2012-09-21 2012-09-21 A computer graphics method for rendering three dimensional scenes

Publications (2)

Publication Number Publication Date
JP2015535978A true JP2015535978A (ja) 2015-12-17
JP6159807B2 JP6159807B2 (ja) 2017-07-05

Family

ID=50340437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015532245A Active JP6159807B2 (ja) 2012-09-21 2012-09-21 3次元シーンをレンダリングするためのコンピュータグラフィックス方法

Country Status (7)

Country Link
US (1) US9842425B2 (ja)
EP (1) EP2898480B1 (ja)
JP (1) JP6159807B2 (ja)
CN (1) CN104781852B (ja)
AU (1) AU2012390266B2 (ja)
CA (1) CA2885283C (ja)
WO (1) WO2014043735A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200143586A1 (en) * 2013-02-14 2020-05-07 David Todd Kaplan Highly scalable cluster engine for hosting simulations of objects interacting within a space
US10521520B2 (en) * 2013-02-14 2019-12-31 Nocturnal Innovations LLC Highly scalable cluster engine for hosting simulations of objects interacting within a space
AU2016262127B2 (en) * 2015-05-11 2021-08-12 Pointerra Technologies Pty Ltd Method and system for computer graphics rendering
CN105488755B (zh) * 2015-11-25 2018-10-23 网易(杭州)网络有限公司 一种在2d游戏中实现3d表现的方法及装置
CN105513118B (zh) * 2015-11-26 2018-07-10 北京像素软件科技股份有限公司 一种体素化游戏世界的渲染方法
CN113014906B (zh) * 2016-04-12 2023-06-30 奎蒂安特有限公司 3d场景重建方法、系统及计算机程序存储介质
US10158834B2 (en) * 2016-08-30 2018-12-18 Hand Held Products, Inc. Corrected projection perspective distortion
GB2566279B (en) * 2017-09-06 2021-12-22 Fovo Tech Limited A method for generating and modifying images of a 3D scene
EP3467777A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing A method and apparatus for encoding/decoding the colors of a point cloud representing a 3d object
CN108043027B (zh) * 2017-11-27 2020-09-11 腾讯科技(上海)有限公司 存储介质、电子装置、游戏画面的显示方法和装置
EP3503037A1 (en) * 2017-12-24 2019-06-26 Dassault Systèmes Visibility function of a three-dimensional scene
WO2019138163A1 (en) * 2018-01-15 2019-07-18 Nokia Technologies Oy A method and technical equipment for encoding and decoding volumetric video
US11145108B2 (en) * 2018-03-21 2021-10-12 Nvidia Corporation Uniform density cube map rendering for spherical projections
CN112470191A (zh) 2018-05-02 2021-03-09 奎蒂安特有限公司 用于处理具有几乎无限细节的场景的编解码器
US20210304354A1 (en) * 2018-07-13 2021-09-30 Electronics And Telecommunications Research Institute Method and device for encoding/decoding scalable point cloud
CN109448088B (zh) * 2018-10-22 2023-02-21 广州视源电子科技股份有限公司 渲染立体图形线框的方法、装置、计算机设备和存储介质
CN109871823B (zh) * 2019-03-11 2021-08-31 中国电子科技集团公司第五十四研究所 一种结合旋转框和上下文信息的卫星图像舰船检测方法
CN110223589A (zh) * 2019-05-17 2019-09-10 上海蜂雀网络科技有限公司 一种基于3d绘画协议的汽车模型展示方法
CN110910505B (zh) * 2019-11-29 2023-06-16 西安建筑科技大学 一种场景模型的加速渲染方法
KR20210109265A (ko) 2020-02-27 2021-09-06 삼성전자주식회사 3차원 객체 전송 방법 및 장치
CN115131527B (zh) * 2022-05-27 2023-06-02 北京五八信息技术有限公司 相机切换方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078893A (ja) * 2003-05-23 2004-03-11 Sanyo Product Co Ltd 遊技機

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2625345A1 (fr) * 1987-12-24 1989-06-30 Thomson Cgr Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
US6268862B1 (en) 1996-03-08 2001-07-31 Canon Kabushiki Kaisha Three dimensional virtual space generation by fusing images
GB9930850D0 (en) 1999-12-24 2000-02-16 Koninkl Philips Electronics Nv 3D environment labelling
IL136430A0 (en) * 2000-05-29 2001-06-14 Zviaguina Natalia Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes
KR100561837B1 (ko) * 2001-07-09 2006-03-16 삼성전자주식회사 삼차원 환경에서 이미지 기반의 랜더링의 정보를 표현하기위한 방법
EP1321894B1 (en) 2001-11-27 2011-11-09 Samsung Electronics Co., Ltd. Apparatus and method for representing 3-dimensional objects using depth images
JP3966830B2 (ja) * 2003-03-28 2007-08-29 株式会社東芝 立体表示装置
US7301538B2 (en) * 2003-08-18 2007-11-27 Fovia, Inc. Method and system for adaptive direct volume rendering
CN100459719C (zh) * 2003-09-04 2009-02-04 株式会社东芝 三维影像显示装置和方法及三维显示用影像数据生成方法
US20050243085A1 (en) 2004-05-03 2005-11-03 Microsoft Corporation Model 3D construction application program interface
US7289119B2 (en) 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US8224122B2 (en) * 2006-12-15 2012-07-17 Microsoft Corporation Dynamic viewing of wide angle images
US7940279B2 (en) * 2007-03-27 2011-05-10 Utah State University System and method for rendering of texel imagery
WO2009147806A1 (ja) * 2008-06-02 2009-12-10 パナソニック株式会社 遠隔操作装置及び遠隔操作方法
US9336624B2 (en) 2008-10-07 2016-05-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for rendering 3D distance fields
KR101852811B1 (ko) 2011-01-05 2018-04-27 엘지전자 주식회사 영상표시 장치 및 그 제어방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078893A (ja) * 2003-05-23 2004-03-11 Sanyo Product Co Ltd 遊技機

Also Published As

Publication number Publication date
CN104781852B (zh) 2020-09-15
EP2898480A1 (en) 2015-07-29
US9842425B2 (en) 2017-12-12
CA2885283A1 (en) 2014-03-27
WO2014043735A1 (en) 2014-03-27
US20150279085A1 (en) 2015-10-01
JP6159807B2 (ja) 2017-07-05
CN104781852A (zh) 2015-07-15
AU2012390266B2 (en) 2019-02-21
EP2898480A4 (en) 2016-03-09
EP2898480B1 (en) 2020-05-20
CA2885283C (en) 2020-05-05
AU2012390266A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
JP6159807B2 (ja) 3次元シーンをレンダリングするためのコンピュータグラフィックス方法
EP2831848B1 (en) Method for estimating the opacity level in a scene and corresponding device
US9508191B2 (en) Optimal point density using camera proximity for point-based global illumination
JP5873672B2 (ja) 仮想環境のポイントにおいて受光された光の量の推定方法
CN104504760B (zh) 实时更新三维图像的方法和系统
AU2016262127B2 (en) Method and system for computer graphics rendering
Petkov et al. Interactive visibility retargeting in vr using conformal visualization
TWI617178B (zh) 用以表現出三維景象之電腦圖形方法、系統及軟體產品
US11436797B2 (en) Image generation system and method
US11367262B2 (en) Multi-dimensional acceleration structure
US11423618B2 (en) Image generation system and method
US11217016B1 (en) Systems and methods for generating a proxy mesh for an artist-authored mesh using conformed smoothing
Konev et al. Fast cutaway visualization of sub-terrain tubular networks
JP2011514583A (ja) 階層化深さ画像を使用する接触シミュレーション方法及び装置
Iwasaki et al. Real-time rendering of point based water surfaces
Keeler et al. The spherical visibility map
KR101137923B1 (ko) 경계가 없는 한국 전통 돌담 모델링을 위한 3차원 표면 생성 방법 및 이를 위한 기록매체
JP3711273B2 (ja) オクルージョンカリングを行う3次元グラフィックス描画装置
Inácio et al. Interactive simulation and visualization of fluids with surface raycasting
Forstmann et al. Visualizing large procedural volumetric terrains using nested clip-boxes
Sunar et al. Accelerating virtual walkthrough with visual culling techniques

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170203

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: 20170606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170612

R150 Certificate of patent or registration of utility model

Ref document number: 6159807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250