Руководство API скрипты

CullingResults

структура в UnityEngine.Rendering / Реализовано в: UnityEngine.CoreModule

Описание

Структура, содержащая результаты операции отбраковки.

В Scriptable Render Pipeline, когда Unity выполняет операцию отбраковки, она сохраняет результаты в структуре CullingResults. Эти данные включают информацию о видимых объектах, источниках света и датчиках отражения. Unity использует эти данные для рендеринга объектов и обработки источников света. Структура CullingResults также предоставляет несколько функций, помогающих отрисовке теней.

Чтобы получить структуру CullingResults, вызовите ScriptableRenderContext.Cull.

Структура CullingResults допустима в рамках функции RenderPipeline.Render; его данные выходят за пределы области видимости при возврате функции Render. Вы можете использовать одну и ту же структуру CullingResults несколько раз в одном и том же цикле рендеринга, и вы можете совместно использовать структуру CullingResults между несколькими Cameras, если вы знаете, что они могут видеть одни и те же объекты. Это может сэкономить на бесполезных операциях ЦП и, следовательно, повысить производительность.

В этом примере показано, как получить структуру CullingResults, а затем передать ее в ScriptableRenderContext.DrawRenderers.

using UnityEngine; using UnityEngine.Rendering;

public class ExampleRenderPipeline : RenderPipeline { public ExampleRenderPipeline() { }

protected override void Render(ScriptableRenderContext context, Camera[] cameras) { foreach (Camera camera in cameras) { // Получаем параметры отбраковки с текущей камеры camera.TryGetCullingParameters(out var cullingParameters);

// Планируем операцию отбраковки, которая заполняет структуру CullingResults CullingResults cullingResults = context.Cull(ref cullingParameters);

// Разместите код, который планирует операции рисования, используя структуру CullingResults // Смотрим ScriptableRenderContext.DrawRenderers для примера // …

// Выполняем все запланированные операции по порядку context.Submit(); } } }

Свойства

lightAndReflectionProbeIndexCount Получает количество индексов датчика света и отражения для каждого объекта.
lightIndexCount Получает количество световых индексов для каждого объекта.
reflectionProbeIndexCount Получает количество индексов зонда отражения для каждого объекта.
visibleLights Массив видимых огней.
visibleOffscreenVertexLights Освещение вне экрана, которое все еще влияет на видимые вершины.
visibleReflectionProbes Массив датчиков видимого отражения.

Публичные Методы

ComputeDirectionalShadowMatricesAndCullingPrimitives Вычисляет матрицы вида и проекции, а также данные разделения теней для направленного источника света.
ComputePointShadowMatricesAndCullingPrimitives Вычисляет матрицы вида и проекции, а также данные разделения теней для точечного источника света.
ComputeSpotShadowMatricesAndCullingPrimitives Вычисляет матрицы вида и проекции, а также данные разделения теней для точечного источника света.
FillLightAndReflectionProbeIndices Заполняет буфер световыми индексами для каждого объекта.
GetLightIndexMap Если RenderPipeline сортирует или иным образом изменяет список VisibleLight, потребуется переназначение индекса, чтобы правильно использовать списки источников света для каждого объекта.
GetReflectionProbeIndexMap Если RenderPipeline сортирует или иным образом изменяет список VisibleReflectionProbe, потребуется переназначение индекса, чтобы правильно использовать списки зондов отражения для каждого объекта.
GetShadowCasterBounds Возвращает ограничивающую рамку, которая заключает в себе видимые отбрасыватели теней. Может использоваться, например, для динамической настройки каскадных диапазонов.
SetLightIndexMap Если RenderPipeline сортирует или иным образом изменяет список VisibleLight, потребуется переназначение индекса, чтобы правильно использовать списки источников света для каждого объекта.
SetReflectionProbeIndexMap Если RenderPipeline сортирует или иным образом изменяет список VisibleReflectionProbe, потребуется переназначение индекса, чтобы правильно использовать списки зондов отражения для каждого объекта.
Вы можете отблагодарить автора, за перевод документации на русский язык. Донат
API скрипты 2021.3