JP2010092462A - ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及び操作方法 - Google Patents

ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及び操作方法 Download PDF

Info

Publication number
JP2010092462A
JP2010092462A JP2009189947A JP2009189947A JP2010092462A JP 2010092462 A JP2010092462 A JP 2010092462A JP 2009189947 A JP2009189947 A JP 2009189947A JP 2009189947 A JP2009189947 A JP 2009189947A JP 2010092462 A JP2010092462 A JP 2010092462A
Authority
JP
Japan
Prior art keywords
fragment
ray
rasterization target
rasterization
traced
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
JP2009189947A
Other languages
English (en)
Other versions
JP4877636B2 (ja
Inventor
Markus Tavenrath
タベンラス マルクス
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of JP2010092462A publication Critical patent/JP2010092462A/ja
Application granted granted Critical
Publication of JP4877636B2 publication Critical patent/JP4877636B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

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

Abstract

【課題】ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ及び操作方法を提供する。
【解決手段】フラグメントがラスタライズされるかレイトレースされるかを判定することを含む。フラグメントがラスタライズされると判定された場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値は、フラグメントがレイトレーシング操作から除外されることを示す。フラグメントがレイトレースされると判定された場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。
【選択図】図1

Description

[0001]本発明は、ハイブリッドレイトレーシング操作に関し、より詳細には、ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及びその操作方法に関する。
[0002]ハイブリッドレイトレーシングは、ラスタライゼーションとレイトレーシングとの結合プロセスとして当技術分野で知られている。最初に、どんな反射又は屈折表面も含まないフラグメント、例えばピクセルが、ラスタライズされる。その後、反射又は屈折表面を含むピクセルに対して、レイトレーシング操作が実行される。レイトレーシング操作では、1次レイは通常はスキップされ、交差した表面点から2次レイが生成され、これを使用してレンダリング画像の反射又は屈折が計算される。ラスタライズ及びレイトレースされた画像は、ブレンド又はマージされて、合成画像が形成される。
[0003]最初のラスタライゼーションプロセスでは、2つのラスタライゼーション操作が実施される。第1の操作では、レイトレースされないピクセルがラスタライズされる。第2の操作では、ピクセルのプリミティブ識別子がラスタライズされる。この2ステップのラスタライゼーションプロセスは、ラスタライズされた画像の生成、及び合成画像全体のレンダリングを遅延させる。
[0004]したがって、ハイブリッドレイトレーシングシステムにおけるラスタライゼーション遅延を低減するためのシステム及び方法が必要とされている。
[0005]ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ及び操作方法が提供される。この方法は、フラグメントがラスタライズされるかレイトレースされるかを判定することを含む。フラグメントがラスタライズされると判定された場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値は、フラグメントがレイトレーシング操作から除外されることを示す。フラグメントがレイトレースされると判定された場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。
[0006]本発明のこれら及び他の特徴は、後続の図面、及び例示的な実施形態の詳細な説明に鑑みれば、よりよく理解されるであろう。
本発明の一実施形態による例示的なフラグメントシェーディングプロセスを示す図である。 本発明の一実施形態による、図1のフラグメントシェーディングプロセスを組み込む例示的なフラグメントシェーディングプロセスを示す図である。 本発明の一実施形態による、図1及び2のフラグメントシェーディングプロセスを組み込む例示的なハイブリッドレイトレーシング方法を示す図である。 本発明による、図1〜3の方法が利用される例示的なシステムを示す図である。
[0008]図1に、本発明の一実施形態による例示的なフラグメントシェーディングプロセス100を示す。この方法プロセスは、フラグメント(例えばピクセル)が、ラスタライズされるか、或いは、1つ又は複数の1次レイがそれに交差する(本明細書で「レイトレースされる」と呼ぶプロセス)かを判定し、この判定に基づいて相応に後続の処理をフラグメントに適用することを含む。本明細書において、用語「ラスタライズされる」は、色の値又はベクトルをラスタフォーマットに変換する任意の技法を指す。さらに本明細書では、用語「レイトレーシング操作」は、ハイブリッドレイトレーシングの分野で周知のように、フラグメントに1つ又は複数の1次レイが交差することを伴うレイトレーシング操作を指す。
[0009]102でフラグメント処理が開始し、104で、フラグメントがラスタライズされるかレイトレースされるかが判定される。フラグメントがラスタライゼーション操作に含まれると判定された場合は、106で、所定値が生成され、ラスタライゼーションターゲットに記憶される。この所定値は、フラグメントがレイトレースされないことを示す。一実施形態では、動作106によって生成される所定値は値−1だが、本発明により、任意の値又は指示を使用して、フラグメントがレイトレーシング操作から除外されることを示すことができる。特定の一実施形態の動作106では、真と偽のいずれかの状態を有する「レイトレース属性」がフラグメントに割り当てられ、偽の状態は、フラグメントをレイトレースされないものとして識別する所定値(例えば−1)によって示される。
[0010]104でフラグメントがレイトレースされると判定された場合は、108で、フラグメントのプリミティブ識別子が、フラグメントに対するラスタライゼーションターゲットに記憶される。例えば、フラグメントが三角形プリミティブを含む場合、プロセス108は、フラグメントに対するラスタライゼーションターゲット(例えば三角形IDバッファ)に三角形IDを記憶することを含む。本発明により、例えばポリゴン、球、線、点など、種々の幾何形状プリミティブがフラグメントに含まれてもよいこと、及び、このようなプリミティブの任意の識別子を、フラグメントに対応するラスタライゼーションターゲットに記憶することができることは、当業者なら理解するであろう。さらに、当技術分野で周知のように、1つ又は任意の数のフラグメントを結合してピクセルを形成することができることも、理解されるであろう。
[0011]104での判定は、ラスタライゼーション操作とレイトレーシング操作とを区別するための任意の技法を使用して行うことができる。例えば、フラグメントが反射又は屈折表面内にあると判定された場合、フラグメントはレイトレーシング操作に含まれると判定することができる。他の測定基準を、フラグメントがラスタライゼーション操作に含まれるかレイトレーシング操作に含まれるかの判定に適用してもよいことは、当業者なら理解するであろう。
[0012]図2に、本発明の一実施形態による、図1のフラグメントシェーディングプロセスを組み込む例示的なフラグメントシェーダプロセスを示す。動作202〜208は、図1の動作102〜108に対応する。202でフラグメント処理が開始し、204で、選択されたフラグメントがラスタライズされるかレイトレースされるかが判定される。フラグメントがラスタライゼーション操作に含まれると判定された場合は、206で、所定値が生成され、第1のラスタライゼーションターゲットに記憶される。この所定値は、フラグメントがレイトレースされないことを示す。204でフラグメントがレイトレースされると判定された場合は、208で、フラグメントのプリミティブ識別子が、フラグメントに対する第1のラスタライゼーションターゲットに記憶される。実際には、選択されたフラグメントがラスタライズもレイトレースもされないという第3の可能性も存在する。ラスタライゼーション中に、例えば、シェーダがフラグメントの廃棄を決定することがある。現在のプリミティブが、レイトレースされるものとしてマークされず、ラスタライゼーションのためにシェーダによって廃棄される場合、色値は不変のままである。プリミティブ識別子は、頂点属性として実現することができる。この場合、プリミティブごとのフラグメントシェーダでは、プリミティブ識別子は一様に指定することができる。別法として、ジオメトリシェーダでは、一連のプリミティブの第1のプリミティブ識別子が、一様に指定される。次いでジオメトリシェーダは、プリミティブごとに後続のプリミティブ識別子を生成することができる。
[0013]さらに例示的には、フラグメントがラスタライズされる条件では、方法200はさらに動作210を含む。動作210では、選択されたフラグメントのためにシェーディング操作が呼び出され、それにより、フラグメントのラスタライズ済み色値が計算されて、フラグメントに対する第2のラスタライゼーションターゲット(例えば色バッファ)に記憶される。この動作に従って、任意のシェーディング操作を実施することができる。
[0014]さらに例示的には、フラグメントがレイトレースされる条件では、方法200はさらに動作212を含む。動作212では、ヌル色空間値が、フラグメントに対する第2のラスタライゼーションターゲット(例えば色バッファ)に記憶される。特定の一実施形態では、ヌル色空間値は、RGBA(0,0,0,0)の色値、すなわち完全に透明な黒である。このような色空間値を選択することにより、ラスタライズ及びレイトレースされたフラグメントを合成して最終的なフレームを生成することが容易になる。というのは、ラスタライズされなかったフラグメント及びレイトレースされなかったフラグメントは黒い背景としてレンダリングされることになるからである。しかし、異なる合成方式に従って、異なるヌル色空間値(及び/又は異なる色空間フォーマット)を実現できることは、当業者なら理解するであろう。特定の一実施形態では、フラグメントシェーダ200は、フラグメントに含まれるプリミティブごとに1度呼び出される。例えば、動作202〜212は、フラグメントシェーダ200が割り当てられるピクセルに含まれるN個の三角形のそれぞれにつき、実施することができる。さらに例示的には、動作202〜212は、N個の三角形がこのフラグメントをカバーする場合に、各フラグメントにつきN回まで実施することができる。
[0015]理解されるであろうが、フラグメントのいくつかは、ハイブリッドレイトレーシング操作におけるラスタライゼーション用として選択されることになり、いくつかはレイトレーシング用として選択されることになる。したがって、第1のフラグメントがラスタライゼーション用として準備される一連の動作202、204、206、及び210を、第2のフラグメントがレイトレーシング用として準備される一連の動作202、204、208、及び212の前に(又は後で)実施することができる。このようにして、本明細書にさらに述べるように、複数のフラグメント(例えばフレーム内の全てのフラグメント)が、ハイブリッドレイトレーシング操作におけるラスタライゼーション又はレイトレーシングのために処理される。
[0016]図3に、本発明の一実施形態による、図1及び2のフラグメントシェーディングプロセスを組み込む例示的なハイブリッドレイトレーシング方法(又は「レイトレーサ」)を示す。この方法によれば、プリミティブのラスタライゼーションを利用して、可視の(すなわち最も近いニアプレーン)フラグメントを突き止め、シェーディングを実施してフラグメントの色値を計算する。レイトレーサ300は、第1のレイトレーシングステップを省略している。というのは、後でさらに説明するように、レイトレーシングアルゴリズムに通常なら含まれる1次レイに対するトラバース操作がラスタライゼーションステップによって置き換わるからである。それ以上の全てのトラバースステップは、レイトレーサによって通常どおり行われる。
[0017]方法300は、特定のフラグメントが、その色値について(動作210)又はフラグメントのプリミティブ識別子について(動作208)ラスタライズ済みである、方法200の続きを表す。302で、フラグメントに照会して、フラグメントがレイトレースされるかどうかが判定される。特定の一実施形態では、一方又は両方のラスタライゼーションターゲットに照会して、ラスタライゼーションターゲットが前述のような「レイトレースされない」値を記憶しているかどうかが判定される。別の実施形態では、プリミティブ識別子があるかどうかラスタライゼーションターゲットが探索されるが、プリミティブ識別子があることは、フラグメントがレイトレースされることを示す。このプロセスの例示的な一実施形態では、「レイトレースされない」値の有無を検出するため又はプリミティブ識別子の有無を検出するための処理用として、フラグメントの三角形IDバッファがレイトレーシングエンジンに供給される。
[0018]302での判定でフラグメントがレイトレースされない場合(例えばフラグメントについて「レイトレースなし」値が見られる)は、方法は304で終了する。302での判定でフラグメントがレイトレースされる場合(例えばフラグメントについてプリミティブ識別子が見られるか又は「レイトレースなし」値がないことにより)は、方法は306で継続し、レイトレーサは、交差及びシェーディング操作を実施する。さらに具体的には、普通ならレイトレーシング操作の一部として実施されるトラバース操作が省略される。というのは、動作208でこのデータが提供されるからであり、すなわち、プリミティブ識別子が、対象フラグメントに対するレイが交差するプリミティブを指定するからである。動作208によって提供されたデータを、レイトレーサ300が使用して、幾何形状とのレイの交差を計算し、フラグメントのレイトレース済み色空間値を計算する。レイトレーシングのトラバース操作で(例えば10000個の三角形を含む場面で)利用される対数探索と比較して、プロセス208は通常、かなり高速で動作して最も近いニアプレーンのフラグメントを識別することになるので、本発明の方法は、従来の方法に勝って、レンダリングにおける速度及び計算効率の向上をもたらす。
[0019]特定の一実施形態では、ハイブリッドレイトレーサ300は、画像の可視フラグメントごとに1度呼び出される。このような場合、動作302〜308は、フラグメント単位で実施され、レイトレーシング済み色値(もしあれば、条件付き動作306ごとに)が、各フラグメントにつき1度計算される。さらに例示的には、動作204、206、及び210を呼び出して、上に定義したようなラスタライズ済み色空間値を有する第1のフラグメントを提供することができ、動作204、208、212、302、及び306を繰り返して、上に定義したようなレイトレース済み色値をそれぞれが有する第2のフラグメントを提供することができる。フラグメントを結合する(例えばブレンド、マージ、又は加算する)ことにより、2つのフラグメントの合成画像が得られる。ラスタライズもレイトレースもされないフラグメントは、背景色のまま、例えば例示的な一実施形態では完全に透明な黒のRGBA(0,0,0,0)のままである。
[0020]図3からわかるように、ハイブリッドレイトレーサは、動作210でユーザのフラグメントシェーダプログラムを呼び出して実行するように動作可能であり、また、レイトレースされるフラグメントのプリミティブ識別子を提供するようにも動作可能である(動作208)。したがってユーザは、必要に応じて場面をラスタライズすることができ、その後、後続のレイトレーシング操作(動作306)のために三角形IDバッファに照会することができる(動作302)。このようにして、ハイブリッドレイトレーサ300は、両方のフラグメントタイプのトランスペアレントな処理をユーザに提供する。さらに、各フラグメントタイプのラスタライゼーションは、ラスタライズ済み色空間値フラグメントのための動作206及び210によって、或いはレイトレース済み色空間値フラグメントのための動作208及び212によって、1度だけ行われる。方法100、200、及び300における動作はそれぞれ、任意の適切なプログラミング言語の実行可能命令として実現することができ、プログラミング言語の少数の例は、OpenGLシェーディング言語(GLSL)、Cgシェーディング言語、ハイレベルシェーダ言語(HLSL)、又は、このような言語のそれぞれのコンパイラと共に使用されるコンピュートユニファイドデバイスアーキテクチャ(CUDA(商標))GPUプログラミング言語である。加えて、例示の動作は、ハードウェア又はファームウェアによって、例えば特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、又は他のそのようなデバイスによって実施することができる。
[0021]図4に、本発明による、図1〜3の方法が利用される例示的なシステム400を示す。システム400は、グラフィックス処理サブシステム420と、モニタやプリンタなどの出力デバイス440とを備える。グラフィックス処理サブシステム420は、プロセッサ422、メモリインタフェース424、フレームバッファ425、及び走査出力プロセッサ426を備える。プロセッサ422は、本明細書の図1〜3に示した動作のいずれか又は全てを実施するように動作可能なシェーダモジュール423を備える。フレームバッファ425は、各フレームのラスタライズ済み及びレイトレース済みフラグメント値を受け取るため、並びに、各フレームの合成画像をメモリインタフェース424及びリンク430(例えばDVIリンク)を介して出力デバイス440に読み出すために、プロセッサ422に動作可能に結合される。
[0022]特定の一実施形態では、シェーダモジュール423は、図1及び2のフラグメントシェーダプログラム100及び200をそれぞれ実施するための命令コードを記憶するように動作可能である。一実施形態では、フラグメントシェーディングモジュール423は、動作104〜108及び204〜208を実施する手段を備え、これらの動作では、フラグメントがラスタライズされるかレイトレースされるかが判定され、フラグメントがラスタライズされる場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値はフラグメントがレイトレーシング操作から除外されることを示し、フラグメントがレイトレースされる場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。フラグメントシェーディングモジュール423はさらに、動作206及び210を実施する手段を備え、これらの動作では、フラグメントに対するシェーディング操作が実施されて、フラグメントのラスタライズ済み色値が計算され、フラグメントのラスタライズ済み色値が第2のラスタライゼーションターゲットに記憶される。フラグメントシェーディングモジュール423はさらに、ヌル色値を第2のラスタライゼーションターゲットに記憶する手段を備える。フラグメントシェーディングモジュールはまた、図3に示し本明細書に述べたハイブリッドレイトレーシング動作302〜306を実施する手段を備えることもできる。
[0023]当業者には容易に理解されるように、述べたプロセス及び動作は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの実装形態の組合せにおいて、適宜実現することができる。加えて、述べたプロセス及び動作のいくつか又は全ては、コンピュータ可読媒体上にあるコンピュータ可読命令コードとして実現することもでき、この命令コードは、他のそのようなプログラム可能デバイスのコンピュータを制御して、意図された機能を実施させるように動作可能である。命令コードがあるコンピュータ可読媒体は様々な形をとることができ、例えば、取外し可能ディスク、揮発性又は不揮発性メモリ等、或いは、変調信号が印加された搬送波信号の形をとることができ、この変調信号は、述べた動作を実施するための命令に対応する。
[0024]本発明の特定の一実施形態では、メモリが、図1、2及び3に示した動作のいずれかを実施するための命令を記憶するように動作可能である。メモリは、例えば取外し可能ディスクや揮発性又は不揮発性の形の組込みメモリ等の、様々な形をとることができ、様々な異なるシステム、例えばコンピュータシステム、組込みプロセッサ、グラフィックスプロセッサ、又は、グラフィックスカードなどのグラフィックス処理サブシステムに、内蔵することができる。
[0025]用語「a」又は「an」は、それによって記述される1つ又は複数の機構を指すのに使用する。さらに、用語「結合された(coupled)」又は「接続された(connected)」は、直接に、或いは1つ又は複数の介在構造又は物質を介して、相互と通信する機構を指す。方法フローチャート中で言及した動作及びアクションのシーケンスは例であり、動作及びアクションは異なるシーケンスで実施してもよく、さらに、2つ又はそれ以上の動作及びアクションを同時に実施してもよい。特許請求の範囲に含まれる参照指示(もしあれば)は、特許請求される特徴の例示的な一実施形態を指す働きをし、特許請求される特徴は、参照指示の指す特定の実施形態に限定されない。特許請求される特徴の範囲は、参照指示がそこにないかのように、請求項の言葉遣いによって定義される範囲とする。本明細書で言及するあらゆる刊行物、特許、及び他の文書は、その全体が参照によって組み込まれる。このような組み込まれるいずれかの文書と、この文書との間で一致しない用法がある限りにおいては、この文書における用法が制するものとする。
[0026]本発明に関する以上の例示的な実施形態は、当業者が本発明を実施できるよう十分に詳細に述べたものであり、実施形態は組み合わせてもよいことを理解されたい。述べた実施形態は、本発明の原理及びその実際の適用を最もよく説明して、それにより他の当業者が、企図される特定の使用に適するように様々な実施形態で様々な修正を加えて本発明を最もよく利用できるようにするために、選択されたものである。本発明の範囲は、本明細書に添付した特許請求の範囲によってのみ定義されるものとする。
400 システム
420 グラフィックス処理サブシステム
422 プロセッサ
423 シェーダモジュール、フラグメントシェーディングモジュール
424 メモリインタフェース
425 フレームバッファ
426 走査出力プロセッサ
430 リンク
440 出力デバイス

Claims (21)

  1. フラグメントシェーディングを行うための方法であって、
    フラグメントがラスタライズされるかレイトレースされるかを判定するステップと、
    前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値をラスタライゼーションターゲットに記憶するステップであり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、ステップと、
    前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子をラスタライゼーションターゲットに記憶するステップと
    を含む方法。
  2. 前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第1のラスタライゼーションターゲットを含み、
    当該方法が、さらに、
    前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算するステップと、
    前記フラグメントの前記ラスタライズ済み色値を第2のラスタライゼーションターゲットに記憶するステップと
    を含む、請求項1に記載の方法。
  3. 前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第1のラスタライゼーションターゲットを含み、
    当該方法が、さらに、ヌル色値を第2のラスタライゼーションターゲットに記憶するステップを含む、請求項1に記載の方法。
  4. 前記第1のラスタライゼーションターゲットに照会するステップと、
    前記第1のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外するステップと
    をさらに含む、請求項2に記載の方法。
  5. 前記第1のラスタライゼーションターゲットに照会するステップと、
    前記フラグメントのレイトレース済み色値を計算するステップと
    をさらに含む、請求項3に記載の方法。
  6. 前記フラグメントのレイトレース済み色値を計算するステップは、前記第2のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の1次レイのためのデータとして使用するステップを含む、請求項5に記載の方法。
  7. レイトレースされる第2のフラグメントに対して、
    前記第2のフラグメントのプリミティブ識別子を第3のラスタライゼーションターゲットに記憶する動作、
    ヌル色値を第4のラスタライゼーションターゲットに記憶する動作、及び
    前記第2のフラグメントのレイトレース済み色値を計算する動作を実施するステップと、
    前記第1のフラグメントと前記第2のフラグメントとを結合して合成画像を得るステップと
    をさらに含む、請求項2に記載の方法。
  8. フラグメントシェーディングを実施するための命令を実行するように動作可能な、コンピュータ可読媒体上にあるコンピュータプログラム製品であって、
    フラグメントがラスタライズされるかレイトレースされるかを判定するための命令コードと、
    前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値を第1のラスタライゼーションターゲットに記憶するための命令コードであり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、命令コードと、
    前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子を第1のラスタライゼーションターゲットに記憶するための命令コードと
    を備えるコンピュータプログラム製品。
  9. 前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第1のラスタライゼーションターゲットを含み、
    当該コンピュータプログラム製品が、さらに、
    前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算するための命令コードと、
    前記フラグメントの前記ラスタライズ済み色値を第2のラスタライゼーションターゲットに記憶するための命令コードと
    を備える、請求項8に記載のコンピュータプログラム製品。
  10. 前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第1のラスタライゼーションターゲットを含み、
    コンピュータプログラム製品が、さらに、ヌル色値を第2のラスタライゼーションターゲットに記憶するための命令コードを備える、請求項8に記載のコンピュータプログラム製品。
  11. 前記第1のラスタライゼーションターゲットに照会するための命令コードと、
    前記第1のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外するための命令コードと
    をさらに備える、請求項9に記載のコンピュータプログラム製品。
  12. 前記第1のラスタライゼーションターゲットに照会するための命令コードと、
    前記フラグメントのレイトレース済み色値を計算するための命令コードと
    をさらに備える、請求項10に記載のコンピュータプログラム製品。
  13. 前記フラグメントのレイトレース済み色値を計算するための前記命令コードが、前記第2のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の1次レイのためのデータとして使用するための命令コードを含む、請求項12に記載のコンピュータプログラム製品。
  14. レイトレースされる第2のフラグメントに対して、
    前記第2のフラグメントのプリミティブ識別子を第3のラスタライゼーションターゲットに記憶する動作、
    ヌル色値を第4のラスタライゼーションターゲットに記憶する動作、及び
    前記第2のフラグメントのレイトレース済み色値を計算する動作を実施するための命令コードと、
    前記第1のフラグメントと前記第2のフラグメントとを結合して合成画像を得るための命令コードと
    をさらに備える、請求項9に記載のコンピュータプログラム製品。
  15. フラグメントがラスタライズされるかレイトレースされるかを判定する手段と、
    前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値をラスタライゼーションターゲットに記憶する手段であり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、手段と、
    前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子をラスタライゼーションターゲットに記憶する手段と
    を備えるフラグメントシェーディングモジュール。
  16. 前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第1のラスタライゼーションターゲットを含み、
    当該フラグメントシェーディングモジュールが、さらに、
    前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算する手段と、
    前記フラグメントの前記ラスタライズ済み色値を第2のラスタライゼーションターゲットに記憶する手段と
    を備える、請求項15に記載のフラグメントシェーディングモジュール。
  17. 前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第1のラスタライゼーションターゲットを含み、
    当該フラグメントシェーディングモジュールが、さらに、ヌル色値を第2のラスタライゼーションターゲットに記憶する手段を備える、請求項15に記載のフラグメントシェーディングモジュール。
  18. 前記第1のラスタライゼーションターゲットに照会する手段と、
    前記第1のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外する手段と
    をさらに備える、請求項16に記載のフラグメントシェーディングモジュール。
  19. 前記第1のラスタライゼーションターゲットに照会する手段と、
    前記フラグメントのレイトレース済み色値を計算する手段と
    をさらに備える、請求項17に記載のフラグメントシェーディングモジュール。
  20. 前記フラグメントのレイトレース済み色値を計算する前記手段が、前記第2のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の1次レイのためのデータとして使用する手段を含む、請求項19に記載のフラグメントシェーディングモジュール。
  21. レイトレースされる第2のフラグメントに対して、
    前記第2のフラグメントのプリミティブ識別子を第3のラスタライゼーションターゲットに記憶する手段、
    ヌル色値を第4のラスタライゼーションターゲットに記憶する手段、及び
    前記第2のフラグメントのレイトレース済み色値を計算する手段と、
    前記第1のフラグメントと前記第2のフラグメントとを結合して合成画像を得る手段とをさらに備える、請求項16に記載のフラグメントシェーディングモジュール。
JP2009189947A 2008-09-26 2009-08-19 ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及び操作方法 Active JP4877636B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/238,661 US8379022B2 (en) 2008-09-26 2008-09-26 Fragment shader for a hybrid raytracing system and method of operation
US12/238,661 2008-09-26

Publications (2)

Publication Number Publication Date
JP2010092462A true JP2010092462A (ja) 2010-04-22
JP4877636B2 JP4877636B2 (ja) 2012-02-15

Family

ID=42048690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009189947A Active JP4877636B2 (ja) 2008-09-26 2009-08-19 ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及び操作方法

Country Status (5)

Country Link
US (1) US8379022B2 (ja)
JP (1) JP4877636B2 (ja)
KR (1) KR101082215B1 (ja)
CN (1) CN101685548B (ja)
DE (1) DE102009037288A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022201970A1 (ja) * 2021-03-24 2022-09-29 ソニーグループ株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8248401B2 (en) * 2009-03-19 2012-08-21 International Business Machines Corporation Accelerated data structure optimization based upon view orientation
US8248412B2 (en) * 2009-03-19 2012-08-21 International Business Machines Corporation Physical rendering with textured bounding volume primitive mapping
US9292965B2 (en) * 2009-03-19 2016-03-22 International Business Machines Corporation Accelerated data structure positioning based upon view orientation
KR101266360B1 (ko) * 2009-08-24 2013-05-22 한국전자통신연구원 전역조명을 지원하는 그래픽 처리 장치 및 이를 이용한 그래픽 처리 방법
US9117254B2 (en) * 2012-07-24 2015-08-25 Nvidia Corporation System, method, and computer program product for performing ray tracing
US10186070B2 (en) 2012-11-02 2019-01-22 Imagination Technologies Limited On demand geometry and acceleration structure creation
US9495721B2 (en) * 2012-12-21 2016-11-15 Nvidia Corporation Efficient super-sampling with per-pixel shader threads
US9607426B1 (en) 2013-12-20 2017-03-28 Imagination Technologies Limited Asynchronous and concurrent ray tracing and rasterization rendering processes
US9697640B2 (en) * 2014-04-21 2017-07-04 Qualcomm Incorporated Start node determination for tree traversal in ray tracing applications
KR102224845B1 (ko) 2014-07-22 2021-03-08 삼성전자주식회사 하이브리드 렌더링 방법 및 장치
KR102244619B1 (ko) * 2014-09-30 2021-04-26 삼성전자 주식회사 가속 구조를 생성 및 탐색하는 방법
KR20160047317A (ko) * 2014-10-22 2016-05-02 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
KR102397001B1 (ko) * 2015-06-02 2022-05-11 엘지전자 주식회사 그래픽 프로세서
US9773340B2 (en) * 2015-06-12 2017-09-26 Qualcomm Incorporated Rendering using ray tracing to generate a visibility stream
US10614614B2 (en) 2015-09-29 2020-04-07 Adshir Ltd. Path tracing system employing distributed accelerating structures
US11010956B2 (en) * 2015-12-09 2021-05-18 Imagination Technologies Limited Foveated rendering
US10565776B2 (en) 2015-12-12 2020-02-18 Adshir Ltd. Method for fast generation of path traced reflections on a semi-reflective surface
US12008704B2 (en) 2016-01-28 2024-06-11 Snap Inc. System for photo-realistic reflections in augmented reality
US10614612B2 (en) 2018-06-09 2020-04-07 Adshir Ltd. Fast path traced reflections for augmented reality
US9818221B2 (en) 2016-02-25 2017-11-14 Qualcomm Incorporated Start node determination for tree traversal for shadow rays in graphics processing
KR102853351B1 (ko) 2016-11-04 2025-08-29 삼성전자주식회사 가속 구조를 생성하는 방법 및 장치
US10559115B2 (en) * 2018-03-02 2020-02-11 Microsoft Technology Licensing, Llc Techniques for generating visualizations of ray tracing images
US10699468B2 (en) 2018-06-09 2020-06-30 Adshir Ltd. Method for non-planar specular reflections in hybrid ray tracing
US10580196B1 (en) * 2018-08-10 2020-03-03 Nvidia Corporation Method for continued bounding volume hierarchy traversal on intersection without shader intervention
US10754498B2 (en) 2018-12-07 2020-08-25 Amazon Technologies, Inc. Hybrid image rendering system
KR102151443B1 (ko) * 2019-04-11 2020-09-03 주식회사 실리콘아츠 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
US10853994B1 (en) 2019-05-23 2020-12-01 Nvidia Corporation Rendering scenes using a combination of raytracing and rasterization
US11017581B1 (en) * 2020-01-04 2021-05-25 Adshir Ltd. Method for constructing and traversing accelerating structures
US11321901B2 (en) * 2020-02-13 2022-05-03 Mediatek Inc. Hybrid rendering mechanism of a graphics pipeline and an effect engine
CN111340928B (zh) 2020-02-19 2022-05-03 杭州群核信息技术有限公司 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备
US11869117B2 (en) 2021-03-18 2024-01-09 Samsung Electronics Co., Ltd. Systems and methods of adaptive, variable-rate, hybrid ray tracing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020746A (ja) * 1998-06-29 2000-01-21 Sony Corp 画像処理装置および方法、並びに提供媒体
WO2007017391A1 (en) * 2005-08-11 2007-02-15 International Business Machines Corporation System and method for ray tracing with depth buffered display
WO2007070456A2 (en) * 2005-12-12 2007-06-21 Intel Corporation Method and apparatus for binary image classification and segmentation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2583664A1 (en) 2004-10-27 2006-05-11 Pacific Data Images Llc Volumetric shadows for computer animation
US7289119B2 (en) * 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US7973790B2 (en) * 2005-08-11 2011-07-05 Realtime Technology Ag Method for hybrid rasterization and raytracing with consistent programmable shading
KR20100132605A (ko) * 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020746A (ja) * 1998-06-29 2000-01-21 Sony Corp 画像処理装置および方法、並びに提供媒体
WO2007017391A1 (en) * 2005-08-11 2007-02-15 International Business Machines Corporation System and method for ray tracing with depth buffered display
WO2007070456A2 (en) * 2005-12-12 2007-06-21 Intel Corporation Method and apparatus for binary image classification and segmentation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022201970A1 (ja) * 2021-03-24 2022-09-29 ソニーグループ株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
US20100079457A1 (en) 2010-04-01
KR101082215B1 (ko) 2011-11-09
US8379022B2 (en) 2013-02-19
CN101685548A (zh) 2010-03-31
KR20100035622A (ko) 2010-04-05
DE102009037288A1 (de) 2010-05-06
CN101685548B (zh) 2012-11-21
JP4877636B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
JP4877636B2 (ja) ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及び操作方法
US8013857B2 (en) Method for hybrid rasterization and raytracing with consistent programmable shading
US8624894B2 (en) Apparatus and method of early pixel discarding in graphic processing unit
US10607400B2 (en) Graphics processing systems using a vertex shader to render plural images
Liktor et al. Decoupled deferred shading for hardware rasterization
US8063900B1 (en) GPU assisted 3D compositing
US9280845B2 (en) Optimized multi-pass rendering on tiled base architectures
US9761039B2 (en) Method and apparatus for hybrid rendering
EP3109830B1 (en) Apparatus and method for verifying fragment processing related data in graphics pipeline processing
TWI475513B (zh) 用於即時光度相依細分的方法和裝置
US8896599B2 (en) Image processing apparatus and method
KR101609266B1 (ko) 타일 기반의 랜더링 장치 및 방법
JP2018049603A (ja) グラフィックス処理システム及びグラフィックスプロセッサ
KR102282190B1 (ko) 렌더링 장치 및 방법
US9836808B2 (en) Apparatus and method for verifying image data comprising mapped texture image data
US10432914B2 (en) Graphics processing systems and graphics processors
CN105551075A (zh) 混合渲染设备和方法
KR20150060026A (ko) 이전 커맨드 정보를 이용하여 현재 커맨드를 처리하는 방법 및 장치.
US20140160124A1 (en) Visible polygon data structure and method of use thereof
Marrs et al. View-warped Multi-view Soft Shadows for Local Area Lights
TW202512105A (zh) 用於紋理空間著色的取樣器回饋
TW202512106A (zh) 用於紋理空間著色的切割預言機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4877636

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250