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

RendererListParams

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

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

Описание

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

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

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

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

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

  1. Сохраните примерный код в вашем проекте как SimpleRenderPipelineAsset.cs.
  2. Используйте пункт меню RenderPipeline/Create SimpleRenderPipelineAsset для создания ассета конвейера отображения.
  3. Перейдите в Project Настройки > Графика и назначьте созданный ресурс как **По умолчанию Render Pipeline ресурс**.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;

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. DrawingSettings drawingSettings = new DrawingSettings(new ShaderTagId("ForwardBase"), new SortingSettings(camera)); FilteringSettings filteringSettings = new FilteringSettings(RenderQueueRange.opaque); var rendererListParams = new RendererListParams(cullingResults, drawingSettings, filteringSettings); var rendererList = context.CreateRendererList(ref rendererListParams); cmd.DrawRendererList(rendererList); context.ExecuteCommandBuffer(cmd); cmd.Release(); context.Submit(); } } }

Дополнительные ресурсы: ,RendererList,, ,ScriptableRenderContext.CreateRendererList,.

Статические свойства

Свойство Описание
InvalidВозвращает пустое RendererListParams.

Свойства

Свойство Описание
cullingResultsНабор видимых объектов для рисования. Обычно вы получаете его из ScriptableRenderContext.Cull.
drawSettingsСтруктура, описывающая, как отрисовывать объекты.
filteringSettingsСтруктура, описывающая, как отфильтровать набор видимых объектов, чтобы Unity отрисовывала только его часть.
isPassTagNameЕсли установлено true, то tagName указывает Тег Пропуска. В противном случае, tagName указывает Тег SubShader.
stateBlocksМассив структур, описывающих, какие части состояния рендеринга GPU следует переопределить.
tagNameИмя тега SubShader или тега Pass.
tagValuesМассив структур ShaderTagId, где имя представляет собой значение заданного Тега SubShader или Тега Pass.

Конструкторы

Конструктор Описание
RendererListParamsСоздать структуру RendererListParams.