在 Direct3D 12 中,D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC 是 D3D12_RAYTRACING_GEOMETRY_DESC 结构体中用于描述三角形几何体的嵌套结构。

以下是 D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC 结构的定义:
typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
  D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
  DXGI_FORMAT                IndexFormat;
  DXGI_FORMAT                VertexFormat;
  UINT                       IndexCount;
  UINT                       VertexCount;
  D3D12_RAYTRACING_GEOMETRY_TRIANGLES_FLAGS Flags;
} D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;

结构体成员的含义如下:

  •  Transform3x4: 一个 3x4 的变换矩阵的 GPU 虚拟地址,用于对三角形进行变换。


  •  IndexFormat: 枚举类型,表示索引的格式,可以是 DXGI_FORMAT_R16_UINT 或 DXGI_FORMAT_R32_UINT。


  •  VertexFormat: 枚举类型,表示顶点的格式。


  •  IndexCount: 索引的数量。


  •  VertexCount: 顶点的数量。


  •  Flags: 位掩码,用于指定三角形几何体的标志,可以是以下值之一或它们的组合:

  - D3D12_RAYTRACING_GEOMETRY_TRIANGLES_FLAG_NONE: 无标志。
  - D3D12_RAYTRACING_GEOMETRY_TRIANGLES_FLAG_OPAQUE: 表示几何体是不透明的。
  - D3D12_RAYTRACING_GEOMETRY_TRIANGLES_FLAG_USE_SINGLE_DEFORMER: 表示所有三角形共享单一的变换矩阵。

这个结构体是用于描述三角形几何体的子结构,通过这个子结构可以指定三角形的顶点、索引和变换等信息。在创建射线追踪的加速结构时,可以使用这个结构体的实例来描述三角形几何体。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25970/Win32 API/D3d12.h/D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC