在 Direct3D 12 中,D3D12_RAYTRACING_PIPELINE_CONFIG1 是一个结构体,用于配置射线追踪管线的一些属性。该结构体在 D3D12 SDK 版本 1.4 及之后的版本中引入。

以下是 D3D12_RAYTRACING_PIPELINE_CONFIG1 结构的定义:
typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 {
  UINT MaxTraceRecursionDepth;
  D3D12_RAYTRACING_PIPELINE_FLAG PipelineFlags;
  UINT32  MaxAttributeSizeInBytes;
  UINT32  MaxPayloadSizeInBytes;
} D3D12_RAYTRACING_PIPELINE_CONFIG1;

结构体成员的含义如下:

  •  MaxTraceRecursionDepth: 指定光线追踪的最大递归深度。这表示光线可以被递归地追踪的次数。


  •  PipelineFlags: 一个位掩码,用于指定射线追踪管线的标志。可以是以下值之一或它们的组合:

  - D3D12_RAYTRACING_PIPELINE_FLAG_NONE: 无标志。
  - D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES: 跳过三角形处理,用于仅处理程序化几何体的场景。

  •  MaxAttributeSizeInBytes: 指定程序化几何体的属性的最大大小(以字节为单位)。


  •  MaxPayloadSizeInBytes: 指定着色器程序输出的负载(payload)的最大大小(以字节为单位)。


这个结构体的引入增加了一些新的配置选项,使得开发者能够更好地控制射线追踪管线的行为。在创建射线追踪管线时,可以通过将其作为参数传递给 ID3D12Device5 接口的 CreateStateObject 方法,来配置这些参数。


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