D3D12_RAYTRACING_INSTANCE_FLAGS 枚举 (d3d12.h)

光线跟踪加速结构实例的标志。 这些标志可用于替代单个实例 的D3D12_RAYTRACING_GEOMETRY_FLAGS

语法

typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS {
  D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
} ;

常量

 
D3D12_RAYTRACING_INSTANCE_FLAG_NONE
值: 0
没有指定选项。
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE
值: 0x1
禁用此实例的正面/背面剔除。 Ray 标志 RAY_FLAG_CULL_BACK_FACING_TRIANGLESRAY_FLAG_CULL_FRONT_FACING_TRIANGLES 将对此实例没有影响。
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE
值: 0x2
此标志反转正面和向后,如果应用程序的自然缠绕顺序不同于默认值,这非常有用。 默认情况下,如果三角形的顶点从光线原点顺时针显示,则其顶点在左手坐标系中的对象空间中逆时针显示,则为正面。

由于这些绕组方向规则是在对象空间中定义的,因此它们不受实例转换影响。 例如,具有负决定因素的实例转换矩阵 (例如镜像某些几何图形) 不会更改实例中三角形的面。 相比之下, D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC 中定义的每个几何图形转换与对象空间中的关联顶点数据组合在一起,因此,有一个负决定矩阵会翻转三角形绕组。
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE
值: 0x4
实例的作用就像为实例引用的底层加速结构中的所有几何图形指定了 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE 。 请注意,此行为可由光线标志 RAY_FLAG_FORCE_NON_OPAQUE重写。

此标志与 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE 标志互斥。
D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE
值: 0x8
实例的作用就像没有为实例引用的底层加速结构中的任何几何图形指定 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE 。 请注意,此行为可由光线标志 RAY_FLAG_FORCE_OPAQUE重写。

此标志与 D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE 标志互斥。

要求

要求
Header d3d12.h