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

RenderStateBlock

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

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

Описание

Набор значений, которые Unity использует для переопределения состояния рендеринга GPU.

Вызывая ScriptableRenderContext.DrawRenderers, вы можете с помощью этого переопределить состояние рендеринга для части геометрии или для всей.

Примечание: Вы должны установить mask чтобы сообщить Unity, какие части состояния рендеринга нужно переопределить. Например, чтобы применить значения из blendState, mask должен включать RenderStateMask.Blend.

using UnityEngine;
using UnityEngine.Rendering;

public class OverrideRenderStateExample { ScriptableRenderContext scriptableRenderContext;

// Placeholder data DrawingSettings exampleDrawingSettings; CullingResults exampleCullingResults = new CullingResults(); FilteringSettings exampleFilteringSettings = new FilteringSettings();

public void OverrideRenderState() { // Tell Unity how to override the render state when it draws the geometry. var stateBlock = new RenderStateBlock(RenderStateMask.Depth); stateBlock.depthState = new DepthState(true, CompareFunction.LessEqual);

// Schedule the drawing operation. scriptableRenderContext.DrawRenderers(exampleCullingResults, ref exampleDrawingSettings, ref exampleFilteringSettings, ref stateBlock);

// Perform all scheduled tasks, in the order that they were scheduled. scriptableRenderContext.Submit(); } }

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

Свойства

Свойство Описание
blendStateЗадаёт новое состояние смешивания.
depthStateЗадаёт новое состояние глубины.
maskУказывает, какие части состояния рендеринга GPU следует переопределить.
rasterStateЗадаёт новое состояние растеризации.
stencilReferenceЗначение для сравнения и (или) значение для записи в буфер трафарета на основе состояния трафарета.
stencilStateЗадаёт новое состояние трафарета.

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

Конструктор Описание
RenderStateBlockСоздаёт новый блок состояния рендеринга с указанной маской.