Поделиться через


перечисление 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_TRIANGLES и RAY_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 .

Требования

Требование Значение
Заголовок d3d12.h