перечисление D3D12_RAYTRACING_GEOMETRY_FLAGS (d3d12.h)

Задает флаги для геометрии лучей в структуре D3D12_RAYTRACING_GEOMETRY_DESC .

Синтаксис

typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS {
  D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
  D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
  D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2
} ;

Константы

 
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE
Значение: 0
Параметры не заданы.
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE
Значение: 0x1
Когда лучи сталкиваются с этой геометрией, геометрия действует так, как будто нет ни одного хит-шейдера. Рекомендуется, чтобы приложения использовали этот флаг свободно, так как он может обеспечить важную оптимизацию обработки лучей. Обратите внимание, что это поведение можно переопределить для каждого экземпляра с помощью D3D12_RAYTRACING_INSTANCE_FLAGS и для каждого луча с помощью флагов лучей в TraceRay.
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION
Значение: 0x2
По умолчанию система может активировать любой шейдер нажатия несколько раз для заданного пересечения с примитивом луча. Такая гибкость помогает повысить эффективность обхода структур ускорения в некоторых случаях. Например, если структура ускорения реализуется внутренне с ограничивающими томами, реализация может оказаться полезной хранить относительно длинные треугольники в нескольких ограничивающих прямоугольниках, а не в одном прямоугольнике большего размера. Однако в некоторых вариантах использования приложений требуется, чтобы пересечения сообщались любому шейдеру попадания не более одного раза. Этот флаг обеспечивает такую гарантию для заданной геометрии, что может повлиять на производительность.

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

Требования

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