перечисление D3D12DDI_RAYTRACING_GEOMETRY_FLAGS (d3d12umddi.h)

Указывает геометрические флаги трассировки лучей.

Синтаксис

typedef enum D3D12DDI_RAYTRACING_GEOMETRY_FLAGS {
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NONE,
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE,
  D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
} ;

Константы

 
D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NONE
Параметры не заданы.
D3D12DDI_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Когда лучи сталкиваются с этой геометрией, геометрия действует так, как будто нет ни одного хит-шейдера. Рекомендуется использовать этот флаг свободно, так как он может обеспечить важную оптимизацию обработки лучей.

ПРИМЕЧАНИЕ

Это поведение можно переопределить для каждого экземпляра с помощью D3D12DDI_RAYTRACING_INSTANCE_FLAGS и для каждого луча с помощью флагов луча в TraceRay().

D3D12DDI_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
По умолчанию система может активировать любой шейдер нажатия несколько раз для заданного пересечения с примитивом луча. Такая гибкость помогает повысить эффективность обхода структур ускорения в некоторых случаях. Например, если структура ускорения реализуется внутренне с ограничивающими томами, реализация может оказаться полезной хранить относительно длинные треугольники в нескольких ограничивающих прямоугольниках, а не в одном прямоугольнике большего размера.

Однако в некоторых вариантах использования приложений требуется, чтобы пересечения сообщались любому шейдеру попадания не более одного раза. Этот флаг обеспечивает такую гарантию для заданной геометрии, что может повлиять на производительность.

Этот флаг применяется ко всем типам geometry.

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1809
Верхняя часть d3d12umddi.h