JP2009505184A - 深さバッファ付き表示装置を使用したレイ・トレーシングのためのシステムおよび方法 - Google Patents

深さバッファ付き表示装置を使用したレイ・トレーシングのためのシステムおよび方法 Download PDF

Info

Publication number
JP2009505184A
JP2009505184A JP2008525525A JP2008525525A JP2009505184A JP 2009505184 A JP2009505184 A JP 2009505184A JP 2008525525 A JP2008525525 A JP 2008525525A JP 2008525525 A JP2008525525 A JP 2008525525A JP 2009505184 A JP2009505184 A JP 2009505184A
Authority
JP
Japan
Prior art keywords
ray
pixel data
rasterized
trace
data
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
JP2008525525A
Other languages
English (en)
Other versions
JP4808778B2 (ja
JP2009505184A5 (ja
Inventor
マイナー、バリー
フォサム、ゴードン、クライド
トー、ヴァンドゥング、ダン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009505184A publication Critical patent/JP2009505184A/ja
Publication of JP2009505184A5 publication Critical patent/JP2009505184A5/ja
Application granted granted Critical
Publication of JP4808778B2 publication Critical patent/JP4808778B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Abstract

【課題】レイ・トレース画素データとラスタ化画素データとを含む画像を生成するシステムおよび方法を提供する。
【解決手段】シナジスティック・プロセッシング・ユニット(SPU)が、レンダリング・アルゴリズムを使用して、高品質画像レンダリングを必要とするオブジェクトのレイ・トレース・データを生成する。このレイ・トレース・データを断片化し、各断片はレイ・トレース画素深さ値とレイ・トレース画素色値とを含む。ラスタライザがレイ・トレース画素深さ値を対応するラスタ化画素深さ値と比較し、対応するラスタ化断片の方が視点に「より近い」場合にレイ・トレース画素データをラスタ化画素データで上書きし、その結果、合成データが得られる。表示サブシステムがこの結果として得られた合成データを使用してユーザの表示装置上に画像を生成する。
【選択図】図1

Description

本発明は、一般には深さバッファ付き表示装置を用いてレイ・トレーシングを行うシステムおよび方法に関する。より詳細には、本発明は、共用深さバッファを使用してレイ・トレース画像をラスタ化画像と合成するシステムおよび方法に関する。
最近のコンピュータ画像生成技術により、コンピュータ・ゲームやフライト・シミュレーションなどの応用分野でリアルな画像が生成されている。コンピュータ・システムの処理速度の高速化が、リアルなコンピュータ画像の生成を可能にする主要な要因の1つである。コンピュータ画像、特にゲーム・アプリケーションにおけるコンピュータ画像は、一般に、画像の生成のためにレンダリングされる多くのオブジェクトを含む。たとえば、ゲーム・アプリケーションは、風景、山、空、雲、車両、人物などのオブジェクトを含むことがある。コンピュータ画像を生成するために多くの手法が利用可能である。レイ・トレーシングは、オブジェクトをレンダリングするために広く使われている手法である。レイ・トレーシングは、ハイト・フィールドなどの特定の種類のプリミティブに基づいて画像をレンダリングするために最適化することができ、それによっていずれの視点から見ても仮想3次元に見える場面を2次元画像の形で生成することができる。当業者ならわかるように、本明細書で述べるレイ・トレーシングは、レイ・キャスティングなど他の同様のレンダリング技法も含む。レイ・トレーシングは、高品質画像レンダリング方法であるが、高度な浮動小数点演算を必要とし、メモリ・アクセスのパターンが不規則かつ帯域幅が大きいために、ユーザのパフォーマンス要求を満たせない場合があるという問題がある。
他の一般的なコンピュータ画像生成手法として、ポリゴン・レンダリングがある。この手法では、ラスタライザがポリゴンを断片に分解し、観察者から画面空間内の「断片」までの距離に対応する深さ値を記憶する深さバッファを使用して、観察者にどの断片が見えるかを判断する。たとえば、車両に対応するラスタ化断片があり、その車両の前に立つ歩行者に対応するラスタ化断片がある場合がある。この例では、ラスタライザは、車両の前に立つ歩行者を表示する特定の画面位置でどのラスタ化断片を使用するかを、深さバッファの値に基づいて判断する。ポリゴン・レンダリングは、高パフォーマンスの画像レンダリング方法であるが、ユーザの画像品質要求を満たさない画像を生成する場合があるという問題がある。
したがって、レイ・トレーシング・レンダリングの高品質の利点を、ポリゴン・レンダリングの高パフォーマンスの利点と組み合わせて、リアルなコンピュータ生成画像を効率的に生成するシステムおよび方法が必要である。
共用深さバッファを使用し、レイ・トレース画像とラスタ化画像とを合成する方法、コンピュータ・プログラム製品、およびシステムを提供する。シナジスティック・プロセッシング・ユニット(SPU:Synergistic Processing Unit)が、レンダリング・アルゴリズムを使用して、レイ・トレース色データとレイ・トレース深さデータとを含むレイ・トレース・データを生成する。ラスタライザが、他のオブジェクトについて、ラスタ化色データとラスタ化深さデータとを含むラスタ化データを生成する。ラスタライザは、画素などの区分された位置毎にレイ・トレース深さデータとラスタ化深さデータとを比較し、その比較に基づいて、特定の位置でレイ・トレース・データをラスタ化データと置き換える。その結果、レイ・トレース・データとラスタ化データとを含む合成データが生成される。次に、表示サブシステムがこの合成データを使用して、ユーザが見る画像を生成する。
SPUが、高品質画像レンダリングを必要とする特定のオブジェクトに対応する3次元モデル・データを、システム・メモリから取り出す。レイ・キャスティングまたはレイ・トレーシングなどのレンダリング・アルゴリズムが、このモデル・データを使用してレイ・トレース・データを生成する。このレイ・トレース・データはレイ・トレース画素データ「断片」として記憶される。当業者ならわかるように、これらの画素断片は、画面上の画素位置、または他の画像セグメント化技法に基づく位置に対応することができる。
各レイ・トレース画素データ断片は、レイ・トレース画素深さ値とレイ・トレース画素色値とを含む。レイ・トレース画素深さ値は、深さバッファに記憶され、観察者から画面空間内のその断片までの距離に対応する。たとえば、レイ・トレース画素深さ値は「80」とすることができ、これは表示される画像全体を基準にしてユーザから80単位分離れて表示される断片に対応する。レイ・トレース画素色値は、カラー・バッファに記憶され、断片に対応する色情報を含む。
ラスタライザは、特定のオブジェクトのポリゴンをレンダリングし、そのポリゴンの1つを画面空間の断片に分解する。これは「ラスタ化画素データ」として記憶される。各ラスタ化画素データ断片は、ラスタ化画素深さ値とラスタ化画素色値とを含む。ラスタ化画素深さ値は、観察者から画面空間内のその断片までの距離である。たとえば、ラスタ化画素深さ値「20」は、表示される画像全体を基準にしてユーザから20単位分離れて表示されるラスタ化断片に対応する。ラスタ化画素色値は、その断片に対応する色情報を含む。
ラスタライザは、システム・メモリを指示し、深さバッファからレイ・トレース画素深さ値の1つを取り出す。ラスタライザは、そのレイ・トレース画素深さ値を、同じ画面空間に対応するラスタ化画素深さ値と比較して、ラスタ化画素データを対応するレイ・トレース画素データの代わりに表示すべきか否かを判断する。たとえば、山の前に車両がある場合などのように特定の画面位置について、ラスタ化画素深さ値が20、対応するレイ・トレース画素深さ値が40の場合がある。この例では、ラスタ化断片の方がレイ・トレース断片よりも観察者に「近い」。したがって、この特定の画面位置ではレイ・トレース画素データの代わりにラスタ化画素データを表示すべきである。
ラスタライザが、ラスタ化画素データをそれに対応するレイ・トレース画素データの前面に表示すべきであると判断した場合、ラスタライザは深さバッファ内のレイ・トレース画素深さ値をラスタ化画素深さ値で上書きし、カラー・バッファ内のレイ・トレース画素色値をラスタ化画素色値で上書きする。ラスタ化断片毎に、ラスタライザはそのラスタ化画素深さ値を対応するレイ・トレース画素深さ値と比較し、それに応じてシステム・メモリ内にあるデータをラスタ化データで上書きする。
次に、ラスタライザは、他のポリゴンを画面空間断片に分解し、それら断片のラスタ化画素深さ値を深さバッファ内にある深さ値と比較する。ラスタライザは、特定の画面位置で既存のデータを複数回上書きすることができる。たとえば、特定の画面位置について、ラスタライザはレイ・トレース画素データを車両に対応するラスタ化画素データで上書きし、次に、そのラスタ化画素データを、車両の前に立つ人物に対応する他のラスタ化画素データで上書きすることができる。
ラスタライザが各ポリゴンの各断片の断片比較を終わると、深さバッファとカラー・バッファには、レイ・トレース画素データとラスタ化画素データを含む、画面表示する画像を表す「合成」データが記憶される。表示サブシステムがこの合成データをスキャンし、ユーザの表示画面上に画像を生成する。
上記は要約であるため、当然ながら簡略化、一般化したものを記載したに過ぎず、詳細は省いている。したがって、上記の要約は例示的なものであり、限定を意図したものではないことが当業者ならわかるであろう。本発明の他の態様、特徴、および利点は、特許請求の範囲によってのみ規定されるものであり、以下の非限定的な詳細な説明を読めばわかるであろう。
次に、本発明について、単に例示として、添付の図面に示される本発明の好ましい実施形態を参照しながら説明する。
以下に、本発明の一例の詳細な説明を示すが、これは本発明自体を限定するものとみなすべきではない。任意の数の変形態様も、添付の特許請求の範囲で規定される本発明の範囲に含まれ得る。
図1は、ラスタライザが、レイ・トレース画素データを対応する深さ値に基づいてラスタ化画素データで上書きする様子を示す図である。ブロードバンド・プロセッサ・アーキテクチャ100は、シナジスティック・プロセッシング・ユニット(SPU)110とシステム・メモリ130とを含む。SPU110は、デジタル信号プロセッサ、マイクロコントローラ、マイクロプロセッサ、またはこれらのコアの組合せなどの処理コアである。好ましい実施形態では、SPU110は、ローカル・メモリ、レジスタ、4個の浮動小数点演算ユニット、4個の整数演算ユニットを備える。当業者ならわかるように、必要な処理能力に応じて、SPU110はこれより少ない数、または多い数の浮動小数点演算ユニットおよび整数演算ユニットを備えることができる。
SPU110は、レイ・キャスティングやレイ・トレーシングなどによって特定のオブジェクトの色値と深さ値をレンダリングするレンダリング・アルゴリズム120を含む。たとえば、レンダリング・アルゴリズム120は、1)画面の各画素を通して視点からの光線を生成し、2)場面を通して光線を追跡して三角形のヒット・ポイントを求め、3)ヒット・ポイントに基づいて光線に陰影を付けることができる。当業者ならわかるように、SPU110はレンダリング・アルゴリズム120をサポートすることができる既成の装置としてもよい。
SPU110は、システム・メモリ130からモデル・データ140を取り出す。モデル・データ140は、高品質の画像レンダリング・オブジェクトに対応する3次元データである。たとえば、ユーザは、ユーザが見るためのリアルな画像を作成するために、建物を高品質画像としてレンダリングしたい場合がある。レンダリング・アルゴリズム120は、モデル・データ140を使用して、オブジェクトを表す色値と深さ値を含むレイ・トレース・データ150を生成する。生成された後、SPU110はレイ・トレース・データ150をレイ・トレース画素データの「断片」としてシステム・メモリ130に記憶する。各レイ・トレース画素データは、レイ・トレース画素深さ値とレイ・トレース画素色値とを含む。レイ・トレース画素深さ値は、深さバッファ155(システム・メモリ130内の記憶域)に記憶され、観察者から画面空間内の断片までの距離に対応する。たとえば、レイ・トレース画素の深さ値が「80」である場合、表示される画像全体を基準としてユーザから80単位分離れて表示される断片に対応する。レイ・トレース画素の色値はカラー・バッファ160に記憶され、断片に対応する色情報を含む。システム・メモリ130は、コンピュータ記憶装置やコンピュータ・ハード・ドライブなどの揮発性または不揮発性記憶域に格納することができる。
ラスタライザ175は、ポリゴン・レンダリングが可能な既成のラスタライザ装置またはソフトウェア/ファームウェアとすることができる。ラスタライザ175は、特定のオブジェクトのポリゴンをレンダリングし、そのポリゴンの1つを画面空間の断片に分解する。断片は「ラスタ化画素データ」断片として記憶される。各ラスタ化画素データ断片は、ラスタ化画素深さ値とラスタ化画素色値とを含む。ラスタ化画素深さ値は、観察者から画面空間内の断片までの距離に対応する。たとえば、ラスタ化画素深さ値が「20」の場合は、表示される画像全体を基準にしてユーザから20単位分離れたところに表示されるラスタ化断片に対応する。ラスタ化画素色値は色情報を含み、その他にラスタ化断片に対応する補助的情報も含むことができる。
ラスタライザ175は、システム・メモリ130を指示し、入出力部165を介して深さバッファ155から画面空間内の位置に対応する第1のレイ・トレース画素データ(レイ・トレース画素深さ値170)を取り出す。ラスタライザ175は、ラスタ化画素データを画面上のその特定の位置のレイ・トレース画素データの代わりに表示すべきか否かを判断するために、レイ・トレース画素深さ値170を、同じ画面空間位置に対応するラスタ化画素深さ値と比較する。たとえば、山の前に車両がある場合などのように、画面上の特定の位置のラスタ化画素深さ値が20、それに対応するレイ・トレース画素深さ値が40という場合がある。この例では、ラスタ化断片の方が、レイ・トレース画素断片よりも観察者に「近い」。したがって、ラスタ化画素データを画面上のその特定の位置にあるレイ・トレース画素データの代わりに表示すべきである。
ラスタライザ175が、ラスタ化画素データをある画面位置にあるレイ・トレース画素データの代わりに表示すべきであると判断した場合、ラスタライザ175は、レイ・トレース・データをラスタ化画素データ180で上書きする。これには、深さバッファ155内のラスタ化画素深さ値170をラスタ化画素深さ値で上書きし、カラー・バッファ160内のレイ・トレース画素色値をラスタ化画素色値で上書きする必要がある。ラスタ化断片毎に、ラスタライザ175はそのラスタ化画素深さ値を対応するレイ・トレース画素深さ値と比較し、それに応じてシステム・メモリ130内のレイ・トレース画素データをラスタ化画素データで上書きする。
次に、ラスタライザ175は、他のポリゴンを画面空間断片に分解する処理に進み、そのラスタ化画素深さ値を深さバッファ185内にある深さ値と比較する。画面上の特定の位置で、ラスタライザ175は既存のデータを複数回ラスタ化データで上書きすることもある。たとえば、画面上の特定の位置について、ラスタライザ175はレイ・トレース画素データを車両に対応するラスタ化画素データで上書きし、次に、そのラスタ化画素データを車両の前に立つ人物に対応する他のラスタ化画素データで上書きすることができる。
ラスタライザ175が各ポリゴンの各断片の断片比較を完了すると、システム・メモリ130には、レイ・トレース画素データとラスタ化画素データを含む、画面上表示する画像を表す「合成」データ185が記憶される。表示サブシステム190が、システム・メモリ130から合成データ185を走査出力し、表示装置195上に画像を生成する。
図2は、モデル・データからレイ・トレース・データを生成し、特定の深さ値に基づいてそのレイ・トレース・データの一部をラスタ化データで上書きする処理の各ステップを示す高水準フローチャートである。シナジスティック・プロセッシング・ユニット(SPU)が、レイ・トレーシングやレイ・キャスティングなどのレンダリング・アルゴリズムを使用して、モデル・データからレイ・トレース・データを生成し、ラスタライザが、ラスタ化データの方がレイ・トレース・データよりも視点に「近い」か否かに基づいて、レイ・トレース・データの一部をラスタ化データで上書きする。
200で処理が開始し、システム・メモリ130からモデル・データを取り出す(ステップ210)。モデル・データ140は、芝生や山などの特定のオブジェクトに対応するデータである。ステップ220で、レンダリング・アルゴリズムを使用してモデル・データ140からレイ・トレース・データを生成する。システム・メモリ130とモデル・データ140は、図1に示すものと同じである。
ステップ225で、レイ・トレース・データ150をシステム・メモリ130に記憶する。レイ・トレース・データ150は、レイ・トレース画素データの断片の形で記憶され、各断片はレイ・トレース画素深さ値とレイ・トレース画素色値とを含む。レイ・トレース画素深さ値は、その特定の断片の深さに対応する。レイ・トレース画素色値は色値を含み、その他に補助的情報も含むことができる。レイ・トレース・データ150は、図1に示すものと同じである。
ラスタライザは、システム・メモリ130からレイ・トレース画素深さ値170を取り出し、断片単位でレイ・トレース画素データをラスタ化画素データと比較する。レイ・トレース断片に「重ね合わさる」ラスタ化断片の場合は、対応するレイ・トレース画素データをラスタ化画素データ180で上書きする(事前定義済み処理ブロック230。詳細は図3および対応する本文を参照)。ラスタライザがラスタ化断片の処理を終了した後は、システム・メモリ130にはレイ・トレース・データとラスタ化データとが記憶され、その結果として合成データ185が得られる。合成データ185は図1に示すものと同じである。
ステップ240で、表示サブシステムがシステム・メモリ130から合成データ185を取り出し、表示装置195上に画像を表示する。この画像は図1に示すものと同じである。処理は260で終了する。
図3は、レイ・トレース画素深さ値を対応するラスタ化画素深さ値と比較し、比較に基づいてレイ・トレース画素データをラスタ化画素データで上書きする処理の各ステップを示すフローチャートである。
処理が300で開始すると、ラスタライザはオブジェクト(たとえば車両、人物など)に対応するポリゴンをレンダリングし、それらのポリゴンをポリゴン記憶部308に記憶する(ステップ305)。ポリゴン記憶部308は、コンピュータ記憶装置などの揮発性記憶域に格納することができる。ステップ310で、ポリゴン記憶部308から第1のポリゴンを選択し、選択したポリゴンをステップ320で画面空間断片すなわち「ラスタ化画素データ」断片に断片化する。
各ラスタ化画素データ断片は、ラスタ化画素深さ値とラスタ化画素色値とを含む。ラスタ化画素深さ値は、観察者から画面空間内の断片までの距離に対応する。たとえば、ラスタ化画素深さ値が「20」の場合は、表示される画像全体を基準にしてユーザから20単位分離れたところに表示される断片に対応する。ラスタ化画素色値は色情報を含み、さらにそのポリゴン断片に対応する補助的情報も含むことができる。
ステップ330で、画面位置に対応するラスタ化画素データ断片を選択し、ステップ340で、深さバッファ180から同じ画面位置に対応するレイ・トレース画素深さ値を取り出す。深さバッファ180は図1の示すものと同じである。ステップ350で、選択したラスタ化画素データの深さ値をレイ・トレース画素深さ値と比較する。
深さ値の比較に基づいて、ラスタ化画素データをレイ・トレース画素データの前面に表示すべきか否かを判断する(決定360)。たとえば、山の前に車両がある場合のように、画面の特定の位置のラスタ化画素深さ値が20でそれに対応するレイ・トレース画素深さ値が40の場合がある。この例では、ラスタ化断片の方がレイ・トレース断片よりも観察者に「近い」ため、レイ・トレース画素データの代わりにラスタ化画素データを表示すべきである。
レイ・トレース画素データの代わりにラスタ化画素データを表示すべき場合、決定360は「Yes」分岐368に分岐し、深さバッファ180内のレイ・トレース画素深さ値をラスタ化画素深さ値で上書きし、カラー・バッファ160内の対応するレイ・トレース画素色値を対応するラスタ化画素色値で上書きする(ステップ370)。カラー・バッファ160は図1に示すものと同じである。
一方、ラスタ化断片がレイ・トレース断片の「背後」にある場合、決定360は「No」分岐362に分岐し、ラスタ化画素データを無視し(ステップ365)、それによってシステム・メモリ130内のレイ・トレース画素データを保持する。
選択されたポリゴンに対応する未処理の断片が他にあるか否かを判断する(決定380)。未処理の断片がまだある場合、決定380は「Yes」分岐382に分岐してループ・バックし、次のラスタ化画素データを選択し(ステップ385)、処理する。このループは、選択されたポリゴンに対応する各ラスタ化断片が処理されるまで続き、処理し終わった時点で決定380は「No」分岐388に分岐する。
断片に分割して処理すべきポリゴンがポリゴン記憶部308に他にまだあるか否かを判断する(決定390)。未処理のポリゴンが他にもある場合、決定390は「Yes」分岐392に分岐してループ・バックし、次のポリゴンを選択し(ステップ395)、処理する。このループは、処理すべきポリゴンがなくなるまで続き、なくなった時点で決定390は「No」分岐397に分岐し、処理は399で戻る。
図4に、本発明を実施することができるコンピュータ装置であるブロードバンド・プロセッサ・アーキテクチャのブロック図を示す。BPA100は、複数の異種プロセッサと、共有メモリと、共有バスとを含む。異種プロセッサは、共有メモリおよび共有バスを共用する互いに異なる命令セットを有するプロセッサである。たとえば、異種プロセッサの1つがデジタル信号プロセッサであり、他方の異種プロセッサがマイクロプロセッサであり、両者が同じ記憶空間を共有するものであってもよい。
BPA100は、図1に示すものと同じであり、共有メモリおよび共有バスを共用する異種プロセッサを含む。BPA100は、入出力部165を介して外部装置との間で情報を送受信し、その情報をプロセッサ・エレメント・バス460を使用して制御プレーン410とデータ・プレーン440に渡す。制御プレーン410はBPA100を管理し、データ・プレーン440に作業を渡す。入出力部165は図1に示すものと同じである。
制御プレーン410は、オペレーティング・システム(OS)425を実行する処理ユニット420を含む。たとえば、処理装置420はBPA100に内蔵されたPowerPCコアとし、OS425はLinuxオペレーティング・システムとしてもよい。処理ユニット420は、BPA100のための共用メモリ・マップ・テーブルを管理する。メモリ・マップ・テーブルは、L2メモリ430や、データ・プレーン440に含まれる非プライベート・メモリなど、BPA100に含まれる記憶場所に対応する。L2メモリは、図1に示すシステム・メモリ130に対応するものであってもよい。
データ・プレーン440は、シナジスティック・プロセッシング・コンプレックス(SPC)445、450、および455を含む。各SPCは、データ情報を処理するために使用され、各SPCは異なる命令セットを有することができる。たとえば、BPA100を無線通信システムで使用し、各SPCが変調、チップ速度処理、符号化、ネットワーク・インターフェース処理など、別々の処理タスクを行ってもよい。他の例として、各SPCが同じ命令セットを有し、並行して使用して、並行処理によって利点が得られる動作を行ってもよい。各SPCは、図1に示すシナジスティック・プロセッシング・ユニット(SPU)110のような、デジタル信号プロセッサ、マイクロコントローラ、マイクロプロセッサ、またはこれらのコアの組合せなどの処理コアであるSPUを備える。
SPC445、450および455は、制御プレーン410、データ・プレーン440、入出力部165の間で情報を受け渡しするプロセッサ・エレメント・バス460に接続されている。ラスタライザ175は、ポリゴンをレンダリングするためのポリゴン・エンジンを含み、入出力部165を介してBPA100との間でデータを送受信する。ラスタライザ175は図1に示すものと同じである。
バス460は、入出力部165、制御プレーン410、データ・プレーン440の間で情報を受け渡しするオンチップ・コヒーレント・マルチプロセッサ・バスである。入出力部165は、BPA100に接続された周辺装置に基づいて入出力コントローラにインターフェース・ピンを動的に割り当てる、柔軟性のある入出力論理を備える。
図4に示すコンピュータ・システムは本明細書に記載の処理を実行することができるが、このコンピュータ・システムはコンピュータ・システムの一例に過ぎない。当業者なら、他の多くのコンピュータ・システム設計でも本明細書に記載の処理を実行可能であることがわかるであろう。
本発明の好ましい実施形態の1つは、クライアント・アプリケーション、すなわち、たとえばコンピュータのランダム・アクセス・メモリに常駐するコード・モジュール内の命令のセット(プログラム・コード)である。この命令のセットは、コンピュータが必要とするまで、たとえばハード・ディスク・ドライブまたは光学ディスク(最終的にCD ROMで使用)やフロッピー(登録商標)・ディスク(最終的にフロッピー(登録商標)・ディスク・ドライブで使用)などの取外し可能記憶装置など、他のコンピュータ記憶装置に格納しておくことができ、インターネットまたはその他のコンピュータ・ネットワークを介してダウンロードすることもできる。したがって、本発明はコンピュータで使用するためのコンピュータ・プログラム製品として実施することができる。さらに、上記の様々な方法はソフトウェアによって選択的に起動または再構成される汎用コンピュータで好都合に実施されるが、当業者なら、このような方法を、必要な方法ステップを実行するように構成されたハードウェア、フレームウェア、またはより特化された装置で行うこともできることがわかるであろう。
以上、本発明の特定の実施形態について図示し、説明したが、本明細書に記載の教示に基づき、当業者なら、本発明および本発明のより広い態様から逸脱することなく、変更および修正を加えることができることが明らかであろう。したがって、特許請求の範囲は、そのようなすべての変更および修正を本発明の範囲内にあるものとして含むものである。さらに、本発明は、特許請求の範囲によってのみ規定されるものと理解すべきである。導入された特定の数の請求要素を意図している場合にはそのような意図が特許請求の範囲に明示的に記載され、そのような記載がない場合にはそのような限定はないということが、当業者ならわかるであろう。たとえば、これに限らないが、わかりやすいように例を挙げると、特許請求の範囲には、請求要素を導入するために「少なくとも1つの」や「1つまたは複数の」という導入語句が記載されている。しかし、そのような語句を使用したことを、不定冠詞「a」または「an」による請求要素の導入によって、導入された当該請求要素を含む特定の請求項が当該要素を1つだけ含む発明に限定されることを意味するものとして解釈すべきではない。このことは、同じ請求項が「1つまたは複数の」または「少なくとも1つの」と、「a」または「an」などの不定冠詞とを含む場合であっても言える。また、同じことは定冠詞の付いた請求項における使用についても当てはまる。
ラスタライザが、レイ・トレース画素データを、対応する深さ値に基づいてラスタ化画素データで上書きする様子を示す図である。 モデル・データからレイ・トレース・データを生成し、特定の深さ値に基づいてそのレイ・トレース・データの一部をラスタ化データで上書きする処理のステップを示す高水準フローチャートである。 レイ・トレース画素深さ値を対応するラスタ化画素深さ値と比較し、その比較に基づいてレイ・トレース画素データをラスタ化画素データで上書きする処理のステップを示すフローチャートである。 ブロードバンド・プロセッサ・アーキテクチャ(BPA:BroadbandProcessor Architecture)を示す図であり、本明細書に記載の演算処理を行うことができるコンピュータ・システムの一例を示す略図である。

Claims (20)

  1. コンピュータで実施される方法であって、
    画面位置に対応するラスタ化画素データを選択するステップと、
    複数のレイ・トレース画素データに含まれる、前記画面位置に対応する第1のレイ・トレース画素データを取り出すステップと、
    前記第1のレイ・トレース画素データを前記ラスタ化画素データと比較するステップと、
    前記比較に基づいて前記第1のレイ・トレース画素データを前記ラスタ化画素データに置き換えるステップと、
    残りの前記複数のレイ・トレース画素データと前記ラスタ化画素データとを使用して画像を生成するステップと
    を含む方法。
  2. 前記比較するステップは、
    前記第1のレイ・トレース画素データに含まれるレイ・トレース画素深さ値を取り出すステップと、
    前記ラスタ化画素データに含まれるラスタ化画素深さ値を取り出すステップと、
    前記レイ・トレース画素深さ値を基準にした前記ラスタ化画素深さ値によって前記ラスタ化画素データが前記画面位置における前記レイ・トレース画素データの前面に配置されるか否かを判断するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記置き換えるステップは、
    深さバッファ内にある前記レイ・トレース画素深さ値を前記ラスタ化画素深さ値で上書きするステップと、
    前記第1のレイ・トレース画素データに含まれるレイ・トレース画素色値を前記ラスタ化画素データに含まれるラスタ化画素色値で上書きするステップと
    をさらに含む、請求項2に記載の方法。
  4. 高品質画像レンダリング・オブジェクトに対応するモデル・データを取り出すステップと、
    前記モデル・データからレイ・トレース・データをレンダリングするために、レンダリング・アルゴリズムを使用するステップと、
    前記レイ・トレース・データを前記複数のレイ・トレース画素データにまでセグメント化するステップと
    をさらに含む、請求項2に記載の方法。
  5. ポリゴンをレンダリングするためにラスタライザを使用するステップと、
    前記ポリゴンを複数のラスタ化画素データにまでセグメント化するステップであって、前記ラスタ化画素データは前記複数のラスタ化画素データに含まれる、ステップと
    をさらに含む、請求項1ないし4のいずれかに記載の方法。
  6. 前記複数のレイ・トレース画素データは、レイ・キャスティング・アルゴリズムとレイ・トレーシング・アルゴリズムとから成るグループから選択されたレンダリング・アルゴリズムを使用して生成される、請求項1ないし5のいずれかに記載の方法。
  7. 複数の異種プロセッサと共有メモリと共有バスとを含むブロードバンド・プロセッサ・アーキテクチャを使用して実行され、
    前記複数の異種プロセッサは、異なる命令セットを使用し、前記共有メモリと前記共有バスとを共用する、
    請求項1ないし6のいずれかに記載の方法。
  8. コンピュータ可読コードを有するコンピュータ動作可能媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読コードは、
    画面位置に対応するラスタ化画素データを選択し、
    複数のレイ・トレース画素データに含まれる、前記画面位置に対応する第1のレイ・トレース画素データを取り出し、
    前記第1のレイ・トレース画素データを前記ラスタ化画素データと比較し、
    前記比較に基づいて前記第1のレイ・トレース画素データを前記ラスタ化画素データに置き換え、
    残りの前記複数のレイ・トレース画素データと前記ラスタ化画素データとを使用して画像を生成する効果を有するコンピュータ・プログラム製品。
  9. 前記コンピュータ可読コードは、
    前記第1のレイ・トレース画素データに含まれるレイ・トレース画素深さ値を取り出し、
    前記ラスタ化画素データに含まれるラスタ化画素深さ値を取り出し、
    前記レイ・トレース画素深さ値を基準にした前記ラスタ化画素深さ値によって前記ラスタ化画素データが前記画面位置における前記レイ・トレース画素データの前面に配置されるか否かを判断する効果をさらに有する請求項8に記載のコンピュータ・プログラム製品。
  10. 前記コンピュータ可読コードは、
    深さバッファ内にある前記レイ・トレース画素深さ値を前記ラスタ化画素深さ値で上書きし、
    前記第1のレイ・トレース画素データに含まれるレイ・トレース画素色値を前記ラスタ化画素データに含まれるラスタ化画素色値で上書きする効果をさらに有する請求項9に記載のコンピュータ・プログラム製品。
  11. 前記コンピュータ可読コードは、
    高品質画像レンダリング・オブジェクトに対応するモデル・データを取り出し、
    レンダリング・アルゴリズムを使用して、前記モデル・データからレイ・トレース・データをレンダリングし、
    前記レイ・トレース・データを前記複数のレイ・トレース画素データにセグメント化する効果をさらに有する請求項9に記載のコンピュータ・プログラム製品。
  12. 前記コンピュータ可読コードは、
    ラスタライザを使用してポリゴンをレンダリングし、
    前記ポリゴンを複数のラスタ化画素データにセグメント化する効果をさらに有し、前記ラスタ化画素データは前記複数のラスタ化画素データに含まれる請求項8ないし11のいずれかに記載のコンピュータ・プログラム製品。
  13. 前記複数のレイ・トレース画素データは、レイ・キャスティング・アルゴリズムとレイ・トレーシング・アルゴリズムとから成るグループから選択されたレンダリング・アルゴリズムを使用して生成される請求項8ないし12のいずれかに記載のコンピュータ・プログラム製品。
  14. 前記コンピュータ可読コードは、複数の異種プロセッサと共有メモリと共有バスとを含むブロードバンド・プロセッサ・アーキテクチャを使用して実行され、
    前記複数の異種プロセッサは異なる命令セットを使用し、前記共有メモリと前記共有バスとを共用する請求項8ないし13のいずれかに記載のコンピュータ・プログラム製品。
  15. 1つまたは複数のプロセッサと、
    前記プロセッサがアクセス可能なメモリと、
    前記プロセッサがアクセス可能な1つまたは複数の不揮発性記憶装置と、
    リンクされたデータ構造をトラバースする画像生成ツールと
    を含み、前記画像生成ツールは、
    画面位置に対応するラスタ化画素データを選択し、
    前記不揮発性記憶装置のうちの1つから、複数のレイ・トレース画素データに含まれる、前記画面位置に対応する第1のレイ・トレース画素データを取り出し、
    前記第1のレイ・トレース画素データを前記ラスタ化画素データと比較し、
    前記比較に基づいて、前記不揮発性記憶装置のうちの1つの記憶装置内の前記第1のレイ・トレース画素データを前記ラスタ化画素データに置き換え、
    残りの前記複数のレイ・トレース画素データと前記ラスタ化画素データとを使用して表示装置上に画像を生成する
    効果を有する、情報処理システム。
  16. 前記画像生成ツールは、
    前記不揮発性記憶装置の1つから、前記第1のレイ・トレース画素データに含まれるレイ・トレース画素深さ値を取り出し、
    前記不揮発性記憶装置の1つから、前記ラスタ化画素データに含まれるラスタ化画素深さ値を取り出し、
    前記レイ・トレース画素深さ値を基準とした前記ラスタ化画素深さ値によって前記ラスタ化画素データが前記画面位置における前記レイ・トレース画素データの前面に配置されるか否かを判断する効果をさらに有する請求項15に記載の情報処理システム。
  17. 前記画像生成ツールは、
    前記不揮発性記憶装置の1つにある深さバッファ内の前記レイ・トレース画素深さ値を前記ラスタ化画素深さ値で上書きし、
    前記不揮発性記憶装置の1つにおいて、前記第1のレイ・トレース画素データに含まれるレイ・トレース画素色値を前記ラスタ化画素データに含まれるラスタ化画素色値で上書きする効果をさらに有する請求項16に記載の情報処理システム。
  18. 前記画像生成ツールは、
    前記不揮発性記憶装置の1つから、高品質画像レンダリング・オブジェクトに対応するモデル・データを取り出し、
    レンダリング・アルゴリズムを使用して前記モデル・データからレイ・トレース・データをレンダリングし、
    前記レイ・トレース・データを前記複数のレイ・トレース画素データにセグメント化する効果をさらに有する請求項16に記載の情報処理システム。
  19. 前記画像生成ツールは、
    ラスタライザを使用してポリゴンをレンダリングし、
    前記ポリゴンを複数のラスタ化画素データにセグメント化する効果をさらに有し、前記ラスタ化画素データは前記複数のラスタ化画素データに含まれる請求項15ないし18のいずれかに記載の情報処理システム。
  20. 前記複数のレイ・トレース画素データは、レイ・キャスティング・アルゴリズムとレイ・トレーシング・アルゴリズムとから成るグループから選択されたレンダリング・アルゴリズムを使用して生成される請求項15ないし19のいずれかに記載の情報処理システム。
JP2008525525A 2005-08-11 2006-07-26 レイ・トレース画像をラスタ化画像と合成するための方法 Expired - Fee Related JP4808778B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/201,651 US7439973B2 (en) 2005-08-11 2005-08-11 Ray tracing with depth buffered display
US11/201,651 2005-08-11
PCT/EP2006/064705 WO2007017391A1 (en) 2005-08-11 2006-07-26 System and method for ray tracing with depth buffered display

Publications (3)

Publication Number Publication Date
JP2009505184A true JP2009505184A (ja) 2009-02-05
JP2009505184A5 JP2009505184A5 (ja) 2009-04-09
JP4808778B2 JP4808778B2 (ja) 2011-11-02

Family

ID=37103032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008525525A Expired - Fee Related JP4808778B2 (ja) 2005-08-11 2006-07-26 レイ・トレース画像をラスタ化画像と合成するための方法

Country Status (6)

Country Link
US (2) US7439973B2 (ja)
EP (1) EP1920409A1 (ja)
JP (1) JP4808778B2 (ja)
CN (1) CN101238489B (ja)
CA (1) CA2618472A1 (ja)
WO (1) WO2007017391A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010287235A (ja) * 2009-06-10 2010-12-24 Samsung Electronics Co Ltd ハイブリッドレンダリング装置および方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7697751B2 (en) * 2005-12-29 2010-04-13 Graphics Properties Holdings, Inc. Use of ray tracing for generating images for auto-stereo displays
US7864174B2 (en) * 2006-08-24 2011-01-04 International Business Machines Corporation Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
US8379022B2 (en) 2008-09-26 2013-02-19 Nvidia Corporation Fragment shader for a hybrid raytracing system and method of operation
US9483864B2 (en) * 2008-12-05 2016-11-01 International Business Machines Corporation System and method for photorealistic imaging using ambient occlusion
US8248405B1 (en) 2009-02-26 2012-08-21 Adobe Systems Incorporated Image compositing with ray tracing
US8669977B2 (en) 2009-10-01 2014-03-11 Intel Corporation Hierarchical mesh quantization that facilitates efficient ray tracing
JP2012181825A (ja) * 2011-02-09 2012-09-20 Canon Inc 画像処理装置およびその方法
US8677031B2 (en) * 2011-03-31 2014-03-18 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US20130293547A1 (en) * 2011-12-07 2013-11-07 Yangzhou Du Graphics rendering technique for autostereoscopic three dimensional display
US9842424B2 (en) * 2014-02-10 2017-12-12 Pixar Volume rendering using adaptive buckets
CN104112293B (zh) * 2014-07-04 2017-05-17 南京航空航天大学 一种用于隧道环境的射线追踪加速方法
US10051263B2 (en) * 2015-11-23 2018-08-14 Center For Integrated Smart Sensors Foundation Multi-aperture camera system using scan line processing
US9934605B2 (en) * 2016-02-24 2018-04-03 Disney Enterprises, Inc. Depth buffering for subsequent scene rendering
US11017581B1 (en) 2020-01-04 2021-05-25 Adshir Ltd. Method for constructing and traversing accelerating structures
CN112017254B (zh) * 2020-06-29 2023-12-15 浙江大学 一种混合式光线跟踪绘制方法及系统
US11869117B2 (en) 2021-03-18 2024-01-09 Samsung Electronics Co., Ltd. Systems and methods of adaptive, variable-rate, hybrid ray tracing
CN113129420B (zh) * 2021-04-14 2023-06-23 江苏理工学院 一种基于深度缓冲加速的光线追踪渲染方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03271877A (ja) * 1990-03-20 1991-12-03 Fujitsu Ltd グラフィック表示装置
JPH05183808A (ja) * 1991-12-27 1993-07-23 Matsushita Electric Ind Co Ltd 画像情報入力装置と画像合成装置
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
JPH09311954A (ja) * 1996-05-22 1997-12-02 Hitachi Ltd 3次元図形表示システムおよび3次元図形の表示方法
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
JP4319308B2 (ja) * 1999-12-28 2009-08-26 株式会社ディジタルメディアプロフェッショナル ガス状物体表示回路
US20030160788A1 (en) * 2002-02-28 2003-08-28 Buehler David B. Pixel pruning and rendering apparatus and method
JP4217100B2 (ja) * 2003-04-17 2009-01-28 本田技研工業株式会社 画像合成方法、装置、およびプログラム、ならびに立体モデルのレンダリング方法、装置、およびプログラム
US8271986B2 (en) * 2003-12-31 2012-09-18 Intel Corporation Visual and graphical data processing using a multi-threaded architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010287235A (ja) * 2009-06-10 2010-12-24 Samsung Electronics Co Ltd ハイブリッドレンダリング装置および方法

Also Published As

Publication number Publication date
US7737970B2 (en) 2010-06-15
EP1920409A1 (en) 2008-05-14
CN101238489B (zh) 2012-12-26
JP4808778B2 (ja) 2011-11-02
CA2618472A1 (en) 2007-02-15
US20080297506A1 (en) 2008-12-04
CN101238489A (zh) 2008-08-06
US7439973B2 (en) 2008-10-21
WO2007017391A1 (en) 2007-02-15
US20070035544A1 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
JP4808778B2 (ja) レイ・トレース画像をラスタ化画像と合成するための方法
US8223149B2 (en) Cone-culled soft shadows
TWI592902B (zh) 來自片段著色器程式之樣本遮罩的控制
US8217934B2 (en) System and methods for rendering transparent surfaces in high depth complexity scenes using hybrid and coherent layer peeling
KR100478767B1 (ko) 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템
EP2854108B1 (en) Anti-aliasing for graphics hardware
US10607400B2 (en) Graphics processing systems using a vertex shader to render plural images
US10032308B2 (en) Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
EP3346448B1 (en) Graphics processing method and system
US20130120410A1 (en) Multi-pass method of generating an image frame of a 3d scene using an object-division based parallel graphics rendering process
US8368694B2 (en) Efficient rendering of multiple frame buffers with independent ray-tracing parameters
US8547395B1 (en) Writing coverage information to a framebuffer in a computer graphics system
CN107392836B (zh) 使用图形处理管线实现的立体多投影
KR20150039495A (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US7817165B1 (en) Selecting real sample locations for ownership of virtual sample locations in a computer graphics system
US20140002458A1 (en) Efficient rendering of volumetric elements
EP2860700B1 (en) Image processing apparatus and method
US20030218610A1 (en) System and method for implementing shadows using pre-computed textures
US10825238B2 (en) Visual edge rendering using geometry shader clipping
JP2014505954A (ja) 仮想環境における隠蔽の推定方法
US8643666B2 (en) Stenciled layer peeling graphics processing
US20180330551A1 (en) Edge welding of geometries having differing resolutions
KR20230058460A (ko) 깊이 컬링을 지연호출하기 위한 셰이더 코어 명령
Randall Talisman: Multimedia for the PC
JP2010033301A (ja) 画像生成システム、プログラム及び情報記憶媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110601

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

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

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

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees