CommandBuffer
класс в UnityEngine.Rendering
Выполнено в:UnityEngine.CoreModule
Описание
Список графических команд для выполнения.
Буферы команд содержат список команд рендеринга («set render target, draw mesh, ...»). Их можно настроить на выполнение в разных точках отрисовки камерой (см. Camera.AddCommandBuffer), рендеринга светом (см. Light.AddCommandBuffer) или для немедленного выполнения (см. Graphics.ExecuteCommandBuffer).
Обычно они используются для расширения рендеринговых каналов Unity в пользовательском режиме. Например, вы можете рендеринговать некоторые дополнительные объекты в G-буфер отложенного рендеринга после завершения обработки всех обычных объектов, или выполнять пользовательскую обработку отображений световых теней. См. обзор командных буферов на странице для более подробной информации.
Командные буферы могут быть созданы и затем выполнены много раз, если необходимо.
Дополнительные ресурсы: Camera.AddCommandBuffer, Light.AddCommandBuffer, CameraEvent, LightEvent, Graphics.ExecuteCommandBuffer, обзор командных буферов.
Статические свойства
| Свойство | Описание |
|---|---|
| ThrowOnSetRenderTarget | Вывести исключение, когда SetRenderTarget записывается в командный буфер. Это особенно полезно при использовании нативных рендерпассов, чтобы избежать случайной записи команд SetRenderTarget в командный буфер. |
Свойства
| Свойство | Описание |
|---|---|
| name | Имя буфера команд. |
| sizeInBytes | Размер командного буфера в байтах (только для чтения). |
Конструкторы
| Конструктор | Описание |
|---|---|
| CommandBuffer | Создание нового пустого буфера команд. |
Открытые методы
| Метод | Описание |
|---|---|
| BeginRenderPass | Начать новый проход основного рендеринга. |
| BeginSample | Добавлена команда для начала выборки профиля. |
| Blit | Добавлена команда для использования шейдера для копирования данных пикселей из текстуры в текстуру рендеринга. |
| BuildRayTracingAccelerationStructure | Добавлена команда для построения RayTracingAccelerationStructure для использования в отправке трассирования лучей или при использовании встроенного трассирования лучей (запросы на лучи). |
| Clear | Очистить все команды в буфере. |
| ClearRandomWriteTargets | Отменить случайные цели записи для пиксельных шейдеров уровня Shader Model 4.5. |
| ClearRenderTarget | Добавлена команда "очистить цель отображения". |
| ConfigureFoveatedRendering | Добавляет команду для настройки отображения в режиме ожидания. |
| ConvertTexture | Добавлена команда для копирования данных пикселей из одной текстуры, преобразования данных в другой формат и копирования их в другую текстуру. |
| CopyBuffer | Добавлена команда для копирования содержимого одного GraphicsBuffer в другой. |
| CopyCounterValue | Добавлена команда для копирования значения счетчика ComputeBuffer или GraphicsBuffer. |
| CopyTexture | Добавлена команда для копирования пиксельных данных из одной текстуры в другую. |
| CreateAsyncGraphicsFence | Ярлык для вызова CommandBuffer.CreateGraphicsFence с GraphicsFenceType.AsyncQueueSynchronisation в качестве первого параметра. |
| CreateGraphicsFence | Создает GraphicsFence. |
| DisableKeyword | Добавляет команду для отключения глобального или локального ключевого слова шейдера. |
| DisableScissorRect | Добавить команду для отключения аппаратного ножниц прямоугольника. |
| DisableShaderKeyword | Добавлена команда для отключения глобального ключевого слова шейдера с заданным именем. |
| DispatchCompute | Добавить команду для выполнения ComputeShader. |
| DispatchRays | Добавление команды для выполнения RayTracingShader. |
| DrawMesh | Добавить команду "нарисовать сетку". |
| DrawMeshInstanced | Добавляет "рисовать сетку с инстансированием" command.The сетка будет нарисована только один раз, она не будет освещена по пикселям и не будет получать или получать в реальном времени shadows.The команда не будет немедленно отказываться и вызывать исключение, если Material.enableInstancing является false, но она будет регистрировать ошибку и пропускать рендеринг каждый раз, когда команда выполняется, если такое условие detected.InvalidOperationException будет вызывать, если текущая платформа не поддерживает это API (i.e. если GPU инстансирование недоступно). См. SystemInfo.supportsInstancing. |
| DrawMeshInstancedIndirect | Добавлена команда "нарисовать сетку с косвенным инстанционированием". |
| DrawMeshInstancedProcedural | Добавить "нарисовать сетку с инстанционированием" command.Draw сетку с помощью Процедурного Инстанционирования. Это похоже на Graphics.DrawMeshInstancedIndirect, за исключением того, что когда количество экземпляров известно из скрипта, оно может быть предоставлено непосредственно с помощью этого метода, а не через ComputeBuffer. Если Material.enableInstancing является false, команда регистрирует ошибку и пропускает рендеринг каждый раз, когда команда выполняется; команда не сразу отказывается, и exception.InvalidOperationException будет выполнена, если текущая платформа не поддерживает API (например, если GPU инстанционирование недоступно). См. SystemInfo.supportsInstancing. |
| DrawOcclusionMesh | Добавляет команду в commandbuffer для рисования сетки окклюзии устройства VR к текущему объекту отображения. |
| DrawProcedural | Добавлена команда "нарисовать процедурную геометрию". |
| DrawProceduralIndirect | Добавлена команда "нарисовать процедурную геометрию". |
| DrawRenderer | Добавить команду «draw renderer». |
| DrawRendererList | Добавлена команда "вывести список рендереров". |
| EnableKeyword | Добавление команды для включения глобального или локального ключевого слова шейдера. |
| EnableScissorRect | Добавить команду для включения аппаратного ножниц прямоугольника. |
| EnableShaderKeyword | Добавление команды для включения глобального ключевого слова с заданным именем. |
| EndRenderPass | Прекратить активный основной рендерпасс. |
| EndSample | Добавлена команда для завершения выборки профиля. |
| GenerateMips | Создание уровней mipmap текстуры рендеринга. |
| GetTemporaryRT | Добавить команду "получить временную текстуру рендеринга". |
| GetTemporaryRTArray | Добавить команду "получить временный массив текстуры рендеринга". |
| IncrementUpdateCount | Увеличивает свойство updateCount Текстуры. |
| InvokeOnRenderObjectCallbacks | Расписывает вызов обратного вызова OnRenderObject для скриптов MonoBehaviour. |
| IssuePluginCustomBlit | Отправка определенного пользователем события blit в плагин нативного кода. |
| IssuePluginCustomTextureUpdateV2 | Отправить событие обновления текстуры в плагин нативного кода. |
| IssuePluginEvent | Отправка события, определенного пользователем, в плагин нативного кода. |
| IssuePluginEventAndData | Отправка определенного пользователем события в плагин с настраиваемыми данными. |
| IssuePluginEventAndDataWithFlags | Отправка события, определенного пользователем, в плагин нативного кода с пользовательскими данными и флагами обратного вызова. |
| MarkLateLatchMatrixShaderPropertyID | Пометить глобальный id свойства шейдера для позднего замыкания. Возможные свойства шейдера включают view, матрицы inverseView, viewProjection и inverseViewProjection. Universal Render Pipeline (URP) использует эту функцию для поддержки позднего замыкания свойств шейдера. Если вы вызываете эту функцию при использовании встроенного рендеринга Unity или High-Definition Rendering Pipeline (HDRP), результаты игнорируются. |
| NextSubPass | Запустить следующий собственный подпропуск, как описано в CommandBuffer.BeginRenderPass. |
| ReleaseTemporaryRT | Добавить команду "выпустить временную текстуру рендеринга". |
| RequestAsyncReadback | Добавление в буфер команд асинхронной команды запроса на считывание GPU. |
| RequestAsyncReadbackIntoNativeArray | Добавление в буфер команд асинхронной команды запроса на считывание GPU. |
| RequestAsyncReadbackIntoNativeSlice | Добавление в буфер команд асинхронной команды запроса на считывание GPU. |
| ResetShadingRate | Добавить команду "сбросить все состояния скорости затенения и изображения к их значениям по умолчанию". |
| ResolveAntiAliasedSurface | Принудительное разрешение текстуры рендеринга с выравниванием. |
| SetBufferCounterValue | Добавляет команду для установки значения счетчика буфера добавления/потребления. |
| SetBufferData | Добавляет команду для установки буфера со значениями из массива. |
| SetComputeBufferParam | Добавлена команда для установки параметра буфера входа или выхода на ComputeShader. |
| SetComputeConstantBufferParam | Добавлена команда для установки постоянного буфера на ComputeShader. |
| SetComputeFloatParam | Добавлена команда для установки параметра float на ComputeShader. |
| SetComputeFloatParams | Добавлена команда для установки нескольких последовательных параметров с плавающей запятой на ComputeShader. |
| SetComputeIntParam | Добавлена команда для установки целочисленного параметра на ComputeShader. |
| SetComputeIntParams | Добавлена команда для установки нескольких последовательных целых параметров на ComputeShader. |
| SetComputeMatrixArrayParam | Добавлена команда для установки параметра массива матриц на ComputeShader. |
| SetComputeMatrixParam | Добавлена команда для установки параметра матрицы на ComputeShader. |
| SetComputeParamsFromMaterial | Задает параметры для ядра вычислительного шейдера из Material. |
| SetComputeTextureParam | Добавлена команда для установки параметра текстуры на ComputeShader. |
| SetComputeVectorArrayParam | Добавлена команда для установки параметра векторного массива на ComputeShader. |
| SetComputeVectorParam | Добавлена команда для установки параметра вектора на ComputeShader. |
| SetExecutionFlags | Устанавливает флаги, описывающие намерение в отношении того, как будет выполняться буфер команд. |
| SetFoveatedRenderingMode | Добавляет команду для установки режима, который будет использоваться для рендеринга с помощью фове. |
| SetGlobalBuffer | Добавлена команда "set global shader buffer property". |
| SetGlobalColor | Добавлена команда "set global shader color property". |
| SetGlobalConstantBuffer | Добавить команду для привязки глобального постоянного буфера. |
| SetGlobalDepthBias | Добавлена команда для установки глобального отклонения глубины. |
| SetGlobalFloat | Добавлена команда "set global shader float property". |
| SetGlobalFloatArray | Добавляет команду задания глобального свойства массива float шейдера. |
| SetGlobalInt | Добавлена команда для установки значения заданного свойства для всех Shaders, где свойство имеет тип Int в коде ShaderLab. |
| SetGlobalInteger | Добавляет команду для установки значения заданного свойства для всех Шейдеров, где свойство является целым числом. |
| SetGlobalMatrix | Добавлена команда "set global shader matrix property". |
| SetGlobalMatrixArray | Добавляет команду задания глобального свойства массива матриц шейдера. |
| SetGlobalRayTracingAccelerationStructure | Добавлена команда для привязки объекта RayTracingAccelerationStructure ко всем стадиям шейдера. |
| SetGlobalTexture | Добавить команду "set global shader texture property", со ссылкой на RenderTexture. |
| SetGlobalVector | Добавлена команда "set global shader vector property". |
| SetGlobalVectorArray | Добавляет команду задания глобального свойства массива векторов шейдера. |
| SetInstanceMultiplier | Добавлена команда для умножения количества экземпляров в каждом вызове отрисовки на заданный множитель. |
| SetInvertCulling | Добавить в буфер команду "set invert culling". |
| SetKeyword | Добавляет команду для задания состояния глобального или локального ключевого слова шейдера. |
| SetLateLatchProjectionMatrices | Установить текущие матрицы стереопроекции для позднего замыкания. Стереоматрицы передаются как массив из двух матриц. |
| SetProjectionMatrix | Добавить команду для установки матрицы проекции. |
| SetRandomWriteTarget | Установить случайную цель записи для Shader Model 4.5 уровня пиксельных шейдеров. |
| SetRayTracingAccelerationStructure | Добавлена команда для установки RayTracingAccelerationStructure для использования в RayTracingShader или ComputeShader. |
| SetRayTracingBufferParam | Добавлена команда для установки параметра буфера входа или выхода на RayTracingShader. |
| SetRayTracingConstantBufferParam | Добавлена команда для установки постоянного буфера на RayTracingShader. |
| SetRayTracingFloatParam | Добавлена команда для установки параметра float на RayTracingShader. |
| SetRayTracingFloatParams | Добавлена команда для установки нескольких последовательных параметров с плавающей запятой на RayTracingShader. |
| SetRayTracingIntParam | Добавлена команда для установки целочисленного параметра на RayTracingShader. |
| SetRayTracingIntParams | Добавлена команда для установки нескольких последовательных целых параметров на RayTracingShader. |
| SetRayTracingMatrixArrayParam | Добавлена команда для установки параметра массива матриц на RayTracingShader. |
| SetRayTracingMatrixParam | Добавлена команда для установки параметра матрицы на RayTracingShader. |
| SetRayTracingShaderPass | Добавлена команда для выбора Shader Pass, который будет использоваться при выполнении шейдеров пересечения луча/геометрии. |
| SetRayTracingTextureParam | Добавлена команда для установки параметра текстуры на RayTracingShader. |
| SetRayTracingVectorArrayParam | Добавлена команда для установки параметра векторного массива на RayTracingShader. |
| SetRayTracingVectorParam | Добавлена команда для установки параметра вектора на RayTracingShader. |
| SetRenderTarget | Добавлена команда "set active render target". |
| SetShadingRateCombiner | Задает комбинатор скорости затенения для определенной стадии. |
| SetShadingRateFragmentSize | Добавлена команда "set base shading rate". |
| SetShadingRateImage | Добавить команду "установить скорость затенения изображения". |
| SetShadowSamplingMode | Добавить команду "set shadow sampling mode". |
| SetSinglePassStereo | Добавить команду для установки однопроходного стерео режима для камеры. |
| SetupCameraProperties | Расписывает настройку глобальных переменных Shader, специфических для Camera. |
| SetViewMatrix | Добавить команду для установки матрицы представления. |
| SetViewport | Добавить команду для установки окна отображения. |
| SetViewProjectionMatrices | Добавить команду для настройки матрицы просмотра и проекции. |
| SetWireframe | Добавить команду "set wireframe" в буфер. |
| UnmarkLateLatchMatrix | Снять отметку со свойства глобального шейдера для позднего замыкания. После снятия отметки, свойство шейдера больше не будет замыкаться поздно. Эта функция предназначена для Universal Render Pipeline (URP) для указания свойств шейдера с поздним замыканием. |
| WaitAllAsyncReadbackRequests | Добавляет команду "AsyncGPUReadback.WaitAllRequests" к CommandBuffer. |
| WaitOnAsyncGraphicsFence | Инструктирует GPU приостановить обработку очереди, пока она не пройдет через ограждение GraphicsFence. |