Shader.SetGlobalRayTracingAccelerationStructure
Declaration
public static void SetGlobalRayTracingAccelerationStructure(string name, Rendering.RayTracingAccelerationStructure value);public static void SetGlobalRayTracingAccelerationStructure(int nameID, Rendering.RayTracingAccelerationStructure value);Параметры
| Параметр | Описание |
|---|---|
| имя | Имя структуры ускорения в коде шейдера. |
| nameID | Имя ID структуры ускорения в коде шейдера. Используйте Shader.PropertyToID для получения этого значения. |
| значение | Структура ускорения для установки. |
Описание
Устанавливает глобальное свойство RayTracingAccelerationStructure для всех шейдеров.
Эта команда привязывает объект RayTracingAccelerationStructure ко всем стадиям шейдера. Вы можете использовать структуру ускорения для встроенного трассирования лучей (запросы лучей) или в качестве аргумента в вызовах TraceRay в шейдерах трассирования лучей. Объект RayTracingAccelerationStructure должен быть построен с помощью метода RayTracingAccelerationStructure.Build до вызова этой команды.
Запросы лучей могут быть использованы для выполнения тестов перемещения структуры ускорения и пересечения геометрии. Чтобы получить доступ к этой функции, код HLSL должен быть скомпилирован с помощью директивы #pragma require inlineraytracing или с помощью встроенного ключевого слова шейдера UNITY_DEVICE_SUPPORTS_INLINE_RAY_TRACING (например, #pragma multi_compile _ UNITY_DEVICE_SUPPORTS_INLINE_RAY_TRACING).
Дополнительные ресурсы: CommandBuffer.SetGlobalRayTracingAccelerationStructure, SystemInfo.supportsRayTracingShaders, SystemInfo.supportsInlineRayTracing.