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