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

RendererListDesc

структура в UnityEngine.Rendering.RendererUtils

Выполнено в:UnityEngine.CoreModule

Описание

Высокоуровневая структура с аргументами, необходимыми для создания RendererList.

Чтобы создать RendererList объект, заполните эту структуру и передайте её в ScriptableRenderContext.CreateRendererList.

Либо, если вы используете систему графа рендеринга, передайте эту структуру в RenderGraph.CreateRendererList. Для получения дополнительной информации о RenderGraph, см. Система графов рендеринга .

По способу использования эта структура похожа на RendererListParams, только более высокого уровня. Если вам нужен доступ к расширенным свойствам, FilteringSettings.sortingLayerRange, использование RendererListParams вместо этого.

Эту структуру можно преобразовать в RendererListParams использование RendererListDesc.ConvertToParameters.

Этот пример показывает, как RendererListDesc Выполните следующие действия:

  1. Сохраните примерный код в вашем проекте как SimpleRenderPipelineAsset.cs.
  2. Используйте пункт меню RenderPipeline/Create SimpleRenderPipelineAsset для создания ассета конвейера отображения.
  3. Перейдите в 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 с эквивалентными параметрами.