Share via


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

解説

この関数は、次のレイトレーシング シェーダーの種類から呼び出すことができます。

関連項目

Direct3D 12 レイトレーシング HLSL リファレンス