(57)【要約】      （修正有）【課題】ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ及び操作方法を提供する。【解決手段】フラグメントがラスタライズされるかレイトレースされるかを判定することを含む。フラグメントがラスタライズされると判定された場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値は、フラグメントがレイトレーシング操作から除外されることを示す。フラグメントがレイトレースされると判定された場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。【選択図】図１
2010092462.tif 000002
【特許請求の範囲】
【請求項１】
フラグメントシェーディングを行うための方法であって、
フラグメントがラスタライズされるかレイトレースされるかを判定するステップと、
前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値をラスタライゼーションターゲットに記憶するステップであり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、ステップと、
前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子をラスタライゼーションターゲットに記憶するステップと
を含む方法。
【請求項２】
前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第１のラスタライゼーションターゲットを含み、
当該方法が、さらに、
前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算するステップと、
前記フラグメントの前記ラスタライズ済み色値を第２のラスタライゼーションターゲットに記憶するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第１のラスタライゼーションターゲットを含み、
当該方法が、さらに、ヌル色値を第２のラスタライゼーションターゲットに記憶するステップを含む、請求項１に記載の方法。
【請求項４】
前記第１のラスタライゼーションターゲットに照会するステップと、
前記第１のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外するステップと
をさらに含む、請求項２に記載の方法。
【請求項５】
前記第１のラスタライゼーションターゲットに照会するステップと、
前記フラグメントのレイトレース済み色値を計算するステップと
をさらに含む、請求項３に記載の方法。
【請求項６】
前記フラグメントのレイトレース済み色値を計算するステップは、前記第２のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の１次レイのためのデータとして使用するステップを含む、請求項５に記載の方法。
【請求項７】
レイトレースされる第２のフラグメントに対して、
前記第２のフラグメントのプリミティブ識別子を第３のラスタライゼーションターゲットに記憶する動作、
ヌル色値を第４のラスタライゼーションターゲットに記憶する動作、及び
前記第２のフラグメントのレイトレース済み色値を計算する動作を実施するステップと、
前記第１のフラグメントと前記第２のフラグメントとを結合して合成画像を得るステップと
をさらに含む、請求項２に記載の方法。
【請求項８】
フラグメントシェーディングを実施するための命令を実行するように動作可能な、コンピュータ可読媒体上にあるコンピュータプログラム製品であって、
フラグメントがラスタライズされるかレイトレースされるかを判定するための命令コードと、
前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値を第１のラスタライゼーションターゲットに記憶するための命令コードであり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、命令コードと、
前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子を第１のラスタライゼーションターゲットに記憶するための命令コードと
を備えるコンピュータプログラム製品。
【請求項９】
前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第１のラスタライゼーションターゲットを含み、
当該コンピュータプログラム製品が、さらに、
前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算するための命令コードと、
前記フラグメントの前記ラスタライズ済み色値を第２のラスタライゼーションターゲットに記憶するための命令コードと
を備える、請求項８に記載のコンピュータプログラム製品。
【請求項１０】
前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第１のラスタライゼーションターゲットを含み、
コンピュータプログラム製品が、さらに、ヌル色値を第２のラスタライゼーションターゲットに記憶するための命令コードを備える、請求項８に記載のコンピュータプログラム製品。
【請求項１１】
前記第１のラスタライゼーションターゲットに照会するための命令コードと、
前記第１のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外するための命令コードと
をさらに備える、請求項９に記載のコンピュータプログラム製品。
【請求項１２】
前記第１のラスタライゼーションターゲットに照会するための命令コードと、
前記フラグメントのレイトレース済み色値を計算するための命令コードと
をさらに備える、請求項１０に記載のコンピュータプログラム製品。
【請求項１３】
前記フラグメントのレイトレース済み色値を計算するための前記命令コードが、前記第２のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の１次レイのためのデータとして使用するための命令コードを含む、請求項１２に記載のコンピュータプログラム製品。
【請求項１４】
レイトレースされる第２のフラグメントに対して、
前記第２のフラグメントのプリミティブ識別子を第３のラスタライゼーションターゲットに記憶する動作、
ヌル色値を第４のラスタライゼーションターゲットに記憶する動作、及び
前記第２のフラグメントのレイトレース済み色値を計算する動作を実施するための命令コードと、
前記第１のフラグメントと前記第２のフラグメントとを結合して合成画像を得るための命令コードと
をさらに備える、請求項９に記載のコンピュータプログラム製品。
【請求項１５】
フラグメントがラスタライズされるかレイトレースされるかを判定する手段と、
前記フラグメントがラスタライズされる場合に、前記フラグメントについての所定値をラスタライゼーションターゲットに記憶する手段であり、前記所定値が、前記フラグメントがレイトレーシング操作から除外されることを示すものである、手段と、
前記フラグメントがレイトレースされる場合に、前記フラグメントのプリミティブ識別子をラスタライゼーションターゲットに記憶する手段と
を備えるフラグメントシェーディングモジュール。
【請求項１６】
前記フラグメントがラスタライズされることになり、それにより前記ラスタライゼーションターゲットが、前記所定値を記憶する第１のラスタライゼーションターゲットを含み、
当該フラグメントシェーディングモジュールが、さらに、
前記フラグメントに対してシェーディング操作を実施して、前記フラグメントのラスタライズ済み色値を計算する手段と、
前記フラグメントの前記ラスタライズ済み色値を第２のラスタライゼーションターゲットに記憶する手段と
を備える、請求項１５に記載のフラグメントシェーディングモジュール。
【請求項１７】
前記フラグメントがレイトレースされることになり、それにより前記ラスタライゼーションターゲットが、前記フラグメントの前記プリミティブ識別子を記憶する第１のラスタライゼーションターゲットを含み、
当該フラグメントシェーディングモジュールが、さらに、ヌル色値を第２のラスタライゼーションターゲットに記憶する手段を備える、請求項１５に記載のフラグメントシェーディングモジュール。
【請求項１８】
前記第１のラスタライゼーションターゲットに照会する手段と、
前記第１のラスタライゼーションターゲットに記憶された前記所定値に基づいて前記フラグメントをレイトレーシング操作から除外する手段と
をさらに備える、請求項１６に記載のフラグメントシェーディングモジュール。
【請求項１９】
前記第１のラスタライゼーションターゲットに照会する手段と、
前記フラグメントのレイトレース済み色値を計算する手段と
をさらに備える、請求項１７に記載のフラグメントシェーディングモジュール。
【請求項２０】
前記フラグメントのレイトレース済み色値を計算する前記手段が、前記第２のラスタライゼーションターゲットに記憶された前記フラグメントの前記プリミティブ識別子を、レイトレーシング操作の１次レイのためのデータとして使用する手段を含む、請求項１９に記載のフラグメントシェーディングモジュール。
【請求項２１】
レイトレースされる第２のフラグメントに対して、
前記第２のフラグメントのプリミティブ識別子を第３のラスタライゼーションターゲットに記憶する手段、
ヌル色値を第４のラスタライゼーションターゲットに記憶する手段、及び
前記第２のフラグメントのレイトレース済み色値を計算する手段と、
前記第１のフラグメントと前記第２のフラグメントとを結合して合成画像を得る手段とをさらに備える、請求項１６に記載のフラグメントシェーディングモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、ハイブリッドレイトレーシング操作に関し、より詳細には、ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ、及びその操作方法に関する。
【背景技術】
【０００２】
[0002]ハイブリッドレイトレーシングは、ラスタライゼーションとレイトレーシングとの結合プロセスとして当技術分野で知られている。最初に、どんな反射又は屈折表面も含まないフラグメント、例えばピクセルが、ラスタライズされる。その後、反射又は屈折表面を含むピクセルに対して、レイトレーシング操作が実行される。レイトレーシング操作では、１次レイは通常はスキップされ、交差した表面点から２次レイが生成され、これを使用してレンダリング画像の反射又は屈折が計算される。ラスタライズ及びレイトレースされた画像は、ブレンド又はマージされて、合成画像が形成される。
【０００３】
[0003]最初のラスタライゼーションプロセスでは、２つのラスタライゼーション操作が実施される。第１の操作では、レイトレースされないピクセルがラスタライズされる。第２の操作では、ピクセルのプリミティブ識別子がラスタライズされる。この２ステップのラスタライゼーションプロセスは、ラスタライズされた画像の生成、及び合成画像全体のレンダリングを遅延させる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]したがって、ハイブリッドレイトレーシングシステムにおけるラスタライゼーション遅延を低減するためのシステム及び方法が必要とされている。
【課題を解決するための手段】
【０００５】
[0005]ハイブリッドレイトレーシングシステムのためのフラグメントシェーダ及び操作方法が提供される。この方法は、フラグメントがラスタライズされるかレイトレースされるかを判定することを含む。フラグメントがラスタライズされると判定された場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値は、フラグメントがレイトレーシング操作から除外されることを示す。フラグメントがレイトレースされると判定された場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。
【０００６】
[0006]本発明のこれら及び他の特徴は、後続の図面、及び例示的な実施形態の詳細な説明に鑑みれば、よりよく理解されるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態による例示的なフラグメントシェーディングプロセスを示す図である。
【図２】本発明の一実施形態による、図１のフラグメントシェーディングプロセスを組み込む例示的なフラグメントシェーディングプロセスを示す図である。
【図３】本発明の一実施形態による、図１及び２のフラグメントシェーディングプロセスを組み込む例示的なハイブリッドレイトレーシング方法を示す図である。
【図４】本発明による、図１〜３の方法が利用される例示的なシステムを示す図である。
【発明を実施するための形態】
【０００８】
[0008]図１に、本発明の一実施形態による例示的なフラグメントシェーディングプロセス１００を示す。この方法プロセスは、フラグメント（例えばピクセル）が、ラスタライズされるか、或いは、１つ又は複数の１次レイがそれに交差する（本明細書で「レイトレースされる」と呼ぶプロセス）かを判定し、この判定に基づいて相応に後続の処理をフラグメントに適用することを含む。本明細書において、用語「ラスタライズされる」は、色の値又はベクトルをラスタフォーマットに変換する任意の技法を指す。さらに本明細書では、用語「レイトレーシング操作」は、ハイブリッドレイトレーシングの分野で周知のように、フラグメントに１つ又は複数の１次レイが交差することを伴うレイトレーシング操作を指す。
【０００９】
[0009]１０２でフラグメント処理が開始し、１０４で、フラグメントがラスタライズされるかレイトレースされるかが判定される。フラグメントがラスタライゼーション操作に含まれると判定された場合は、１０６で、所定値が生成され、ラスタライゼーションターゲットに記憶される。この所定値は、フラグメントがレイトレースされないことを示す。一実施形態では、動作１０６によって生成される所定値は値−１だが、本発明により、任意の値又は指示を使用して、フラグメントがレイトレーシング操作から除外されることを示すことができる。特定の一実施形態の動作１０６では、真と偽のいずれかの状態を有する「レイトレース属性」がフラグメントに割り当てられ、偽の状態は、フラグメントをレイトレースされないものとして識別する所定値（例えば−１）によって示される。
【００１０】
[0010]１０４でフラグメントがレイトレースされると判定された場合は、１０８で、フラグメントのプリミティブ識別子が、フラグメントに対するラスタライゼーションターゲットに記憶される。例えば、フラグメントが三角形プリミティブを含む場合、プロセス１０８は、フラグメントに対するラスタライゼーションターゲット（例えば三角形ＩＤバッファ）に三角形ＩＤを記憶することを含む。本発明により、例えばポリゴン、球、線、点など、種々の幾何形状プリミティブがフラグメントに含まれてもよいこと、及び、このようなプリミティブの任意の識別子を、フラグメントに対応するラスタライゼーションターゲットに記憶することができることは、当業者なら理解するであろう。さらに、当技術分野で周知のように、１つ又は任意の数のフラグメントを結合してピクセルを形成することができることも、理解されるであろう。
【００１１】
[0011]１０４での判定は、ラスタライゼーション操作とレイトレーシング操作とを区別するための任意の技法を使用して行うことができる。例えば、フラグメントが反射又は屈折表面内にあると判定された場合、フラグメントはレイトレーシング操作に含まれると判定することができる。他の測定基準を、フラグメントがラスタライゼーション操作に含まれるかレイトレーシング操作に含まれるかの判定に適用してもよいことは、当業者なら理解するであろう。
【００１２】
[0012]図２に、本発明の一実施形態による、図１のフラグメントシェーディングプロセスを組み込む例示的なフラグメントシェーダプロセスを示す。動作２０２〜２０８は、図１の動作１０２〜１０８に対応する。２０２でフラグメント処理が開始し、２０４で、選択されたフラグメントがラスタライズされるかレイトレースされるかが判定される。フラグメントがラスタライゼーション操作に含まれると判定された場合は、２０６で、所定値が生成され、第１のラスタライゼーションターゲットに記憶される。この所定値は、フラグメントがレイトレースされないことを示す。２０４でフラグメントがレイトレースされると判定された場合は、２０８で、フラグメントのプリミティブ識別子が、フラグメントに対する第１のラスタライゼーションターゲットに記憶される。実際には、選択されたフラグメントがラスタライズもレイトレースもされないという第３の可能性も存在する。ラスタライゼーション中に、例えば、シェーダがフラグメントの廃棄を決定することがある。現在のプリミティブが、レイトレースされるものとしてマークされず、ラスタライゼーションのためにシェーダによって廃棄される場合、色値は不変のままである。プリミティブ識別子は、頂点属性として実現することができる。この場合、プリミティブごとのフラグメントシェーダでは、プリミティブ識別子は一様に指定することができる。別法として、ジオメトリシェーダでは、一連のプリミティブの第１のプリミティブ識別子が、一様に指定される。次いでジオメトリシェーダは、プリミティブごとに後続のプリミティブ識別子を生成することができる。
【００１３】
[0013]さらに例示的には、フラグメントがラスタライズされる条件では、方法２００はさらに動作２１０を含む。動作２１０では、選択されたフラグメントのためにシェーディング操作が呼び出され、それにより、フラグメントのラスタライズ済み色値が計算されて、フラグメントに対する第２のラスタライゼーションターゲット（例えば色バッファ）に記憶される。この動作に従って、任意のシェーディング操作を実施することができる。
【００１４】
[0014]さらに例示的には、フラグメントがレイトレースされる条件では、方法２００はさらに動作２１２を含む。動作２１２では、ヌル色空間値が、フラグメントに対する第２のラスタライゼーションターゲット（例えば色バッファ）に記憶される。特定の一実施形態では、ヌル色空間値は、ＲＧＢＡ（０，０，０，０）の色値、すなわち完全に透明な黒である。このような色空間値を選択することにより、ラスタライズ及びレイトレースされたフラグメントを合成して最終的なフレームを生成することが容易になる。というのは、ラスタライズされなかったフラグメント及びレイトレースされなかったフラグメントは黒い背景としてレンダリングされることになるからである。しかし、異なる合成方式に従って、異なるヌル色空間値（及び／又は異なる色空間フォーマット）を実現できることは、当業者なら理解するであろう。特定の一実施形態では、フラグメントシェーダ２００は、フラグメントに含まれるプリミティブごとに１度呼び出される。例えば、動作２０２〜２１２は、フラグメントシェーダ２００が割り当てられるピクセルに含まれるＮ個の三角形のそれぞれにつき、実施することができる。さらに例示的には、動作２０２〜２１２は、Ｎ個の三角形がこのフラグメントをカバーする場合に、各フラグメントにつきＮ回まで実施することができる。
【００１５】
[0015]理解されるであろうが、フラグメントのいくつかは、ハイブリッドレイトレーシング操作におけるラスタライゼーション用として選択されることになり、いくつかはレイトレーシング用として選択されることになる。したがって、第１のフラグメントがラスタライゼーション用として準備される一連の動作２０２、２０４、２０６、及び２１０を、第２のフラグメントがレイトレーシング用として準備される一連の動作２０２、２０４、２０８、及び２１２の前に（又は後で）実施することができる。このようにして、本明細書にさらに述べるように、複数のフラグメント（例えばフレーム内の全てのフラグメント）が、ハイブリッドレイトレーシング操作におけるラスタライゼーション又はレイトレーシングのために処理される。
【００１６】
[0016]図３に、本発明の一実施形態による、図１及び２のフラグメントシェーディングプロセスを組み込む例示的なハイブリッドレイトレーシング方法（又は「レイトレーサ」）を示す。この方法によれば、プリミティブのラスタライゼーションを利用して、可視の（すなわち最も近いニアプレーン）フラグメントを突き止め、シェーディングを実施してフラグメントの色値を計算する。レイトレーサ３００は、第１のレイトレーシングステップを省略している。というのは、後でさらに説明するように、レイトレーシングアルゴリズムに通常なら含まれる１次レイに対するトラバース操作がラスタライゼーションステップによって置き換わるからである。それ以上の全てのトラバースステップは、レイトレーサによって通常どおり行われる。
【００１７】
[0017]方法３００は、特定のフラグメントが、その色値について（動作２１０）又はフラグメントのプリミティブ識別子について（動作２０８）ラスタライズ済みである、方法２００の続きを表す。３０２で、フラグメントに照会して、フラグメントがレイトレースされるかどうかが判定される。特定の一実施形態では、一方又は両方のラスタライゼーションターゲットに照会して、ラスタライゼーションターゲットが前述のような「レイトレースされない」値を記憶しているかどうかが判定される。別の実施形態では、プリミティブ識別子があるかどうかラスタライゼーションターゲットが探索されるが、プリミティブ識別子があることは、フラグメントがレイトレースされることを示す。このプロセスの例示的な一実施形態では、「レイトレースされない」値の有無を検出するため又はプリミティブ識別子の有無を検出するための処理用として、フラグメントの三角形ＩＤバッファがレイトレーシングエンジンに供給される。
【００１８】
[0018]３０２での判定でフラグメントがレイトレースされない場合（例えばフラグメントについて「レイトレースなし」値が見られる）は、方法は３０４で終了する。３０２での判定でフラグメントがレイトレースされる場合（例えばフラグメントについてプリミティブ識別子が見られるか又は「レイトレースなし」値がないことにより）は、方法は３０６で継続し、レイトレーサは、交差及びシェーディング操作を実施する。さらに具体的には、普通ならレイトレーシング操作の一部として実施されるトラバース操作が省略される。というのは、動作２０８でこのデータが提供されるからであり、すなわち、プリミティブ識別子が、対象フラグメントに対するレイが交差するプリミティブを指定するからである。動作２０８によって提供されたデータを、レイトレーサ３００が使用して、幾何形状とのレイの交差を計算し、フラグメントのレイトレース済み色空間値を計算する。レイトレーシングのトラバース操作で（例えば１００００個の三角形を含む場面で）利用される対数探索と比較して、プロセス２０８は通常、かなり高速で動作して最も近いニアプレーンのフラグメントを識別することになるので、本発明の方法は、従来の方法に勝って、レンダリングにおける速度及び計算効率の向上をもたらす。
【００１９】
[0019]特定の一実施形態では、ハイブリッドレイトレーサ３００は、画像の可視フラグメントごとに１度呼び出される。このような場合、動作３０２〜３０８は、フラグメント単位で実施され、レイトレーシング済み色値（もしあれば、条件付き動作３０６ごとに）が、各フラグメントにつき１度計算される。さらに例示的には、動作２０４、２０６、及び２１０を呼び出して、上に定義したようなラスタライズ済み色空間値を有する第１のフラグメントを提供することができ、動作２０４、２０８、２１２、３０２、及び３０６を繰り返して、上に定義したようなレイトレース済み色値をそれぞれが有する第２のフラグメントを提供することができる。フラグメントを結合する（例えばブレンド、マージ、又は加算する）ことにより、２つのフラグメントの合成画像が得られる。ラスタライズもレイトレースもされないフラグメントは、背景色のまま、例えば例示的な一実施形態では完全に透明な黒のＲＧＢＡ（０，０，０，０）のままである。
【００２０】
[0020]図３からわかるように、ハイブリッドレイトレーサは、動作２１０でユーザのフラグメントシェーダプログラムを呼び出して実行するように動作可能であり、また、レイトレースされるフラグメントのプリミティブ識別子を提供するようにも動作可能である（動作２０８）。したがってユーザは、必要に応じて場面をラスタライズすることができ、その後、後続のレイトレーシング操作（動作３０６）のために三角形ＩＤバッファに照会することができる（動作３０２）。このようにして、ハイブリッドレイトレーサ３００は、両方のフラグメントタイプのトランスペアレントな処理をユーザに提供する。さらに、各フラグメントタイプのラスタライゼーションは、ラスタライズ済み色空間値フラグメントのための動作２０６及び２１０によって、或いはレイトレース済み色空間値フラグメントのための動作２０８及び２１２によって、１度だけ行われる。方法１００、２００、及び３００における動作はそれぞれ、任意の適切なプログラミング言語の実行可能命令として実現することができ、プログラミング言語の少数の例は、ＯｐｅｎＧＬシェーディング言語（ＧＬＳＬ）、Ｃｇシェーディング言語、ハイレベルシェーダ言語（ＨＬＳＬ）、又は、このような言語のそれぞれのコンパイラと共に使用されるコンピュートユニファイドデバイスアーキテクチャ（ＣＵＤＡ（商標））ＧＰＵプログラミング言語である。加えて、例示の動作は、ハードウェア又はファームウェアによって、例えば特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は他のそのようなデバイスによって実施することができる。
【００２１】
[0021]図４に、本発明による、図１〜３の方法が利用される例示的なシステム４００を示す。システム４００は、グラフィックス処理サブシステム４２０と、モニタやプリンタなどの出力デバイス４４０とを備える。グラフィックス処理サブシステム４２０は、プロセッサ４２２、メモリインタフェース４２４、フレームバッファ４２５、及び走査出力プロセッサ４２６を備える。プロセッサ４２２は、本明細書の図１〜３に示した動作のいずれか又は全てを実施するように動作可能なシェーダモジュール４２３を備える。フレームバッファ４２５は、各フレームのラスタライズ済み及びレイトレース済みフラグメント値を受け取るため、並びに、各フレームの合成画像をメモリインタフェース４２４及びリンク４３０（例えばＤＶＩリンク）を介して出力デバイス４４０に読み出すために、プロセッサ４２２に動作可能に結合される。
【００２２】
[0022]特定の一実施形態では、シェーダモジュール４２３は、図１及び２のフラグメントシェーダプログラム１００及び２００をそれぞれ実施するための命令コードを記憶するように動作可能である。一実施形態では、フラグメントシェーディングモジュール４２３は、動作１０４〜１０８及び２０４〜２０８を実施する手段を備え、これらの動作では、フラグメントがラスタライズされるかレイトレースされるかが判定され、フラグメントがラスタライズされる場合は、フラグメントについての所定値がラスタライゼーションターゲットに記憶され、この所定値はフラグメントがレイトレーシング操作から除外されることを示し、フラグメントがレイトレースされる場合は、フラグメントのプリミティブ識別子がラスタライゼーションターゲットに記憶される。フラグメントシェーディングモジュール４２３はさらに、動作２０６及び２１０を実施する手段を備え、これらの動作では、フラグメントに対するシェーディング操作が実施されて、フラグメントのラスタライズ済み色値が計算され、フラグメントのラスタライズ済み色値が第２のラスタライゼーションターゲットに記憶される。フラグメントシェーディングモジュール４２３はさらに、ヌル色値を第２のラスタライゼーションターゲットに記憶する手段を備える。フラグメントシェーディングモジュールはまた、図３に示し本明細書に述べたハイブリッドレイトレーシング動作３０２〜３０６を実施する手段を備えることもできる。
【００２３】
[0023]当業者には容易に理解されるように、述べたプロセス及び動作は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの実装形態の組合せにおいて、適宜実現することができる。加えて、述べたプロセス及び動作のいくつか又は全ては、コンピュータ可読媒体上にあるコンピュータ可読命令コードとして実現することもでき、この命令コードは、他のそのようなプログラム可能デバイスのコンピュータを制御して、意図された機能を実施させるように動作可能である。命令コードがあるコンピュータ可読媒体は様々な形をとることができ、例えば、取外し可能ディスク、揮発性又は不揮発性メモリ等、或いは、変調信号が印加された搬送波信号の形をとることができ、この変調信号は、述べた動作を実施するための命令に対応する。
【００２４】
[0024]本発明の特定の一実施形態では、メモリが、図１、２及び３に示した動作のいずれかを実施するための命令を記憶するように動作可能である。メモリは、例えば取外し可能ディスクや揮発性又は不揮発性の形の組込みメモリ等の、様々な形をとることができ、様々な異なるシステム、例えばコンピュータシステム、組込みプロセッサ、グラフィックスプロセッサ、又は、グラフィックスカードなどのグラフィックス処理サブシステムに、内蔵することができる。
【００２５】
[0025]用語「ａ」又は「ａｎ」は、それによって記述される１つ又は複数の機構を指すのに使用する。さらに、用語「結合された（ｃｏｕｐｌｅｄ）」又は「接続された（ｃｏｎｎｅｃｔｅｄ）」は、直接に、或いは１つ又は複数の介在構造又は物質を介して、相互と通信する機構を指す。方法フローチャート中で言及した動作及びアクションのシーケンスは例であり、動作及びアクションは異なるシーケンスで実施してもよく、さらに、２つ又はそれ以上の動作及びアクションを同時に実施してもよい。特許請求の範囲に含まれる参照指示（もしあれば）は、特許請求される特徴の例示的な一実施形態を指す働きをし、特許請求される特徴は、参照指示の指す特定の実施形態に限定されない。特許請求される特徴の範囲は、参照指示がそこにないかのように、請求項の言葉遣いによって定義される範囲とする。本明細書で言及するあらゆる刊行物、特許、及び他の文書は、その全体が参照によって組み込まれる。このような組み込まれるいずれかの文書と、この文書との間で一致しない用法がある限りにおいては、この文書における用法が制するものとする。
【００２６】
[0026]本発明に関する以上の例示的な実施形態は、当業者が本発明を実施できるよう十分に詳細に述べたものであり、実施形態は組み合わせてもよいことを理解されたい。述べた実施形態は、本発明の原理及びその実際の適用を最もよく説明して、それにより他の当業者が、企図される特定の使用に適するように様々な実施形態で様々な修正を加えて本発明を最もよく利用できるようにするために、選択されたものである。本発明の範囲は、本明細書に添付した特許請求の範囲によってのみ定義されるものとする。
【符号の説明】
【００２７】
４００  システム
４２０  グラフィックス処理サブシステム
４２２  プロセッサ
４２３  シェーダモジュール、フラグメントシェーディングモジュール
４２４  メモリインタフェース
４２５  フレームバッファ
４２６  走査出力プロセッサ
４３０  リンク
４４０  出力デバイス
【図１】
2010092462.tif 000003
【図２】
2010092462.tif 000004
【図３】
2010092462.tif 000005
【図４】
2010092462.tif 000006
【外国語明細書】
2010092462000001.pdf