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 |