次の方法で共有


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

行メジャー レイアウトの 3x4 アフィン変換行列のアドレス。アクセラレーション構造の構築中に VertexBuffer の頂点に適用されます。 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 Version 1809
Header d3d12umddi.h