Skip to main content
レイトレーシング ジオメトリとして使用されるトライアングルのセットを記述します。この構造体で参照されるジオメトリは常にトライアングル リスト形式であり、インデックス付きまたはインデックスなしです。トライアングル ストリップはサポートされません。

構文

メンバー

Transform3x4
型: D3D12_GPU_VIRTUAL_ADDRESS
アクセラレーション構造ビルド中に VertexBuffer 内の頂点に適用される、行優先レイアウトの 3x4 アフィン変換行列のアドレス。VertexBuffer の内容は変更されません。2D 頂点形式が使用される場合、3 番目の頂点コンポーネントは 0 と見なされて変換が適用されます。 Transform3x4 が NULL の場合、頂点は変換されません。Transform3x4 を使用すると、アクセラレーション構造ビルドの計算量やメモリ要件が増加する可能性があります。 指しているメモリは D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状態でなければなりません。アドレスは、D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT で定義されているとおり、16 バイトにアラインされている必要があります。 IndexFormat
型: DXGI_FORMAT
IndexBuffer 内のインデックスの形式。次のいずれかである必要があります。
  • DXGI_FORMAT_UNKNOWN - IndexBuffer が NULL の場合
  • DXGI_FORMAT_R32_UINT
  • DXGI_FORMAT_R16_UINT
VertexFormat
型: DXGI_FORMAT
VertexBuffer 内の頂点の形式。次のいずれかである必要があります。
  • DXGI_FORMAT_R32G32_FLOAT - 3 番目のコンポーネントは 0 と見なされます
  • DXGI_FORMAT_R32G32B32_FLOAT
  • DXGI_FORMAT_R16G16_FLOAT - 3 番目のコンポーネントは 0 と見なされます
  • DXGI_FORMAT_R16G16B16A16_FLOAT - A16 コンポーネントは無視され、そこには他のデータをパックできます (例: 頂点ストライドを 6 バイトに設定するなど)。
  • DXGI_FORMAT_R16G16_SNORM - 3 番目のコンポーネントは 0 と見なされます
  • DXGI_FORMAT_R16G16B16A16_SNORM - A16 コンポーネントは無視され、そこには他のデータをパックできます (例: 頂点ストライドを 6 バイトに設定するなど)。
Tier 1.1 デバイスは、次の追加の形式をサポートします。
  • DXGI_FORMAT_R16G16B16A16_UNORM - A16 コンポーネントは無視され、そこには他のデータをパックできます (例: 頂点ストライドを 6 バイトに設定するなど)
  • DXGI_FORMAT_R16G16_UNORM - 3 番目のコンポーネントは 0 と見なされます
  • DXGI_FORMAT_R10G10B10A2_UNORM - A2 コンポーネントは無視され、ストライドは 4 バイトでなければなりません
  • DXGI_FORMAT_R8G8B8A8_UNORM - A8 コンポーネントは無視され、そこには他のデータをパックできます (例: 頂点ストライドを 3 バイトに設定するなど)
  • DXGI_FORMAT_R8G8_UNORM - 3 番目のコンポーネントは 0 と見なされます
  • DXGI_FORMAT_R8G8B8A8_SNORM - A8 コンポーネントは無視され、そこには他のデータをパックできます (例: 頂点ストライドを 3 バイトに設定するなど)
  • DXGI_FORMAT_R8G8_SNORM - 3 番目のコンポーネントは 0 と見なされます
IndexCount
型: UINT
IndexBuffer 内のインデックスの数。IndexBuffer が NULL の場合は 0 でなければなりません。 VertexCount
型: UINT
VertexBuffer 内の頂点の数。 IndexBuffer
型: D3D12_GPU_VIRTUAL_ADDRESS
頂点インデックスの配列。NULL の場合、トライアングルはインデックスなしです。グラフィックスと同様に、アドレスは IndexFormat のサイズにアラインされている必要があります。 指しているメモリは D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状態でなければなりません。アプリがグラフィックス入力アセンブラーとレイトレーシング アクセラレーション構造ビルド入力の間でインデックス バッファー入力を共有したい場合、常にリソースを読み取り状態の組み合わせに同時に置くことができることに注意してください (例: D3D12_RESOURCE_STATE_INDEX_BUFFER | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE)。 VertexBuffer
型: D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
ストライドを含む頂点の配列。アドレスとストライドのアラインメントはコンポーネント サイズの倍数でなければならないため、32 ビット コンポーネントの形式では 4 バイト、16 ビット コンポーネントの形式では 2 バイトです。グラフィックスとは異なり、ストライドには制約はありません (値の下位 32 ビットのみが使用されるということ以外は。フィールドが UINT64 であるのは、隣接するフィールドがどこでも綺麗に/明確にアラインされるようにするためです)。各頂点位置はストライド範囲の開始アドレスにあることが期待され、余分な領域はアクセラレーション構造ビルドで無視されます。この余分な領域には頂点属性などの他のアプリ データが含まれる場合があり、そのデータが頂点バッファーにインターリーブされているか他の場所にあるかに関わらず、アプリはシェーダー内で手動で取得する責任があります。 指しているメモリは D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状態でなければなりません。アプリがグラフィックス入力アセンブラーとレイトレーシング アクセラレーション構造ビルド入力の間で頂点バッファー入力を共有したい場合、常にリソースを読み取り状態の組み合わせに同時に置くことができることに注意してください (例: D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE)。

要件

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