Skip to main content
描述用作光线追踪几何体的一组三角形。此结构指向的几何体始终以三角形列表形式(有索引或无索引)存在。不支持三角形带。

语法

成员

Transform3x4
类型:D3D12_GPU_VIRTUAL_ADDRESS
行主序布局的 3x4 仿射变换矩阵的地址,在加速结构构建期间应用于 VertexBuffer 中的顶点。VertexBuffer 的内容不会被修改。如果使用 2D 顶点格式,则假设第三个顶点分量为零来应用变换。 如果 Transform3x4 为 NULL,则顶点将不会被变换。使用 Transform3x4 可能会导致加速结构构建的计算和/或内存要求增加。 指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状态。地址必须对齐到 16 字节,定义为 D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT IndexFormat
类型:DXGI_FORMAT
IndexBuffer 中索引的格式。必须为以下之一:
  • DXGI_FORMAT_UNKNOWN - 当 IndexBuffer 为 NULL 时
  • 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 - A16 分量被忽略,其他数据可以打包在那里,例如将顶点步长设置为 6 字节。
  • DXGI_FORMAT_R16G16_SNORM - 假设第三个分量为 0
  • DXGI_FORMAT_R16G16B16A16_SNORM - A16 分量被忽略,其他数据可以打包在那里,例如将顶点步长设置为 6 字节。
Tier 1.1 设备支持以下其他格式:
  • DXGI_FORMAT_R16G16B16A16_UNORM - A16 分量被忽略,其他数据可以打包在那里,例如将顶点步长设置为 6 字节
  • DXGI_FORMAT_R16G16_UNORM - 假设第三个分量为 0
  • DXGI_FORMAT_R10G10B10A2_UNORM - A2 分量被忽略,步长必须为 4 字节
  • DXGI_FORMAT_R8G8B8A8_UNORM - A8 分量被忽略,其他数据可以打包在那里,例如将顶点步长设置为 3 字节
  • DXGI_FORMAT_R8G8_UNORM - 假设第三个分量为 0
  • DXGI_FORMAT_R8G8B8A8_SNORM - A8 分量被忽略,其他数据可以打包在那里,例如将顶点步长设置为 3 字节
  • DXGI_FORMAT_R8G8_SNORM - 假设第三个分量为 0
IndexCount
类型:UINT
IndexBuffer 中索引的数量。如果 IndexBuffer 为 NULL,则必须为 0。 VertexCount
类型:UINT
VertexBuffer 中顶点的数量。 IndexBuffer
类型:D3D12_GPU_VIRTUAL_ADDRESS
顶点索引数组。如果为 NULL,则三角形无索引。与图形一样,地址必须对齐到 IndexFormat 的大小。 指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状态。请注意,如果应用希望在图形输入汇编器和光线追踪加速结构构建输入之间共享索引缓冲区输入,它始终可以将资源同时置于读取状态的组合中,例如 D3D12_RESOURCE_STATE_INDEX_BUFFER | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE VertexBuffer
类型:D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
包含步长的顶点数组。地址和步长的对齐必须是分量大小的倍数,因此对于具有 32 位分量的格式为 4 字节,对于具有 16 位分量的格式为 2 字节。与图形不同,除了值的低 32 位被使用之外(此字段为 UINT64 纯粹是为了使相邻字段在各处都干净/明显地对齐),对步长没有约束。每个顶点位置应位于步长范围的起始地址处,任何多余的空间在加速结构构建时都会被忽略。此多余空间可能包含其他应用数据(例如顶点属性),应用负责在着色器中手动获取,无论它是与顶点缓冲区交错还是在其他位置。 指向的内存必须处于 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 状态。请注意,如果应用希望在图形输入汇编器和光线追踪加速结构构建输入之间共享顶点缓冲区输入,它始终可以将资源同时置于读取状态的组合中,例如 D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE

要求

头文件: d3d12_xs.h
库: d3d12_xs.lib
支持的平台:XBOX Series 主机
最后修改于 2026年8月24日