Skip to main content
アクセラレーション構造ビルド プロセス中に GPU メモリで使用されるレイトレーシング アクセラレーション構造のインスタンスを記述します。

構文

メンバー

Transform
型: FLOAT[3][4]
インスタンスからワールドへの変換を表す、行優先レイアウトの 3x4 変換行列。実装は、すべてのジオメトリまたは AABB を変換するのではなく、レイを変換します。
Transform のレイアウトは、アフィン行列が通常メモリに格納される方法の転置です。4 つの 3 次ベクトルではなく、Transform は 3 つの 4 次ベクトルとしてレイアウトされます。
InstanceID
型: UINT
サポートされているシェーダー タイプで InstanceID 組み込み関数を使用してアクセスできる任意の 24 ビット値。 InstanceMask
型: UINT
インスタンスに割り当てられた 8 ビット マスク。レイごとにインスタンスのグループを含める/拒否するために使用できます。値が 0 の場合、インスタンスは決して含まれないため、通常はこれを何らかの非ゼロ値に設定する必要があります。詳細については、TraceRay 関数の InstanceInclusionMask パラメーターを参照してください。 InstanceContributionToHitGroupIndex
型: UINT
使用するヒット グループを選択するためにシェーダー テーブル インデックス作成に追加する、インスタンスごとの寄与を表す任意の 24 ビット値。 Flags
型: UINT
インスタンスに適用する D3D12_RAYTRACING_INSTANCE_FLAGS からのフラグを表す 8 ビット マスク。 AccelerationStructure
型: D3D12_GPU_VIRTUAL_ADDRESS
インスタンス化されているボトムレベル アクセラレーション構造のアドレス。アドレスは、D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT で定義されているとおり、256 バイトにアラインされている必要があります。ここで渡された既存のアクセラレーション構造は、既にそのようなアラインメントで配置されている必要があります。 指しているメモリは D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE 状態でなければなりません。

解説

この C++ 構造体定義は、まず CPU 上でインスタンス データを生成してから GPU にアップロードする場合に便利です。ただし、アプリケーションは同じレイアウトに従って GPU メモリに直接 (たとえばコンピュート シェーダーから) インスタンスの記述を生成することも自由にできます。

要件

ヘッダー: d3d12_xs.h
ライブラリ: d3d12_xs.lib
サポートされるプラットフォーム: XBOX Series 本体
最終更新日 2026年8月24日