TraceRay 関数
アクセラレーション構造体のヒットを検索するレイを送信します。
構文
この組み込み関数定義は、次の関数テンプレートと同じです。
Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
uint RayFlags,
uint InstanceInclusionMask,
uint RayContributionToHitGroupIndex,
uint MultiplierForGeometryContributionToHitGroupIndex,
uint MissShaderIndex,
RayDesc Ray,
inout payload_t Payload);
パラメーター
AccelerationStructure
使用する最上位レベルの加速度構造。 NULL アクセラレーション構造体を指定すると、ミスが強制されます。
RayFlags
ray_flag値の有効な組み合わせ。 定義済みのレイ フラグのみがシステムによって伝達されます。つまり、 RayFlags シェーダーの組み込みに表示されます。
InstanceInclusionMask
符号なし整数。下位 8 ビットは、各インスタンスの InstanceMask に基づいて geometry インスタンスを含めたり拒否したりするために使用されます。 次に例を示します。
if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }
RayContributionToHitGroupIndex
ヒット グループのインデックス作成のためにシェーダー テーブル内のアドレス指定計算に追加するオフセットを指定する符号なし整数。 この値の下位 4 ビットのみが使用されます。
MultiplierForGeometryContributionToHitGroupIndex
GeometryContributionToHitGroupIndex で乗算するストライドを指定する符号なし整数。これは、ジオメトリがアプリによって下位レベルの加速度構造に提供された 0 ベースのインデックスに過ぎません。 この乗数値の下位 16 ビットのみが使用されます。
MissShaderIndex
シェーダー テーブル内のミス シェーダーのインデックスを指定する符号なし整数。
Ray
トレースするレイを表す RayDesc 。
Payload
レイトレーシング中に呼び出されたシェーダーによる入力と出力の両方について、ユーザー定義のレイ ペイロードにアクセスしました。 TraceRay が完了すると、呼び出し元もペイロードにアクセスできます。
戻り値
void
解説
この関数は、次のレイトレーシング シェーダーの種類から呼び出すことができます。
関連項目