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

CommandBuffer.BeginRenderPass

Declaration

public void BeginRenderPass(int width, int height, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, NativeArray<SubPassDescriptor> subPasses);
public void BeginRenderPass(int width, int height, int volumeDepth, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, NativeArray<SubPassDescriptor> subPasses);
public void BeginRenderPass(int width, int height, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, NativeArray<SubPassDescriptor> subPasses, ReadOnlySpan<byte> debugNameUtf8);
public void BeginRenderPass(int width, int height, int volumeDepth, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, NativeArray<SubPassDescriptor> subPasses, ReadOnlySpan<byte> debugNameUtf8);
public void BeginRenderPass(int width, int height, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, int shadingRateImageAttachmentIndex, NativeArray<SubPassDescriptor> subPasses);
public void BeginRenderPass(int width, int height, int volumeDepth, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, int shadingRateImageAttachmentIndex, NativeArray<SubPassDescriptor> subPasses);
public void BeginRenderPass(int width, int height, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, int shadingRateImageAttachmentIndex, NativeArray<SubPassDescriptor> subPasses, ReadOnlySpan<byte> debugNameUtf8);
public void BeginRenderPass(int width, int height, int volumeDepth, int samples, NativeArray<AttachmentDescriptor> attachments, int depthAttachmentIndex, int shadingRateImageAttachmentIndex, NativeArray<SubPassDescriptor> subPasses, ReadOnlySpan<byte> debugNameUtf8);

Параметры

Параметр Описание
ширина Ширина поверхности прохода рендеринга в пикселях.
высота Высота поверхности прохода рендеринга в пикселях.
образцы MSAA sample count; установить на 1 для отключения сглаживания.
Приложения Массив цветовых вложений для использования в этом проходе рендеринга. Значения в массиве немедленно копируются.
depthAttachmentIndex Индекс вложения, которое будет использоваться в качестве буфера глубины/шаблона для этого прохода рендеринга, или -1 для отключения глубины/шаблона.
shadingRateImageAttachmentIndex Индекс вложения, который будет использоваться в качестве ShadingRateImage для этого прохода рендеринга, или -1 для отключения затенения с переменной скоростью.
subPasses Массив, содержащий информацию о каждом подпроходе. Значения в массиве копируются немедленно.

Описание

Начать новый проход основного рендеринга.

Процесс рендеринга допускает несколько подпроходов в одном проходе рендеринга, где пиксельные шейдеры имеют доступ для чтения к текущему значению пикселя в проходе рендеринга. Это позволяет эффективно реализовать различные методы рендеринга на плиточной основе GPUs, такие как отсроченное рендеринг.

Проходы рендеринга реализованы на Metal (iOS) и Vulkan, но API полностью функционален на всех рендеринговых backends через эмуляцию (используя старые вызовы SetRenderTargets и чтение текущих значений пикселей через texel fetches).

Механизм проходов рендеринга имеет следующие ограничения: — Все вложения (за исключением вложений изображений с скоростью рендеринга) должны иметь одинаковое разрешение и MSAA количество выборок — Результаты рендеринга предыдущих подпроходов доступны только в пределах одной и той же координаты пикселя экрана через макрос UNITY_READ_FRAMEBUFFER_INPUT(x) в шейдере; вложения не могут быть связаны как текстуры или иным образом доступны до тех пор, пока проход рендеринга не закончится — iOS Metal не позволяет чтение из Z-Буфера, поэтому для обхода этого требуется дополнительная цель рендеринга — Максимальное количество вложений, разрешенных в проходе рендеринга, в настоящее время составляет 8 + глубина, но обратите внимание, что различные GPUs могут иметь более строгие ограничения.

Первый субпроцесс запускается имплицитно при вызове этой функции со следующими субпроцессами, активируемыми при NextSubPass. После того, как последний субпроцесс был запланирован, необходимо закрыть проход рендеринга с помощью EndRenderPass.

В любой момент может быть активен только один проход рендеринга.

Дополнительные ресурсы: EndRenderPass, NextSubPass, SystemInfo.supportsMultisampledShaderResolve.