JP2022091849A - 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット - Google Patents

光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット Download PDF

Info

Publication number
JP2022091849A
JP2022091849A JP2022045335A JP2022045335A JP2022091849A JP 2022091849 A JP2022091849 A JP 2022091849A JP 2022045335 A JP2022045335 A JP 2022045335A JP 2022045335 A JP2022045335 A JP 2022045335A JP 2022091849 A JP2022091849 A JP 2022091849A
Authority
JP
Japan
Prior art keywords
ray
rays
bundle
ray bundle
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
JP2022045335A
Other languages
English (en)
Other versions
JP7421585B2 (ja
Inventor
ピーターソン ルーク
T Peterson Luke
ジョーンズ ジェームズ
Jones James
ドワイヤー アーロン
Dwyer Aaron
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of JP2022091849A publication Critical patent/JP2022091849A/ja
Application granted granted Critical
Publication of JP7421585B2 publication Critical patent/JP7421585B2/ja
Active 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/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Abstract

【課題】3-Dレンダリングシステム、システムアーキテクチャ、及び方法を提供する。【解決手段】光線トレースを実行するように構成されたグラフィックス処理システム。光線は、一緒にバンドル化され、かつ一緒に処理される。差分データがシェーダーによって必要とされる時に、別々の追跡光線を処理するのではなく、バンドル内の真の光線のデータを使用することができる。【選択図】図1

Description

本明細書の説明は、一般的に、3-Dレンダリングシステム、システムアーキテクチャ、及び方法に関する。本明細書に説明する実施例の一部は、ハイブリッド光線追跡とラスター化ベースのレンダリングとのような非同期及び同時ハイブリッドレンダリングのためのシステム、アーキテクチャ、及び方法に関する。
グラフィックス処理ユニット(GPU)は、多くの場合に、高度に並列化されたラスター化ベースのレンダリングハードウエアを提供する。従来のグラフィックス処理ユニット(GPU)は、テクスチャマップによって多角形をレンダリングするためだけの固定パイプラインを使用し、かつプログラマブル頂点及び断片段を可能にするより柔軟なパイプラインに漸次進化した。現代のGPUは、形状及びピクセル処理のより大きいプログラム可能性をサポートするが、GPU内の様々な機能は、固定機能ハードウエアに実施される。現代のGPUは、複雑さの範囲が広い可能性があり、かつ特定の使用に適するようになっている場合がある。GPUを設計する時に、多くの場合に、性能、サイズ、電力消費、及びコストのような様々なファクタの間にトレードオフが存在する。GPUは、多くの場合に、リアルタイムレンダリングタスクに使用され、多くのGPUアプリケーションの最適化は、ショートカットを決定して主観的ビデオ品質の望ましいレベルを維持しながら毎秒の望ましいフレームスループットを達成する段階を伴う。例えば、ビデオゲームでは、光挙動の現実的モデル化が目的であることは希であり、逆に、望ましい外観又はレンダリング効果を達成することが多くの場合に主な目的である。
従来的に、光線追跡は、アニメーション映画の製作のような高品質非リアルタイムグラフィックレンダリングタスクに対して、又は異なる材料内の光の挙動をより忠実にモデル化する2D画像の生成に使用される技術である。光線追跡では、望ましい結果を達成するためのレンダリング及びパイプライン柔軟性の制御は、多くの場合に、望ましいフレームレートを維持するよりも重要な問題であった。同じく、光線追跡に必要な処理タスクの一部の種類は、ラスター化に最適であるハードウエア上で必ずしも実施可能ではない。
一例として、光線追跡は、レンダリングされる画像内に照明効果を導入するのに特に適している。シーン内の物体上に光を放つ光源は、そのシーンに対して定めることができる。一部の物体は、光源からの他の物体を遮ってシーン内に影をもたらすことができる。光線追跡技術を使用したレンダリングは、光線追跡を使用してシーン内の光の挙動をモデル化するようになっているので、光源の効果が正確にレンダリングされることを可能にする。
グラフィックス処理システムにおいて実行される一部の作動は、差分データを決定する段階を伴う。差分データは、水平又は垂直ピクセル位置(dx又はdy)の変化に対する属性の変化率を示している。例えば、シーン内の物体のレンダー平面からの距離は、空間内のシフトに対応するシーン空間内のシフトの大きさに影響を及ぼす。更に別の例として、面が、シーンがそこからレンダリングされている視点に対して傾斜している場合に、画面空間内の垂直の1ピクセルシフトは、シーン空間内の水平の1ピクセルシフトとは異なるシーン空間内のシフトに対応する場合がある。勾配データ(すなわち、差分データ)は、様々な機能、例えば、シーン内の面に適用されるテクスチャの適切なmipマップレベルを選択するのに有用とすることができる。
この「発明の概要」は、「発明を実施するための形態」で以下に更に説明する選択した概念を単純化された形式で紹介するために提供するものである。この「発明の概要」は、特許請求する主題の重要な特徴又は本質的な特徴を識別するように意図しておらず、特許請求する主題の範囲を制限するのに使用されるようにも意図していない。
シーンをレンダリングするためのグラフィックス処理システム内で光線を処理するコンピュータ実装方法を提供し、本方法は、複数の光線を一緒に光線バンドルにグループ化する段階と、シーン内の光線バンドルの光線に対して交差試験を実施する段階と、光線バンドルの光線に対する交差試験の結果を使用して光線バンドルに光線を維持すべきか否かを決定する段階と、光線バンドル内の光線に対する1又は2以上のシェーダープログラムを実行する段階と含み、シェーダープログラムのうちの少なくとも1つの実行は、光線バンドルの特定の光線に対する差分データを光線バンドルの別の光線に対するデータを使用して決定する段階を含む。
シーンをレンダリングするように構成されたグラフィックス処理ユニットを提供し、グラフィックス処理ユニットは、複数の光線を一緒に光線バンドルにグループ化するように構成されたバンドル化モジュールと、光線バンドルの光線に対して交差試験を実施し、かつ光線バンドルの光線に対する交差試験の結果を使用して光線バンドルに光線を維持すべきか否かを決定するように構成された交差試験論理部と、光線バンドルの特定の光線に対する差分データを光線バンドルの別の光線に対するデータを使用して決定する段階を含む光線バンドル内の光線に対する1又は2以上のシェーダープログラムを実行するように構成された処理論理部とを含む。
集積回路製造システムにおいて処理された時に集積回路製造システムをして本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを製造させる集積回路のコンピュータ可読記述を格納した非一時的コンピュータ可読ストレージ媒体を同じく提供する。本明細書に説明するグラフィックス処理ユニットは、ハードウエアに具現化することができる。本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを記述する集積回路のコンピュータ可読記述を格納した非一時的コンピュータ可読ストレージ媒体と、本明細書の実施例のいずれかに説明するようなグラフィックス処理ユニットを具現化する集積回路の回路レイアウト記述を発生させるように集積回路記述を処理するように構成されたレイアウト処理システムと、回路レイアウト記述に従ってグラフィックス処理ユニットを製造するように構成された集積回路発生システムとを含む集積回路製造システムを同じく提供することができる。
本明細書に説明する方法のいずれかを実行するためのコンピュータプログラムコードを提供することができる。コンピュータシステムで実行された時にコンピュータシステムをして本明細書に説明する方法のいずれかを実行させるコンピュータ可読命令を格納した非一時的コンピュータ可読ストレージ媒体を提供することができる。
上述の特徴は、当業者には明らかであろうが適切な場合に組み合わせることができ、かつ本明細書に説明する実施例の態様のいずれとも組み合わせることができる。
ここで実施例を添付図面を参照して詳細に以下に説明する。
添付図面は、様々な実施例を示している。当業者は、図面内に図示の要素境界(例えば、ボックス、ボックスのグループ、又は他の形状)が境界の一例を表すことを認めるであろう。一部の実施例では、1つの要素が複数の要素として描かれる場合があり、又は複数の要素が1つの要素として描かれる場合がある。共通参照番号は、適切な場合に図を通して類似の特徴を示すのに使用される。
グラフィックス処理システムを示す図である。 グラフィックス処理の方法のための流れ図である。 視点からレンダリングされるシーンを示す図である。 分割されない光線のバンドルの実施例を示す図である。 分割される光線のバンドルの実施例を示す図である。 グラフィックス処理システムが実施されるコンピュータシステムを示す図である。 グラフィックス処理システムを具現化する集積回路を発生させるための集積回路製造システムを示す図である。
以下の説明は、当業者が本発明を作って使用することを可能にするために例示的に示している。本発明は、本明細書に説明する実施形態に限定されず、開示する実施形態への異なる修正が当業者に明らかであろう。実施形態は、実施例によってのみ説明するものとする。
一部のレンダリングシステムにおいては、仮想DX及びDY光線が差分データを決定するように形成される。これらの仮想光線は、「追跡」光線又は「探り」光線と呼ぶ。OpenRLによれば、差分光線(すなわち、追跡光線)は、三重「進路」にフレームシェーダーコードを実行することによってフレームシェーダー内で計算される。DX進路のフレーム座標は、ベクトル2(1,0)が加えられており、DY進路のフレーム座標はベクトル2(0,1)が加えられる。このようにして、光線が画面位置(x、y)に対応するシーン位置からトレースされる時に、2つの追跡光線も画面位置に対応するシーン位置(x+1、y)及び(x、y+1)から処理される。しかし、これは、Xの上の次のピクセルに対して、このピクセルのDX光線に同じ演算が再度実行され、Yにおいても同様であることを意味する。隣接するピクセルの「主」進路は冗長的に計算してこのデータを格納する。
画面に関して1つのプリミティブに対して実行されるシェーダーの滑らかに変化する関数の変化率を計算するために差分光線が使用されることが本明細書では理解される。主光線と差分光線が同じプリミティブに衝突した時の差分光線値と主光線値の間の差が差分値である(微分近似の有限差分法)。
本明細書に説明する実施例において、ピクセルの追跡光線が隣接するピクセルの主光線によって冗長であり、かつ光線がシーンの形状との整合する交差を有する場合に、光線トレース差分の実施は、ピクセルの光線のグループの交差を見出し、同時に全てをシェーディングすることができる。換言すると、光線を1つの光線バンドルにグループ化することができ、光線バンドルが発散しない(例えば、異なる交差試験結果に起因して)場合に、追加の追跡光線をトレースすることなく光線バンドルの光線を互いの差分光線として使用することができる。光線トレース差分により、仮想追跡光線データを格納する必要性を排除することができる。光線トレース差分によって仮想交差及びシェーダープリアンブルとした仮想光線方向の正規化の計算を排除することができる。光線トレース差分により、三重コードを生成するためのコンパイラの必要性を排除することができる。光線トレース差分により、三重シェーダーコードを実行する必要性を排除することができる。更に、光線トレース差分によってレンダリングシステムにおけるテクスチャスループットを改善することができる。
光線は、光線が放出された時にグループ(例えば、4のグループ又はそれよりも多く、又はそれ未満(例えば、一部の光線がグループから失われたら)に一緒に保持され、光線がシェーディング目的で同じものに衝突した場合に、シェーディングが実行された時に1つの光線の実行からのデータを利用して同じグループの別の光線に対する差分データを示唆することができる。これらのグループは、光線バンドルと呼ぶことができる。光線バンドルが4つの光線を含む場合に、これを「クワッド光線」と呼ぶことができる。
一部の実施例において、全ての光線がシェーダーから光線の開始を獲得し、光線を放出することができるシェーダーは、光線の交差、コンピュータワークロード送出、及びバッファのピクセルに応答して実行の待ち行列に入れられる。シェーダーは、例えば、ピクセル/断片/フレームシェーダーとすることができる。ピクセル又は断片は、処理されるピクセル/断片間に局所性が存在するようにレンダリング空間のタイル内で処理することができ、すなわち、順番に処理されるピクセルは、レンダリング空間で互いの近くに位置する可能性が高い。ピクセル/断片/フレームシェーダーは、例えば、ピクセル/断片フットプリントを決定する場合に使用するため又はmipマップレベルを選択するために差分データを決定する必要があることがある。例えば、GLSL(オープンGLシェーディング言語)は、fwidth、dFdx、dFdyのように機能し、差分データを使用する。シェーディングクラスターは、+x、-x、+y、又は-yのあらゆる光線バンドルの近くの断片に照会し、近くの位置からシェーディングに必要な変数の値を決定することができる。これらの近くの位置は隣接するピクセルであることが多いが、同じピクセル内のマルチサンプル断片とすることができ、低減された解像度レンダリングに対して1ピクセルよりも遠く離れた位置を表すことがある。
断片におけるこの局所性が存在するので、フレームシェーダーが光線を放出した時に、その近傍も光線を放出する場合がある。グラフィックス処理システムはSIMD実行を使用することができ、この場合に、これらの光線は、実質的に全てが一緒に放出される。これらの光線が類似の起点及び方向を有する可能性もある。従って、これらの光線は、一緒にバンドルすることができる。バンドル化は、シェーダーによって行われる例えばシェーダーコードの著者によって書かれた明示的な決定とすることができる。例えば、キーワードのような特徴は、光線追跡と共に使用されるシェーディング又はコンピュータ言語で提供することができ、出力バッファのピクセルのような別の量に関する変化率を追跡又は計算することができるデータ要素を示すことができる。バンドル化を効率的に使用することができるようにプログラマーにバンドル化機能の可視性を可能にするためのAPIを提供することができる。これに代えて、例えば、光線が光線バンドルから分割される可能性に基づいて光線バンドルにグループ化する光線を決定するために光線の分析を実行することができるハードウエア又はソフトウエアモジュール(以下「バンドル化モジュール」と呼ぶ)によってバンドル化を実行することができる。この目的は、処理中に光線バンドルから分割されない光線を1つの光線バンドルにグループ化することである。本明細書の説明から明らかなように、光線が光線バンドルから分割されない時に、光線のバンドル化は、生成される追跡光線の数を低減する場合に特に有効である。一部の実施例において、光線は、タスクにおける隣接するシェーダーの放出同時並行性に基づいて1つの光線バンドルにグループ化することができる。隣接性は、断片位置に基づく場合がある。隣接性は、コンピュータシェーダー送出バッファの位置に基づく場合がある。隣接性は、同じ入射光線バンドル/グループの一部であることに起因する場合がある。
光線バンドルが主光線に組み立てられた状態で、光線バンドルの光線は、共に横断される。横断は、光線がシーンの形状に交差するか否かを決定するために光線に対して交差試験を実施する段階を含む。光線に対する交差試験の結果は、光線があらゆる形状に交差したか否かに関する表示を含むことができ、光線が交差を有する場合に、交差試験の結果も、交差された形状の要素の識別子(例えば、プリミティブ、メッシュ、物体)、交差が引き起こった位置、交差の形状の面法線、及び/又は交差のために呼び出されるシェーダーの表示のような交差に関するデータを含む。光線バンドルの光線が互換性のない物体(異なる作動によって又は可能であれば異なるパラメータによってシェーディングする必要があるもの)に衝突したと決定された場合に、それは、バンドルから失われる。換言すると、光線バンドルの光線に対する交差試験の結果が、光線バンドルの他の光線に対する交差試験結果に整合しない場合に、光線は、光線バンドルから分割することができる。失われた光線は追跡光線になることができ、それによって失われた光線は、差分データによって光線バンドルの他の光線を補足するために光線バンドルの有効なデータを運び続けることができる。光線バンドルの各光線は、光線が「能動」光線又は「追跡」光線か否かを示すための表示(例えば、ビット)を有することができる。光線が光線バンドルから分割された時に、光線バンドルとは別に能動光線として処理される。
バンドルが有効な交差(又はシェードを生じるミス)を有する時に、シェーダーは、バンドルの全ての能動光線(及び可能であれば一部の追跡光線)に対して再度実行する。そのようなシェーダーは、差分値(例えば、dFdx、dFdy、fwidth、サンプルなどと呼ぶGLSLでのもの)を解消するために、オリジナル断片シェーダーが有するのと同じ並行進路に適用可能である。
2次光線が放出された時に、2次光線は、同じシェーダーを実行する入射バンドルに十分な能動光線があるか否かに応答して、光線バンドルとして放出することができ、又は放出しなくてもよい。
光線の一部の閾値数が光線バンドルから失われた時に、光線バンドルとは異なるデータ構造の光線をトレースするだけで十分になる。
光線バンドル機能は、シェーダープログラミングインタフェースを通じて表現することができる。一部の実施では、光線が一緒にバンドルされるという事実をシェーダー著者から隠すことができ、光線のバンドル化をハードウエアの詳細として実施することができる。シェーダーコードの著者が一緒にバンドルするのに適する光線を示すことができるので(例えば、これらの光線は、ある理由で光線バンドルから発散又は分割されている可能性が低いので)、シェーダーによるバンドル化の明示性を明示的に制御することによってより高い効率が可能になる。
シェーディング目的に対して同じ面/材料/物体であると考えられる点で、これは、一部の実施例では同じメッシュに制限することができるが、他の実施例では、同じメッシュ、同じ三角形、同じ物体、又は同じシェーダープログラムは、光線バンドルに光線を維持しなければならないと示す場合がある。
光線のバンドル化は、光線間に共通のある一定のデータを共有することによって光線ストレージ及び可能であれば演算コスト(多くが横断であるが、シェーダー設定、及び可能であればあらゆる場所での)の最適化を可能にする。これは、分量の数値表現に拡張することができ、例えば、全ての光線起点が十分緊密にグループ化される場合に、本発明のシステムは、浮動点数の指数、又は可能であれば仮数ビットの一部を共有することができる。
一部の実施例では、光線バンドルが発散したと考える時間に関する決定は、光線バンドルの光線のシェーダーの同一性に基づいている。しかし、この決定は、複数の光線が共有されるバンドルフォーマットによって正確に表現されない時のような他のファクタに基づくことがある。これに代えて、この論理部が従来的な経路トレーサーに結合された場合に、決定は、光線が交差試験に使用された加速構造の階層を通じた異なる経路を取るか否かに基づく場合がある。
光線の交差を見出すモジュール(交差試験論理部)は、光線バンドルの光線をシェーダーに送る。光線バンドルの光線が整合する交差試験結果を有する限り、光線は全て、実行ユニットで同時にシェーディングされ、差分がクロス-インスタンス引き算で計算される。光線全てが同じメッシュ又はプリミティブ又は物体に衝突した場合に交差試験結果が整合すると考えることができ、一部の実施形態において、交差試験結果が整合すると考えられるようにするために満足させるべき他の連続性要件を存在させることができる。交差試験結果は、整合すると考えられるものと正確に同じものである必要はない。換言すると、完全な整合は必要ない。交差試験結果は、光線が他の観点で異なる場合でも1又は2以上の特定の観点で同じである(例えば、同じメッシュが交差される、又は何らかの他の観点、例えば、同じシェーダーが呼び出される)場合に整合することができる。例えば、同じメッシュの異なるプリミティブとの交差は、一部の実施例では整合する交差試験結果と考えることができる。他の実施例では、異なるプリミティブとの交差は、整合しない交差試験結果と考えることができる。整合する交差試験結果の定義は実施の選択である。
ハードウエアは、データ構造としてのバンドルを十分承知している場合がある。光線バンドルの光線は空間的に幾分コヒーレントであり、光線は恐らく類似の方向に移動し、光線のランダムセットよりも互いに類似した時間に交差試験を終了する。光線バンドルの光線のいずれかをシェーディングする前に光線バンドルの光線の全てが交差を試験されることを待つことは、多くの待ち時間を追加しない。
光線バンドルの光線が全て同じプリミティブに衝突しないか又はプリミティブの全く異なる部分と衝突する場合に、バンドルをともかく解体しなければならない。差分化される機能は、連続的及び円滑であると仮定され、理論的には、次のピクセルの1つではなく1次光線からの極小距離の光線を使用することができるので、差分は有効であるはずであり、等しく有効な差分を光線から計算することができる。交差発散後の有効差分を有するために、光線差分の代替の方法が選択的に使用される。以前は光線バンドルの近くにあったが今は「どこかほかの場所」に進む光線は、仮想DX又はDY光線(すなわち、「追跡」光線)として使用され、衝突三角計の平面延長との交差が計算される。換言すると、第1の光線がプリミティブに交差するが、光線バンドルの1又は2以上の他の光線は交差しない。プリミティブの面は、第1の光線の追跡光線を決定するために他の光線が面とどこで及びどのように交差するかを見るために延長される。追跡光線は、シェーダーが追跡光線として扱うことを知るために光線バンドルでマーク付けされる。プリミティブに交差しない他の光線は、光線バンドルから分割され、光線バンドルとは別に、例えば、従来技術システムに類似の方式で処理され、それによって追跡光線は、光線バンドルから分割された光線に生成される。新しい光線バンドルを形成するために異なる光線バンドルから分割されている光線を一緒にグループ化することができる。
シェーディング中に、追跡光線は、光線バンドルの能動光線に対する差分データを決定するのに使用されるが、追跡光線は、更に別の光線を放出しない。一部の場合では、追跡光線は、実際には、追跡光線が更に別の光線を放出しないことを除いて、シェーダープログラムによって能動光線と同様に処理することができる。上述のように、光線バンドルの各光線における「仮想」ビットは、光線が真又は仮想か否か、仮想交差を計算すべきか否か、及びシェーディング中に副次的な影響を可能にするか否かを追跡するのに使用することができる。
光線バンドルを解体する時間に関する決定はかなり複雑である場合がある。光線バンドルの光線の全てが同じプリミティブに衝突したことを知ることは、必ずしも決定の基礎になる情報ではない。単一プリミティブは、複雑な形状、例えば、全てが1つのプリミティブにあるボルトのパイルを含有する場合がある。面法線が類似であることを検査することは1つの方法である。別の方法は、2つの光線の交差「T」値の間の差異(すなわち、交差点を光線が横断した距離)を見て光線の各々の衝突三角形の画面x又はyに対する「T」の勾配に関して検査することである。いずれかが閾値とはかなり異なる場合に、光線は発散したと考えることができる。光線バンドルを分解する時間を知るための別の方法は、衝突三角形がシーンの形状の位置を定める加速構造階層でどのくらい離れているかを見ることである。しかし、階層は、空間的に整合する極めて「離れた」ノードを有することがあり、それによって階層距離は、常に光線が発散したか否かの優良な尺度であるとは限らない。
シェーダーが三角形重心の導関数を求める場合に、光線バンドルの光線が同じ三角形と衝突するとは保証されないので、仮想交差がこれらの導関数を得るために計算される。
差分は、正確な結果をもたらさない場合がある共有左-右及び上部-下部になることになる。それによって発生するいずれの誤差も目立たないことが多いが、時には知覚される可能性もある。本発明のシステムは、最初に全ての光線バンドルが分解される高品質モードを提供することができるが、光線差分は、追跡光線を使用して標準的な方法で計算される。光線バンドル化によって獲得される効率は失われるが、品質が光線バンドル化によって危うくなることはない。
上述のように、光線ンバンドルは、光線の2x2グループを有するクワッド光線とすることができる。例えば、光線の間の一貫性が共通の場合であることが見出される場合に、大きい光線バンドルを使用することができる(例えば、3x3又は4x4、又は平方以外のバンドル)。大きいバンドルの縁部光線が仮想光線である場合に、大きい光線バンドルは、差分データの左―右及び上―下共有を持たない利点を有する。例えば、4x4光線バンドルを使用することができ、光線バンドルの下部左3x3光線だけが有効光線であり、上縁及び右縁は全て仮想光線であり、16インスタンスを一緒に処理することができる。これは、有効な光線の異なるデータの共有が生じないので高品質を提供する。
しかし、大きい光線バンドルは、交差試験を終了させるために長い時間を消費する場合があり(これは、光線バンドルの光線のあらゆるシェーディングが始まる前に光線バンドルの全ての光線が交差試験を終了するためである)、かつ光線バンドルからの光線の発散及び分割をより受け易い場合がある。
図1は、バンドル化モジュール104と、交差試験論理部106と、処理論理部108と、画像バッファ110と、ローカルメモリとを含むグラフィックス処理ユニット102を示している。ローカルメモリは、プリミティブメモリ114、光線メモリ116、及びシェーダーメモリ118を含む。メモリ112内の異なるタイプのメモリは、個別のメモリとして又は単一メモリ内の個別のセクションとして実施することができる。プリミティブメモリ114は、シーンでレンダリングされるプリミティブに関するデータを格納し、光線メモリ116は、シーンをレンダリングするために処理される光線に関するデータを格納し、シェーダーメモリ118は、シーンをレンダリングするために処理論理部108によって実行されるシェーダープログラムを格納する。バンドル化モジュール104、交差試験論理部、及び処理論理部108は、ハードウエア、ソフトウエア、又はその組合せに実施することができる。ハードウエア実施は、例えば、共通タスクを実行するための固定機能回路を使用して固定機能の加速化を可能にする。特に、バンドル化モジュール104及び交差試験論理部は、これらの機能を加速するために全体的に又は部分的にハードウエアに実施することができる。グラフィックス処理ユニット102の異なる構成要素は、グラフィックス処理ユニット102内のバスを通じて互いに通信することができる。交差試験論理部106は、レンダリングされるシーンの形状との光線の交差を試験するように構成される。処理論理部108は、1又は2以上の実行コアを含み、画像をレンダリングするためにグラフィックスデータを処理するように構成される。画像バッファ110は、レンダリングされたピクセル値を格納するように構成される。
グラフィックス処理ユニット102の作動の実施例を図2の流れ図を参照して説明する。
シーン内の物体を表すグラフィックスデータがグラフィックス処理ユニット102で受信される。グラフィックスデータは、レンダリングされる物体の面を表すプリミティブを含むことができる。プリミティブは三角形であることが多いが、他の形態、他の2次元形状、又は点又は線を取ることができる。プリミティブは、頂点のセットによって定めることができ、例えば、3つの頂点が三角形のプリミティブを定める。グラフィックスデータは、シーン内のプリミティブの頂点の頂点データ(例えば、テクスチャデータのような位置データ及び属性データ)及びどの頂点がプリミティブを形成するかを示すためのプリミティブの表示を含むことができる。グラフィックスデータはまた、レンダリングされるシーン内の光源の属性(例えば、位置、方向、色など)を定めることができる。
グラフィックス処理ユニット102は、レンダリングされる画像のピクセルの可視の面を識別するように作動する。光線追跡方法を使用することができ、シーン内のピクセルの外観を決定するために光線がトレースされる。光線は起点からトレースされ、交差試験論理部108が、シーン内の形状との光線の交差を決定する。図3は、2つの面3041と3042を含むシーン302の実施例を示している。これは、極めて単純な実施例であり、他の実施例では、シーン内に更に多くの面及び物体が存在する場合がある。図3は、シーン内の物体を照明する2つの光源3061及び3062を示している。シーンが見られる視点が308に示され、レンダリングされるフレームの視野平面が310で表されている。
段階S202で、バンドル化モジュール104が光線を1つの光線バンドルにグループ化する。例えば、4つの隣接する光線を一緒にバンドル化することができる。図4は、光線が放出される面402の実施例を示している。光線は、シェーダー実行の結果として放出させることができる。4つの光線4061から4064が図4に示され、面402上のそれぞれの4つの隣接する位置4041から4044から放出される。4つの光線4061から4064は、1つの光線バンドルにグループ化することができる(クワッド光線)。
段階S204で、交差試験論理部106は、光線バンドルの光線406に交差試験を実施し、光線がシーンの形状に交差したか否かを決定する。交差試験は、光線バンドルの各光線406に別々に実行することができる。図4に示す実施例では、光線バンドルの光線406の全てが同じメッシュ408に交差している。
段階S206で、光線バンドルの光線406の交差試験の結果は、光線406を光線バンドルに維持すべきか否かを決定するのに使用される。段階S206の決定は、グラフィックス処理ユニット102の交差試験論理部106、バンドル化モジュール104、処理論理部108、又は何らかの他の論理部(図1には図示せず)によって実行することができる。図4に示す実施例では、光線406は、それらが全て同じメッシュ408に交差するので、同じ光線バンドルに維持される。光線406の全ては、光線バンドルで有効としてマーク付けされる。
段階S208で、処理論理部108は、光線406に1又は2以上のシェーダープログラムを実行する。シェーダープログラムの実行は、光線バンドルの特定の光線に対する差分データを光線バンドルの別の光線に対するデータを使用して決定する段階を含む。例えば、光線4061は、DY光線として光線4063を使用することができ(この場合では-y)、DX光線として光線4062を使用することができ(この場合では+x)、光線4062は、光線4064をDY光線として使用することができ(この場合では-y)、光線4061をDX光線として使用することができ(この場合では-x)、光線4063は、光線4061をDY光線として使用することができ(この場合では+y)、光線4064をDX光線として使用することができ(この場合では+x)、光線4064は、光線4062をDY光線として使用することができ(この場合では+y)、光線4063をDX光線として使用することができる(この場合では-x)。光線バンドルの光線406の差分データを決定するために追加の追跡光線が処理されることはない。シェーダー実行は、更に別の光線(例えば、2次光線)の放出をもたらす場合がある。光線バンドルの光線406のシェーディングから生じた光線は、行われた決定に応答して、例えば、バンドル化モジュール104によって別の光線バンドルに共にバンドル化することができる(又はバンドル化しなくてもよい)。
図5は、光線が放出される面502の実施例を示している。光線は、シェーダー実行の結果として放出することができる。4つの光線5061から5064が図5に示され、面502上のそれぞれの4つの隣接する位置5041から5044から放出される。4つの光線5061から5064は、段階S202で1つの光線バンドルにグループ化することができる(クワッド光線)。
段階S204で、交差試験が光線506の各々に実行される。この実施例では、光線のうちの3つ(5061、5063、及び5064)が、整合する交差試験結果を有し、これらは、各々がメッシュ508に交差する。しかし、光線5062は、異なるメッシュ510に交差する。従って、この実施例では、光線5062の交差試験結果は、他の3つの光線に対する交差試験結果に整合しない。従って、段階S206で、光線5062は、光線バンドルに維持されない。残りの3つの光線5061、5063、及び5064は、光線バンドルに維持することができる。光線5062のデータは、光線バンドルで処理され、追跡光線512として使用される。これは、光線バンドルデータ構造における追跡光線としてマーク付けされる。追跡光線512は、光線5061、5063、及び5064の1又は2以上の交差の平面延長バージョンに交差すると決定される。
段階S208で、処理論理部108は、追跡光線として光線512を使用して、従来通りに光線バンドルの残りの光線(5061、5063、及び5064)を処理する。真の光線5062は、処理論理部108によって光線バンドルとは別に処理される。
本明細書に説明する実施例は、OpenGLの概念を利用するように意図され、一部の実施例では具体的にOpenGL ES3.1の仕様を利用するように意図される。APIは、フットプリント追跡/差分に対して実施することができる。
図6は、本明細書に説明するグラフィックス処理ユニットを実施することができるコンピュータシステムを示している。コンピュータシステムは、CPU602と、GPU604と、メモリ606と、ディスプレイ610、スピーカ612、及びカメラ614のような他のデバイス608とを含む。GPU604は、上述のGPU102に対応することができる。メモリ606は、上述のメモリ104に対応することができる。コンピュータシステムの構成要素は、通信バス616を通じて互いに通信することができる。
グラフィックス処理ユニット102は、いくつかの機能ブロックを含むように示されている。これは単に概略であり、そのようなエンティティの異なる論理要素間の厳密なセクションを定めるように意図していない。各機能ブロックは、あらゆる適切な方法で提供することができる。グラフィックス処理ユニットによって形成される本明細書に説明する中間値は、あらゆる点でグラフィックス処理ユニットによって物理的に生成する必要はなく、単に入力と出力間でグラフィックス処理ユニットによって実行される処理を便宜上説明する論理値を表すことができることは理解されるものとする。
本明細書に説明するグラフィックス処理ユニットは、集積回路のハードウエアに実施することができる。本明細書に説明するグラフィックス処理ユニットは、本明細書に説明する方法のいずれも実行するように構成することができる。一般的に、上述の機能、方法、技術、又は構成要素のいずれも、ソフトウエア、ファームウエア、ハードウエア(例えば、固定論理回路)、又はこれらのあらゆる組合せに実施することができる。「モジュール」、「機能」、「構成要素」、「要素」、「ユニット」、「ブロック」、及び「論理部」という語は、ソフトウエア、ファームウエア、ハードウエア、又はこれらのあらゆる組合せを一般的に表すために本明細書に使用される場合がある。ソフトウエア実施の場合に、モジュール、機能、構成要素、要素、ユニット、ブロック、又は論理部は、プロセッサで実行される指定されたタスクを実行するプログラムコードを表している。本明細書に説明するアルゴリズム及び方法は、プロセッサにアルゴリズム/方法を実施させるコードを実行する1又は2以上のプロセッサによって実施することができる。コンピュータ可読ストレージ媒体の例には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、フラッシュメモリ、ハードディスクメモリ、及び磁気、光学などの技術を使用することができる他のメモリデバイスが含まれ、命令又は他のデータを格納して、機械によってアクセス可能である。
本明細書に使用するコンピュータプログラムコード及びコンピュータ可読命令という語は、機械言語、変換言語、又はスクリプト言語で表現されるコードを含むプロセッサに対して実行可能なコードのいずれの種類も指している。実行可能コードは、バイナリコード、機械コード、バイトコード、集積回路を定めるコード(ハードウエア記述言語又はネットリストなど)、及びC、Java(登録商標)、又はOpenCLのようなプログラミング言語コードで表されるコードを含む。実行可能コードは、例えば、仮想機械又は他のソフトウエア環境で適切に実行、処理、解釈、コンパイル、実行された時に、実行可能コードがサポートされたコンピュータシステムのプロセッサをしてコードによって指定されたタスクを実行させるあらゆる種類のソフウエア、ファームウエア、スクリプト、モジュール、又はライブラリとすることができる。
プロセッサ、コンピュータ、又はコンピュータシステムは、命令を実行することができる処理機能を有するあらゆる種類のデバイス、機械、又は専用回路、又はこれらの集合又は一部とすることができる。プロセッサは、CPU、GPU、システムオンチップ、状態機械、媒体プロセッサ、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ、フィールドプログラマブルゲートアレイ(FPGA)のようなあらゆる種類の汎用又は専用プロセッサとすることができる。コンピュータ又はコンピュータシステムは、1又は2以上のプロセッサを含むことができる。
望ましい機能を実行するために集積回路を設計するのに又はプログラマブルチップを構成するのに使用される場合に、HDL(ハードウエア記述言語)ソフトウエアのような本明細書に説明するハードウエアの構成を定めるソフトウエアを収容することも意図される。すなわち、集積回路製造システムにおいて処理される時に本明細書に説明する方法のいずれかを実行し、又は本明細書に説明するあらゆる装置を含むグラフィックス処理ユニットを製造するように構成されるグラフィックス処理ユニットを製造するようにシステムを構成する集積回路定義データセットの形態でコンピュータ可読プログラムコードを符号化するコンピュータ可読ストレージ媒体を提供することができる。集積回路定義データセットは、例えば、集積回路記述とすることができる。
集積回路定義データセットは、例えば、ネットリスト、レジスタ転送レベル(RTL)コードとして、Verilog又はVHDLのようなハイレベル回路表現として、及びOASIS(RTM)及びGDSIIのような低レベル回路表現として含むあらゆるレベルの集積回路を定めるハードウエア記述言語としてプログラマブルチップを構成するためのコードとしてのコンピュータコードの形態とすることができる。表現によって定義されるように集積回路の製造定義を生成するために、論理的に集積回路(RTLなど)を定めるハイレベル表現は、回路要素の定義及びこれらの要素を結合するための規則を含むソフトウエア環境の関連で集積回路の製造定義を生成するように構成されたコンピュータシステムにおいて処理することができる。機械を定めるためにコンピュータシステムにおいて実行するソフトウエアを備えた場合に一般的であるように、1又は2以上の中間ユーザ段階(例えば、指令、変数などを提供)をこの集積回路の製造定義を生成するために集積回路を定めるコードを実行するための集積回路の製造定義を生成するように構成されたコンピュータシステムに対して要求することができる。
グラフィックス処理ユニットを製造するように本発明のシステムを構成するために集積回路製造システムにおいて集積回路定義データセットを処理する実施例を図7に関してここで説明する。
図7は、レイアウト処理システム704及び集積回路発生システム706を含む集積回路(IC)製造システム702の実施例を示している。IC製造システム702は、IC定義データセット(例えば、本明細書の実施例のいずれかで説明したグラフィックス処理ユニットを定める)を受信し、IC定義データセットを処理し、かつIC定義データセットに従ってICを発生させる(例えば、本明細書の実施例のいずれかに説明したグラフィックス処理ユニットを実施する)ように構成される。IC定義データセットの処理は、本明細書の実施例のいずれかで説明したグラフィックス処理ユニットを実施する集積回路を製造するようにIC製造システム702を構成する。
レイアウト処理システム704は、IC定義データセットを受信及び処理して回路レイアウトを決定するように構成される。IC定義データセットから回路レイアウトを決定する方法は、当業技術で公知であり、例えば、論理構成要素(例えば、NAND、NOR、AND、OR、MUX、及びFLIP-FLOP構成要素)の点で、発生される回路のゲートレベル表現を決定するためにRTLコードを合成する段階を収容することができる。回路レイアウトは、論理構成要素の位置情報を決定することによって回路のゲートレベル表現から決定することができる。これは、回路レイアウトを最適化するために自動的に又はユーザの介入により実行することができる。レイアウト処理システム704が回路レイアウトを決定した時に、レイアウト処理システム704は、回路レイアウト定義をIC発生システム706に出力することができる。回路レイアウト定義は、例えば、回路レイアウト記述とすることができる。
IC発生システム706は、当業技術で公知のように回路レイアウト定義に従ってICを発生させる。例えば、IC発生システム706は、ICを発生させるための半導体素子製造工程を実施することができ、半導体素子製造工程は、半導体材料から構築されたウェーハに電子回路が徐々に生成されていく過程のリソグラフィック及び化学的処理段階の複数段階シーケンスを収容することができる。回路レイアウト定義は、回路定義に従ってICを発生させるためのリソグラフィック処理に使用することができるマスクの形態とすることができる。これに代えて、IC発生システム706に提供される回路レイアウト定義は、ICを発生させる場合に使用する適切なマスクを形成するためにIC発生システム706を使用することができるコンピュータ可読コードの形態とすることができる。
IC製造システム702によって実行される異なる処理は、1つの位置で例えば1つの当事者によって全てを実施することができる。これに代えて、IC製造システム702は、処理の一部が異なる位置で実行することができるように分散システムとすることができ、異なる当事者によって実行することができる。例えば、(i)発生される回路のゲートレベル表現を形成するためにIC定義データセットを表すRTLコードを合成する段階、(ii)ゲートレベル表現に基づいて回路レイアウトを発生させる段階、(iii)回路レイアウトに従ってマスクを形成する段階、及び(iv)マスクを使用して集積回路を製造する段階の一部は、異なる位置で及び/又は異なる当事者によって実行することができる。
他の実施例では、集積回路製造システムにおける集積回路定義データセットの処理が、回路レイアウトを決定するためにIC定義データセットを処理する必要なくグラフィックス処理ユニットを製造するように本発明のシステムを構成することができる。例えば、集積回路定義データセットは、FPGAのような再構成可能プロセッサの構成を定めることができ、このデータセットの処理は、この定義された構成を有する再構成可能プロセッサを生成するように(例えば、FPGAに構成データをロードすることにより)IC製造システムを構成することができる。
一部の実施形態において、集積回路製造定義データセットが、集積回路製造システムにおいて処理された時に、集積回路製造システムに本明細書に説明したデバイスを発生させることができる。例えば、集積回路製造定義データセットによる図7に関して上述した方法での集積回路製造システムの構成は、本明細書に説明したデバイスを製造させることができる。
一部の実施例では、集積回路定義データセットは、データセットで定義されたハードウエア、又はデータセットで定義されたハードウエアと組み合わせて実行されるソフトウエアを含むことができる。図7に示す実施例では、集積回路の製造段階で、集積回路定義データセットで定義されたプログラムコードに従ってこの集積回路にファームウエアをロードするか、又は他に集積回路と共に使用するプログラムコードを集積回路に提供するようにIC発生システムを集積回路定義データセットによって更に構成することができる。
本出願人は、本明細書により、これらの特徴又は組合せが当業者の共通する一般的な知識の点から全体として本明細書に基づいて実行することができる程度まで、そのような特徴又は特徴の組合せが本明細書に開示するいずれの問題も解決するか否かにかかわらず、本明細書に説明する各個々の特徴及び2又は3以上のこれらの特徴のいずれの組合せも個別に開示している。以上の説明の観点から、様々な修正を本発明の範囲内で行うことができることは当業者には明らかであろう。
102 グラフィックス処理ユニット
104 バンドル化モジュール
106 交差試験論理部
108 処理論理部
112 メモリ

Claims (21)

  1. シーンをレンダリングするためのグラフィックス処理システム内で光線を処理するコンピュータ実装方法であって、
    複数の光線を一緒に光線バンドルにグループ化する段階と、
    前記シーン内の前記光線バンドルの前記光線に対して交差試験を実施する段階と、
    前記光線バンドルの前記光線に対する前記交差試験の結果を使用して該光線を該光線バンドルに維持すべきか否かを決定する段階と、
    前記光線バンドル内の前記光線に対して1又は2以上のシェーダープログラムを実行する段階と、
    を含み、
    前記シェーダープログラムのうちの少なくとも1つの前記実行は、前記光線バンドルの特定の光線に対する差分データを該光線バンドルの別の光線に対するデータを使用して決定する段階を含む、
    ことを特徴とする方法。
  2. 光線は、それらが、整合する交差試験結果を有する場合に、前記光線バンドルに維持されることを特徴とする請求項1に記載の方法。
  3. 光線は、
    前記光線が、同じプリミティブに交差し、
    前記光線が、同じメッシュに交差し、又は
    前記光線が、同じ物体に交差する、
    場合に、整合する交差試験結果を有すると考えられる、
    ことを特徴とする請求項2に記載の方法。
  4. 光線は、前記交差が、同じ1又は2以上のシェーダープログラムを実行されるように呼び出す場合に、整合する交差試験結果を有すると考えられることを特徴とする請求項2に記載の方法。
  5. 光線は、
    交差点での面法線間の差が、角度閾値よりも下であり、又は
    前記交差点内の光線深度間の差が、深度閾値よりも下である、
    場合に、整合する交差試験結果を有すると考えられる、
    ことを特徴とする請求項2に記載の方法。
  6. 前記差分データは、前記特定の光線に対する勾配を示すことを特徴とする請求項1から請求項5のいずれか1項に記載の方法。
  7. 前記シェーダープログラムのうちの前記少なくとも1つの前記実行は、前記特定の光線に対して前記決定された差分データを使用して(i)該特定の光線に対する断片フットプリントを決定し、及び/又は(ii)該特定の光線に対するmipマップレベルを選択する段階を含むことを特徴とする請求項1から請求項6のいずれか1項に記載の方法。
  8. 前記1又は2以上のシェーダープログラムは、前記光線バンドルの異なる光線に対して並列に実行されることを特徴とする請求項1から請求項7のいずれか1項に記載の方法。
  9. 前記光線バンドルから光線を該光線が該光線バンドル内の他の光線と整合する交差試験結果を持たない場合に分割する段階を更に含むことを特徴とする請求項1から請求項8のいずれか1項に記載の方法。
  10. 前記光線バンドルの光線が、該光線バンドル内の他の光線と整合する交差試験結果を持たない場合に、該光線を該バンドル内の他の光線に対する差分データを決定するのに使用される該光線バンドル内の追跡光線としてマーク付けする段階を更に含むことを特徴とする請求項1から請求項9のいずれか1項に記載の方法。
  11. 前記光線バンドルに維持される光線の数が閾値よりも下に降下する場合に、該光線のバンドルから該光線を脱グループ化する段階を更に含むことを特徴とする請求項1から請求項10のいずれか1項に記載の方法。
  12. 前記光線バンドル内の前記光線が、それらが該光線のバンドルから脱グループ化されることになる程度まで発散したか否かを決定する段階を更に含むことを特徴とする請求項1から請求項11のいずれか1項に記載の方法。
  13. 一緒にグループ化される前記光線は、シェーダープログラムの前記実行に起因して放出され、
    どの光線を光線バンドル内に一緒にグループ化するかに関する判断が、該光線を放出させる前記シェーダープログラム内で定められる、
    ことを特徴とする請求項1から請求項12のいずれか1項に記載の方法。
  14. バンドル化モジュールが、処理される光線を分析し、かつどの光線を光線バンドル内に一緒にグループ化するかを決定することを特徴とする請求項1から請求項13のいずれか1項に記載の方法。
  15. 光線バンドルが、
    2x2ブロックの断片に対応する4つの光線、又は
    4x4ブロックの断片に対応する16の光線であって、該光線の3x3ブロックだけが有効光線であり、残りの光線が追跡光線である前記16の光線、
    を含む、、
    ことを特徴とする請求項1から請求項14のいずれか1項に記載の方法。
  16. シーンをレンダリングするように構成されたグラフィックス処理ユニットであって、
    複数の光線を光線バンドル内に一緒にグループ化するように構成されたバンドル化モジュールと、
    前記光線バンドルの前記光線に対して交差試験を実施し、かつ該光線バンドルの該光線に対する該交差試験の結果を使用して該光線を該光線バンドルに維持すべきか否かを決定するように構成された交差試験論理部と、
    前記光線バンドル内の前記光線に対して、該光線バンドルの特定の光線に対する差分データを該光線バンドルの別の光線に対するデータを使用して決定する段階を含む1又は2以上のシェーダープログラムを実行するように構成された処理論理部と、
    を含むことを特徴とするグラフィックス処理ユニット。
  17. 前記光線バンドルの前記光線に対する光線データを格納するための光線メモリを更に含むことを特徴とする請求項16に記載のグラフィックス処理ユニット。
  18. 前記光線メモリは、光線バンドルの前記光線に対するデータをデータ構造に格納するように構成され、該データ構造に格納された少なくとも一部のデータが、該光線バンドルの光線間で共有されることを特徴とする請求項17に記載のグラフィックス処理ユニット。
  19. 前記光線メモリは、前記光線バンドルの前記光線のうちの1又は2以上に対する前記データの少なくとも一部を該光線バンドルの該光線のうちの異なる1つに対する該データに対する差値として格納するように構成されることを特徴とする請求項18に記載のグラフィックス処理ユニット。
  20. 符号化されたコンピュータ可読コードを有するコンピュータ可読ストレージ媒体であって、
    前記コンピュータ可読コードは、該コードがコンピュータ上で実行された時に請求項1から請求項18のいずれか1項に記載の方法が実行されるようになっている、
    ことを特徴とするコンピュータ可読ストレージ媒体。
  21. 集積回路製造システム内で処理された時に請求項19に記載のグラフィックス処理ユニットを製造するように該システムを構成する集積回路定義データセットが格納されたコンピュータ可読ストレージ媒体。
JP2022045335A 2016-03-14 2022-03-22 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット Active JP7421585B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662307817P 2016-03-14 2016-03-14
US62/307,817 2016-03-14
JP2017048583A JP7184503B2 (ja) 2016-03-14 2017-03-14 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017048583A Division JP7184503B2 (ja) 2016-03-14 2017-03-14 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット

Publications (2)

Publication Number Publication Date
JP2022091849A true JP2022091849A (ja) 2022-06-21
JP7421585B2 JP7421585B2 (ja) 2024-01-24

Family

ID=58347119

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017048583A Active JP7184503B2 (ja) 2016-03-14 2017-03-14 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
JP2022045335A Active JP7421585B2 (ja) 2016-03-14 2022-03-22 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017048583A Active JP7184503B2 (ja) 2016-03-14 2017-03-14 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット

Country Status (3)

Country Link
US (3) US10089777B2 (ja)
EP (3) EP3736775B1 (ja)
JP (2) JP7184503B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022107840A (ja) * 2018-06-29 2022-07-22 株式会社三洋物産 遊技機
JP2022107838A (ja) * 2018-06-29 2022-07-22 株式会社三洋物産 遊技機
JP2022116323A (ja) * 2018-06-29 2022-08-09 株式会社三洋物産 遊技機

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3736775B1 (en) * 2016-03-14 2023-10-11 Imagination Technologies Limited Methods and graphics processing units for determining differential data for rays of a ray bundle
CN108133453A (zh) * 2017-12-13 2018-06-08 北京奇虎科技有限公司 一种基于OpenGL的图像处理器及其功能扩展方法
CN112840378A (zh) 2018-07-26 2021-05-25 辉达公司 在路径追踪中使用共享光照贡献进行相互作用的全局照明
WO2021034837A1 (en) 2019-08-18 2021-02-25 Nvidia Corporation Ray-tracing with irradiance caches
WO2021151248A1 (en) * 2020-01-31 2021-08-05 Qualcomm Incorporated Methods and apparatus to facilitate dedicated bindless state processor
US11315303B2 (en) * 2020-03-25 2022-04-26 Arm Limited Graphics processing
US11308683B2 (en) 2020-06-29 2022-04-19 Imagination Technologies Limited Intersection testing in a ray tracing system using ray bundle vectors
US11295509B2 (en) * 2020-06-29 2022-04-05 Imagination Technologies Limited Intersection testing in a ray tracing system using multiple ray bundle intersection tests
US11887242B2 (en) * 2021-06-30 2024-01-30 Arm Limited Circuitry and method
US11798221B2 (en) 2021-10-27 2023-10-24 Arm Limited Graphics processing
GB2614098B (en) * 2022-03-31 2024-05-01 Imagination Tech Ltd Methods and hardware logic for writing ray tracing data from a shader processing unit of a graphics processing unit

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883814A (en) * 1997-03-13 1999-03-16 International Business Machines Corporation System-on-chip layout compilation
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
US8310481B2 (en) * 2007-10-12 2012-11-13 Edward Ernest Bailey Computer aided design method for enhancement of local refinement through T-splines
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
WO2010016930A2 (en) * 2008-08-08 2010-02-11 Lpi-Europe, S.L. Imaging optics designed by the simultaneous multiple surface method
EP2329457B1 (en) * 2008-09-22 2018-12-12 Imagination Technologies Limited Systems and methods for a ray tracing shader api
KR101511281B1 (ko) * 2008-12-29 2015-04-13 삼성전자주식회사 레이 트레이싱 고속화 방법 및 장치
US8797322B2 (en) * 2009-06-24 2014-08-05 Imagination Technologies, Limited Systems and methods of defining rays for ray tracing rendering
US8952961B2 (en) * 2009-06-29 2015-02-10 Imagination Technologies, Limited Systems and methods for photon map querying
US8587588B2 (en) * 2009-08-18 2013-11-19 Dreamworks Animation Llc Ray-aggregation for ray-tracing during rendering of imagery
US20140176550A1 (en) * 2010-08-27 2014-06-26 Industry-Academia Cooperation Group Of Sejong University Roy tracing appratus and method
US9424685B2 (en) * 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
GB2513698B (en) * 2013-03-15 2017-01-11 Imagination Tech Ltd Rendering with point sampling and pre-computed light transport information
EP3736775B1 (en) 2016-03-14 2023-10-11 Imagination Technologies Limited Methods and graphics processing units for determining differential data for rays of a ray bundle
US10832371B2 (en) * 2018-12-28 2020-11-10 Intel Corporation Unified architecture for BVH construction based on hardware pre-sorting and a parallel, reconfigurable clustering array

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022107840A (ja) * 2018-06-29 2022-07-22 株式会社三洋物産 遊技機
JP2022107838A (ja) * 2018-06-29 2022-07-22 株式会社三洋物産 遊技機
JP2022116323A (ja) * 2018-06-29 2022-08-09 株式会社三洋物産 遊技機

Also Published As

Publication number Publication date
EP3736775B1 (en) 2023-10-11
EP3220356B1 (en) 2020-06-17
JP2017188095A (ja) 2017-10-12
US20240070966A1 (en) 2024-02-29
EP3736775A1 (en) 2020-11-11
EP4276762A3 (en) 2024-01-17
JP7421585B2 (ja) 2024-01-24
JP7184503B2 (ja) 2022-12-06
US11810239B2 (en) 2023-11-07
US20170263044A1 (en) 2017-09-14
EP3220356A1 (en) 2017-09-20
EP4276762A2 (en) 2023-11-15
US20180365881A1 (en) 2018-12-20
US10089777B2 (en) 2018-10-02

Similar Documents

Publication Publication Date Title
JP7421585B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
CN109509138B (zh) 针对射线跟踪系统的减小的加速结构
US11734879B2 (en) Graphics processing using directional representations of lighting at probe positions within a scene
KR101054702B1 (ko) 광선 추적 이미지 처리 시스템의 픽셀 컬러 결정
JP6985804B2 (ja) 光マップを決定するための重要度サンプリング
KR102266962B1 (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
JP2022510804A (ja) 倍精度を用いない隙間のないレイと三角形との交差
US20240087223A1 (en) Overlay trees for ray tracing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230925

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240112

R150 Certificate of patent or registration of utility model

Ref document number: 7421585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150