次の方法で共有


D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054構造体 (d3d12umddi.h)

レイ トレーシング三角形ジオメトリについて説明します。

構文

typedef struct D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 {
  D3D12DDI_GPU_VIRTUAL_ADDRESS            ColumnMajorTransform3x4;
  DXGI_FORMAT                             IndexFormat;
  DXGI_FORMAT                             VertexFormat;
  UINT                                    IndexCount;
  UINT                                    VertexCount;
  D3D12DDI_GPU_VIRTUAL_ADDRESS            IndexBuffer;
  D3D12DDI_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
} D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054;

メンバーズ

ColumnMajorTransform3x4

アクセラレーション構造の構築中に VertexBuffer 内の頂点に適用される、行メジャー レイアウトの 3x4 アフィン変換行列のアドレス。 VertexBuffer の内容は変更されません。 2D 頂点形式を使用すると、3 番目の頂点コンポーネントが 0 であると見なされた変換が適用されます。

ColumnMajorTransform3x4 が NULL の場合、頂点は変換されません。 ColumnMajorTransform3x4 を使用すると、アクセラレーション構造ビルドの計算やメモリ要件が増加する可能性があります。

指すメモリは、リソース状態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE する必要があります。

IndexFormat

IndexBuffer 内のインデックスの形式表す DXGI_FORMAT。 この値は、次のいずれかである必要があります。

  • DXGI_FORMAT_UNKNOWN (IndexBuffer NULL の場合)
  • DXGI_FORMAT_R32_UINT
  • DXGI_FORMAT_R16_UINT

VertexFormat

VertexBuffer 内の頂点 (位置) の形式表す DXGI_FORMAT。 この値は、次のいずれかである必要があります。

  • DXGI_FORMAT_R32G32_FLOAT (3 番目のコンポーネントは 0 と想定)
  • DXGI_FORMAT_R32G32B32_FLOAT
  • DXGI_FORMAT_R16G16_FLOAT (3 番目のコンポーネントは 0 と想定)
  • DXGI_FORMAT_R16G16B16A16_FLOAT

IndexCount

IndexBuffer内のインデックスの数。 IndexBuffer NULL の場合は 0 にする必要があります。

VertexCount

VertexBuffer 内の頂点の数 (位置)します。

IndexBuffer

頂点インデックスの配列。 NULL の場合、三角形はインデックス付けされません。 アドレスは、IndexFormat のサイズ揃える必要があります。

指すメモリは、リソース状態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE する必要があります。

VertexBuffer

ストライドを含む頂点の配列。 アドレスとストライドのアラインメントは、コンポーネント サイズの倍数である必要があります。つまり、32 ビット コンポーネントを含む形式の場合は 4 バイト、16 ビット コンポーネントの場合は 2 バイトです。 ストライドに制約はありません (グラフィックスには制限があります)。値の下位 32 ビットがすべて使用される点を除きます。 つまり、フィールドは UINT64 であり、隣接するフィールドが明確かつ明らかにあらゆる場所に揃えるようにするためです。 各頂点の位置はストライド範囲の開始アドレスにあると予想され、余分なスペースはアクセラレーション構造の構築によって無視されます。 この余分な領域には、頂点属性などの他のアプリ データが含まれる場合があります。このデータは、頂点バッファーまたは他の場所でインターリーブされているかどうかにかかわらず、シェーダーでの手動フェッチをアプリが担当します。

指すメモリは、リソース状態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE する必要があります。

備考

この構造体が指すジオメトリは、常に三角形リスト (インデックス付きフォームまたはインデックスなしフォーム) にあります。 ストリップはサポートされていません。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809
ヘッダー d3d12umddi.h