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 顶点格式,则使用假定为零的第三个顶点组件应用转换。

如果 ColumnMajorTransform3x4 为 NULL,则不会转换顶点。 使用 ColumnMajorTransform3x4 可能会导致加速结构生成计算和/或内存需求增加。

指向的内存必须处于 资源状态 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE。

IndexFormat

一个 DXGI_FORMAT,表示 IndexBuffer中索引的格式。 此值必须是下列值之一:

  • DXGI_FORMAT_UNKNOWN(IndexBuffer 为 NULL 时)
  • DXGI_FORMAT_R32_UINT
  • DXGI_FORMAT_R16_UINT

VertexFormat

DXGI_FORMAT,表示 顶点(位置)中的顶点(位置)的格式。 此值必须是下列值之一:

  • DXGI_FORMAT_R32G32_FLOAT(假定第三个组件为 0)
  • DXGI_FORMAT_R32G32B32_FLOAT
  • DXGI_FORMAT_R16G16_FLOAT(假定第三个组件为 0)
  • DXGI_FORMAT_R16G16B16A16_FLOAT

IndexCount

IndexBuffer中的索引数。 如果 IndexBuffer 为 NULL,则必须为 0。

VertexCount

顶点Buffer中的顶点数(位置)。

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