Unity 6.3
0 онлайн 90 гостей 3 в системе
Вход

RayTracingAccelerationStructure.AddInstance

Declaration

public int AddInstance(Renderer targetRenderer, RayTracingSubMeshFlags[] subMeshFlags, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, uint id);

Параметры

Параметр Описание
targetRenderer Рендерер, который будет добавлен в RayTracingAccelerationStructure.
enableTriangleCulling Булевые числа, указывающие, включено ли для этого экземпляра трассирования лучей выделение передних/задних поверхностей. Выделение происходит, когда GPU выполняет тест пересечения луча и треугольника. По умолчанию выделение включено (true).
frontTriangleCounterClockwise Логическое значение, указывающее на то, следует ли переворачивать треугольники в этом экземпляре трассирования лучей. Если это значение установлено в true, треугольники, обращенные вперёд, будут обращены назад и наоборот. По умолчанию установлено в false.
маска 8-битная маска, которую можно использовать для выборочного пересечения экземпляра трассирования лучей, связанного с целевым рендерером, с лучами, которые только проходят через маску. По умолчанию все лучи включены (0xff).
subMeshFlags Список флагов, которые контролируют поведение шейдера при пересечении луча с геометрией подсетки. Дополнительную информацию см. в RayTracingSubMeshFlags.
Идентификатор Необязательный экземпляр значения ID, доступный с помощью функции InstanceID() HLSL.

Возвращаемое значение

инт Значение, представляющее обработчик, который можно использовать для выполнения последующих действий (e.g. RemoveInstance), или 0, если экземпляр не удалось успешно добавить.

Описание

Добавление экземпляра трассировки лучей в RayTracingAccelerationStructure.

Функция TraceRay() HLSL имеет 8-битный входной параметр InstanceInclusionMask, который получает ANDed с маской экземпляра из любого экземпляра трассирования лучей, который является кандидатом на пересечение во время прохождения структуры ускорения на GPU.. Если результат операции AND равен нулю, пересечение игнорируется.

После добавления всех необходимых экземпляров используйте RayTracingAccelerationStructure.Build или CommandBuffer.BuildRayTracingAccelerationStructure для создания структуры ускорения на GPU.

Дополнительные ресурсы: RayTracingAccelerationStructure.RemoveInstance, RayTracingSubMeshFlags.

Declaration

public int AddInstance(ref Rendering.RayTracingMeshInstanceConfig config, Matrix4x4 matrix, Nullable<Matrix4x4> prevMatrix = null, uint id);

Параметры

Параметр Описание
конфигурация Общие параметры, используемые этим экземпляром трассирования лучей Mesh.
матрица Матрица преобразования экземпляра трассирования лучей.
prevMatrix Матрица преобразования предыдущего кадра экземпляра трассирования лучей, которую можно использовать для вычисления векторов движения в коде шейдера.
Идентификатор Необязательный экземпляр значения ID, к которому можно получить доступ с помощью функции InstanceID() HLSL.

Возвращаемое значение

инт Значение, представляющее обработчик, который можно использовать для выполнения последующих действий (e.g, RemoveInstance, UpdateInstancePropertyBlock или UpdateInstanceTransform), или 0, если экземпляр не добавлен успешно.

Описание

Добавление экземпляра трассирования лучей, связанного с ,Mesh, в RayTracingAccelerationStructure.

Аргумент функции config определяет соответствующие Mesh и связанные параметры.

После добавления всех необходимых экземпляров используйте RayTracingAccelerationStructure.Build или CommandBuffer.BuildRayTracingAccelerationStructure для создания структуры ускорения на GPU.

Дополнительные ресурсы: RayTracingAccelerationStructure.RemoveInstance, RayTracingShader.Dispatch.

Declaration

public int AddInstance(ref Rendering.RayTracingGeometryInstanceConfig config, Matrix4x4 matrix, Nullable<Matrix4x4> prevMatrix = null, uint id);

Параметры

Параметр Описание
конфигурация Общие параметры, используемые этим экземпляром трассирования лучей геометрии.
матрица Матрица преобразования экземпляра трассирования лучей.
prevMatrix Матрица преобразования предыдущего кадра экземпляра трассирования лучей, которую можно использовать для вычисления векторов движения в коде шейдера.
Идентификатор Необязательный экземпляр значения ID, к которому можно получить доступ с помощью функции InstanceID() HLSL.

Возвращаемое значение

инт Значение, представляющее обработчик, который можно использовать для выполнения последующих действий (e.g, RemoveInstance, UpdateInstancePropertyBlock или UpdateInstanceTransform), или 0, если экземпляр не добавлен успешно.

Описание

Добавление экземпляра трассировки лучей в RayTracingAccelerationStructure.

Аргумент функции config определяет соответствующие данные геометрии треугольника (буферы вершин и индексов) и связанные с ними параметры.

После добавления всех необходимых экземпляров используйте RayTracingAccelerationStructure.Build или CommandBuffer.BuildRayTracingAccelerationStructure для создания структуры ускорения на GPU.

Дополнительные ресурсы: RayTracingAccelerationStructure.RemoveInstance, RayTracingShader.Dispatch.

Declaration

public int AddInstance(Rendering.RayTracingAABBsInstanceConfig config, Matrix4x4 matrix, uint id);

Параметры

Параметр Описание
конфигурация Общие параметры, которые использует этот экземпляр AABBs для трассирования лучей.
матрица Матрица преобразования экземпляра трассирования лучей.
Идентификатор Необязательный экземпляр значения ID, к которому можно получить доступ с помощью функции InstanceID() HLSL.

Возвращаемое значение

инт Значение, представляющее обработчик, который может быть использован для выполнения последующих действий (e.g. RemoveInstance, UpdateInstancePropertyBlock или UpdateInstanceTransform), или 0, если экземпляр не добавлен успешно.

Описание

Добавляет экземпляр трассирования лучей, связанный со списком выравниваемых по оси граничных блоков (AABBs) в RayTracingAccelerationStructure для процедурного создания геометрии с использованием шейдеров пересечений.

Определяет список AABB в GraphicsBuffer, в котором устанавливаются параметры config.aabbBuffer. Unity использует AABBs для создания структуры ускорения для этого экземпляра трассирования лучей.

AABBs определены в локальном пространстве и могут быть преобразованы с помощью аргумента матрицы. Используйте RayTracingAccelerationStructure.UpdateInstanceTransform для обновления преобразования экземпляра трассирования лучей позднее.

Unity копирует содержимое MaterialPropertyBlock в параметре config.materialProperties в экземпляр трассирования лучей при вызове этой функции. Любые последующие изменения объекта MaterialPropertyBlock, переданного в качестве аргумента, не учитываются. Используйте RayTracingAccelerationStructure.UpdateInstancePropertyBlock для обновления свойств позднее.

Когда луч пересекает один из AABBs в списке во время отправки трассирования луча, GPU вызывает пересекающийся шейдер. Вы можете получить индекс дискретного AABB в структуре ускорения с помощью функции PrimitiveIndex() HLSL.

Когда вы добавили все необходимые экземпляры, используйте RayTracingAccelerationStructure.Build или CommandBuffer.BuildRayTracingAccelerationStructure для создания структуры ускорения на GPU.

Дополнительные ресурсы: RayTracingAccelerationStructure.RemoveInstance, RayTracingShader.Dispatch.

Declaration

Obsolete public void AddInstance(Renderer targetRenderer, bool[] subMeshMask, bool[] subMeshTransparencyFlags, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, uint id);

Описание

Устаревший. Пожалуйста, используйте альтернативный метод для добавления Рендереров в структуру ускорения.

Declaration

Obsolete public void AddInstance(GraphicsBuffer aabbBuffer, uint numElements, Material material, bool isCutOff, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, bool reuseBounds, uint id);

Описание

Устаревший. Пожалуйста, используйте альтернативный метод добавления процедурной геометрии (AABBs) в структуру ускорения.

Declaration

Obsolete public int AddInstance(GraphicsBuffer aabbBuffer, uint aabbCount, bool dynamicData, Matrix4x4 matrix, Material material, bool opaqueMaterial, MaterialPropertyBlock properties, uint mask, uint id);

Описание

Устаревший. Пожалуйста, используйте альтернативный метод добавления процедурной геометрии (AABBs) в структуру ускорения.