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 顶点格式,则应用转换时第三个顶点组件假定为零。
如果 ColumnMajorTransform3x4 为 NULL,则不会转换顶点。 使用 ColumnMajorTransform3x4 可能会导致加速结构生成的计算和/或内存需求增加。
指向的内存必须处于 资源状态 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE。
IndexFormat
DXGI_FORMAT,表示 IndexBuffer 中索引的格式。 此值必须为下列值之一:
- IndexBuffer 为 NULL) 时DXGI_FORMAT_UNKNOWN (
- DXGI_FORMAT_R32_UINT
- DXGI_FORMAT_R16_UINT
VertexFormat
DXGI_FORMAT,表示顶点的格式 (顶点在 VertexBuffer 中的位置) 。 此值必须为下列值之一:
- DXGI_FORMAT_R32G32_FLOAT (第三个组件假定为 0)
- DXGI_FORMAT_R32G32B32_FLOAT
- DXGI_FORMAT_R16G16_FLOAT (第三个组件假定为 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 |