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


перечисление 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и на основе каждого луча с помощью флагов Ray в TraceRay().

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1809
заголовка d3d12umddi.h