Описание
Набор значений, которые Unity использует для переопределения состояния рендеринга графического процессора.
Когда вы вызываете ScriptableRenderContext.DrawRenderers, вы можете использовать это, чтобы переопределить состояние рендеринга для некоторой или всей геометрии.
Примечание:Вы должны установить mask, чтобы сообщить Unity, какие части состояния рендеринга следует переопределить для применения. Например, чтобы применить значения в blendState, mask должна включать RenderStateMask.Blend.
using UnityEngine;
using UnityEngine.Rendering;
public class OverrideRenderStateExample
{
ScriptableRenderContext scriptableRenderContext;
// Данные заполнителя
DrawingSettings exampleDrawingSettings;
CullingResults exampleCullingResults = new CullingResults();
FilteringSettings exampleFilteringSettings = new FilteringSettings();
public void OverrideRenderState()
{
// Сообщаем Unity, как переопределить состояние рендеринга при отрисовке геометрии.
var stateBlock = new RenderStateBlock(RenderStateMask.Depth);
stateBlock.depthState = new DepthState(true, CompareFunction.LessEqual);
// Планирование операции рисования.
scriptableRenderContext.DrawRenderers(exampleCullingResults, ref exampleDrawingSettings, ref exampleFilteringSettings, ref stateBlock);
// Выполнение всех запланированных задач в том порядке, в котором они были запланированы.
scriptableRenderContext.Submit();
}
}
Смотрите так же: ScriptableRenderContext.DrawRenderers, RenderStateMask.
Свойства
blendState | Определяет новое состояние наложения. |
depthState | Определяет новое состояние глубины. |
mask | Указывает, какие части состояния рендеринга графического процессора следует переопределить. |
rasterState | Определяет новое состояние растра. |
stencilReference | Значение для сравнения и/или значение для записи в буфер в зависимости от состояния шаблона. |
stencilState | Указывает новое состояние трафарета. |
Конструкторы
RenderStateBlock | Создает новый блок состояния рендеринга с указанной маской. |