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

Задает флаги построения структуры ускорения трассировки лучей.

Синтаксис

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
} ;

Константы

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
Параметры для сборки структуры ускорения не указаны.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
Создайте структуру ускорения таким образом, чтобы она поддерживала будущие обновления с помощью флага D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, а не приложения, который требуется полностью перестроить. Этот параметр может привести к увеличению потребления памяти и времени сборки, а также снижению производительности трассировки лучей. Однако будущие обновления должны быть быстрее, чем создавать эквивалентную структуру ускорения с нуля.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
Позволяет сжимать структуру ускорения, вызывая CopyRaytracingAccelerationStructure с компактным режимом. См. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE.
Этот параметр может привести к увеличению потребления памяти и времени сборки. Однако после дальнейшего сжатия результирующая структура ускорения должна использовать меньший объем памяти, не превышающий создание структуры ускорения с нуля.

Этот флаг совместим со всеми другими флагами. Если он указан как часть обновления структуры ускорения, структура исходного ускорения также должна быть создана с помощью этого флага.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
Создайте высококачественную структуру ускорения, которая повышает производительность трассировки лучей за счет дополнительного времени сборки. Грубое правило большого пальца заключается в том, что реализация должна занять около 2–3 раза больше времени сборки по умолчанию, чтобы повысить производительность трассировки.

Этот флаг рекомендуется для статической геометрии, в частности. Она также совместима со всеми другими флагами, кроме D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
Создайте более низкую структуру ускорения качества, производительность трассировки луча для скорости сборки. Грубое правило большого пальца заключается в том, что реализация должна занять от 1/2 до 1/3 времени сборки по умолчанию во время выполнения трассировки.

Этот флаг совместим со всеми остальными флагами, кроме D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
Сведите к минимуму объем памяти, используемой во время сборки структуры ускорения, а также размер результата. Этот параметр может привести к увеличению времени сборки и (или) времени трассировки лучей.

Это ортогональный флаг D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION и явное сжатие структуры ускорения, которое она включает. Объединение флагов может означать как начальную структуру ускорения, так и результат сжатия, в результате чего используется меньше памяти.
Влияние использования этого флага для сборки отражается в результате вызова Метода GetRaytracingAccelerationStructurePrebuildInfo перед выполнением сборки для получения требований к памяти для сборки.

Этот флаг совместим со всеми другими флагами.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
Выполните обновление структуры ускорения, а не создание с нуля. Это быстрее, чем полная сборка, но может отрицательно повлиять на производительность трассировки лучей, особенно если позиции базовых объектов значительно изменились с исходной сборки структуры ускорения до обновления.

Если адреса исходных и целевых структур ускорения идентичны, обновление выполняется на месте. Любое другое перекрытие диапазонов адресов источника и назначения недопустимо. Для неперекрывающихся источников и назначений структура ускорения исходного кода не изменена. Требование к памяти для структуры ускорения вывода совпадает со структурой ускорения ввода.

Этот флаг совместим со всеми другими флагами. D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE может быть задано или не может быть задано, это не имеет никакого значения, так как обновления будут по-прежнему разрешены. Другие флаги, кроме D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE и D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE, должны соответствовать флагам в структуре ускорения источника.

Обновления структуры ускорения можно выполнять в неограниченном последовательности. Структура ускорения источника должна была быть создана с помощью D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE, D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE или, если иным образом клонирована, исходная структура ускорения должна была быть создана одним из этих способов. По сути, структура ускорения должна была быть создана с ожиданием, что обновления могут произойти.

Требования

   
Минимальная версия клиента Windows 10, версия 1809
Заголовок d3d12umddi.h