RendererListDesc
структура в UnityEngine.Rendering.RendererUtils
Выполнено в:UnityEngine.CoreModule
Описание
Высокоуровневая структура с аргументами, необходимыми для создания RendererList.
Чтобы создать RendererList объект, заполните эту структуру и передайте её в ScriptableRenderContext.CreateRendererList.
Либо, если вы используете систему графа рендеринга, передайте эту структуру в RenderGraph.CreateRendererList. Для получения дополнительной информации о RenderGraph, см. Система графов рендеринга .
По способу использования эта структура похожа на RendererListParams, только более высокого уровня. Если вам нужен доступ к расширенным свойствам, FilteringSettings.sortingLayerRange, использование RendererListParams вместо этого.
Эту структуру можно преобразовать в RendererListParams использование RendererListDesc.ConvertToParameters.
Этот пример показывает, как RendererListDesc Выполните следующие действия:
- Сохраните примерный код в вашем проекте как
SimpleRenderPipelineAsset.cs. - Используйте пункт меню
RenderPipeline/Create SimpleRenderPipelineAssetдля создания ассета конвейера отображения. - Перейдите в Project Настройки > Графика и назначьте созданный ресурс как **По умолчанию Render Pipeline ресурс**.
using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.RendererUtils;
public class SimpleRenderPipelineAsset : RenderPipelineAsset<SimpleRenderPipeline> { #if UNITY_EDITOR [UnityEditor.MenuItem("RenderPipeline/Create SimpleRenderPipelineAsset")] static void CreateSimpleRenderLoop() { var instance = CreateInstance<SimpleRenderPipelineAsset>(); UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/SimpleRenderPipeline.asset"); } #endif
protected override RenderPipeline CreatePipeline() => new SimpleRenderPipeline(); }
public class SimpleRenderPipeline : RenderPipeline { protected override void Render(ScriptableRenderContext context, List<Camera> cameras) { foreach (var camera in cameras) { if (!camera.TryGetCullingParameters(out var cullingParams)) continue; CullingResults cullingResults = context.Cull(ref cullingParams); context.SetupCameraProperties(camera);
var cmd = new CommandBuffer(); cmd.ClearRenderTarget(true, true, Color.red); // Draws visible MeshRenderers that use the built-in Default-Material/Default-Diffuse material. var rendererListDesc = new RendererListDesc(new ShaderTagId("ForwardBase"), cullingResults, camera) { renderQueueRange = RenderQueueRange.opaque }; var rendererList = context.CreateRendererList(rendererListDesc); cmd.DrawRendererList(rendererList);
context.ExecuteCommandBuffer(cmd); cmd.Release(); context.Submit(); } } }
Дополнительные ресурсы: ,RendererList,, ,ScriptableRenderContext.CreateRendererList,.
Свойства
| Свойство | Описание |
|---|---|
| batchLayerMask | Маска пакета слоев, используемая для фильтрации этого RendererList. |
| excludeObjectMotionVectors | Указывает, следует ли исключать динамическую GameObjects из RendererList. |
| layerMask | Маска слоя, используемая для фильтрации этого RendererList. |
| overrideMaterial | Материал для изготовления RendererList's GameObjects с. Это переопределяет материал для каждого GameObject. |
| overrideMaterialPassIndex | Индекс прохода для переопределяющего материала. |
| overrideShader | Шейдер, которым отрисовываются GameObject из RendererList. Он переопределяет шейдер каждого GameObject. Переопределяющие шейдеры не переопределяют существующие свойства материала. |
| overrideShaderPassIndex | Выбирает, какой проход переопределяющего шейдера использовать. |
| rendererConfiguration | Настройка рендерера для RendererList. Дополнительные сведения см. в PerObjectData. |
| renderingLayerMask | Маска слоя отображения, используемая для фильтрации этого RendererList. |
| renderQueueRange | Диапазон очереди рендеринга материала, используемый для RendererList. Дополнительные сведения см. в RenderQueueRange. |
| sortingCriteria | Метод Unity используется для сортировки GameObjects в RendererList. Дополнительные сведения см. в SortingCriteria. |
| stateBlock | Необязательный набор значений, переопределяющих состояние рендеринга RendererList. Дополнительные сведения см. в RenderStateBlock. |
Конструкторы
| Конструктор | Описание |
|---|---|
| RendererListDesc | Инициализирует и возвращает экземпляр RendererListDesc. |
Открытые методы
| Метод | Описание |
|---|---|
| IsValid | Проверяет, является ли RendererListDesc действительным. |
Статические методы
| Метод | Описание |
|---|---|
| ConvertToParameters | Преобразует заданный RendererListDesc в структуру RendererListParams с эквивалентными параметрами. |