Эта страница содержит информацию об использовании CommandBuffers во встроенном конвейере рендеринга. Для получения информации об использовании CommandBuffers в конвейерах рендеринга на основе скриптового рендерингапроцесса вывода графики на экран (или в текстуру рендеринга) ). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь Pipeline, см. Планирование и выполнение команд рендеринга в Scriptable Rendering Pipeline.
Основные сведения о CommandBuffer
CommandBuffer содержит список команд рендеринга (например, задание цели рендеринга или отрисовка данной сетки). Вы можете поручить Unity запланировать и выполнить эти команды в различных точках встроенного конвейера рендеринга, что позволит вам настраивать и расширять функции рендеринга Unity.

Вы можете немедленно выполнить CommandBuffers с помощью Graphics.ExecuteCommandBuffer API или запланировать их так, чтобы они возникали в заданной точке рендеринга. трубопровод. Чтобы запланировать их, используйте API Camera.AddCommandBuffer с перечислениемCameraEvent и API Light.AddCommandBuffer с перечислением LightEvent. Чтобы узнать, когда Unity выполняет запланированные таким образом CommandBuffers, см. порядок выполнения CameraEvent и LightEvent.
Полный список команд, которые можно выполнять с помощью CommandBuffers, см. в документации по API CommandBuffer. Обратите внимание, что некоторые команды поддерживаются только на определенном оборудовании; например, команды, относящиеся к трассировке лучейпроцессу создания изображения путем отслеживания лучей от камеры через каждый пиксель и записи вклад цвета в точку попадания. Это альтернатива растеризации. трассировка лучей
См. в Словарь поддерживаются только в DX12.
Примеры командного буфера

Запись в блоге Unity Расширение Конвейер рендеринга Unity 5: Command Buffers представляет CommandBuffers во встроенном конвейере рендеринга. В нем описывается, как использовать CommandBuffers для достижения нескольких различных эффектов, и содержится образец проекта и пример кода. Проект создавался для более старой версии Unity, но принципы те же.
Порядок выполнения событий CameraEvent и LightEvent
Событие камеры
Порядок выполнения CameraEvents зависит от пути рендерингаТехника Unity использует для рендеринга графики. Выбор другого пути влияет на производительность вашей игры и на то, как рассчитываются освещение и затенение. Некоторые пути больше подходят для разных платформ и оборудования, чем другие. Подробнее
Посмотрите в Словарь, который использует ваш проект.
Путь отложенного рендеринга
- BeforeGBuffer
- Unity отображает непрозрачную геометрию
- ПослеGBuffer
- Unity решает проблему глубины.
- BeforeReflections
- Unity визуализирует отражения по умолчанию, а Reflection Probeкомпонент рендеринга, который захватывает сферический вид своего окружения во всех направлениях, а не как камера. Захваченное изображение затем сохраняется как кубическая карта, которую можно использовать для объектов с отражающими материалами. Подробнее
См. в Словарь отражения. - AfterReflections
- Unity копирует отражения в канал Emissive G-буфера.
- До освещения
- Unity отображает тени. См. порядок выполнения LightEvent.
- После освещения
- ДоFinalPass
- Unity обрабатывает последний проход.
- ПослеFinalPass
- BeforeForwardOpaque (вызывается только при наличии непрозрачной геометрии, которую нельзя визуализировать с помощью отложенного)
- Unity отображает непрозрачную геометрию, которую невозможно отобразить с помощью отложенного рендеринга.
- AfterForwardOpaque (вызывается только при наличии непрозрачной геометрии, которую нельзя визуализировать с помощью deferred)
- BeforeSkybox
- Unity визуализирует небобоксМатериал особого типа, используемый для представления неба. Обычно шестигранник. Подробнее
См. в Словарь. - AfterSkybox
- Unity отображает ореолы.
- BeforeImageEffectsOpaque
- Unity применяет только непрозрачную постобработкуПроцесс, улучшающий внешний вид продукта за счет применения фильтров и эффектов до того, как изображение появится на экране. экран. Вы можете использовать эффекты постобработки для имитации физических свойств камеры и пленки, например Bloom и Depth of Field. Дополнительная информация постобработка, постобработка, постобработка
См. в Словарь. - AfterImageEffectsOpaque
- BeforeForwardAlpha
- Unity отображает прозрачную геометрию, а UI(пользовательский интерфейс) позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словарь Холсты с Режим рендерингаСтандартный параметр материала шейдера, который позволяет выбрать, использует ли объект прозрачность, и если да, то какой тип режима наложения использовать. Подробнее
См. в Словарь раздела Пространство экрана – КамераКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь. - AfterForwardAlpha
- До HaloAndLensFlares
- Unity визуализирует бликиКомпонент, имитирующий эффект преломления света внутри объектива камеры. Используйте Lens Flare для создания очень ярких источников света или добавления атмосферы в сцену. Подробнее
См. в Словарь. - После HaloAndLensFlares
- BeforeImageEffects
- Unity применяет эффекты постобработки.
- AfterImageEffects
- После всего
- Unity отображает холсты пользовательского интерфейса в режиме рендеринга, отличном от Пространство экрана — камера.
Прямой путь отрисовки
- BeforeDepthTexture
- Unity отрисовывает глубину непрозрачной геометрии.
- AfterDepthTexture
- BeforeDepthNormalsTexture
- Unity отображает нормали глубины для непрозрачной геометрии.
- AfterDepthNormalsTexture
- Unity отображает тени. См. порядок выполнения LightEvent.
- BeforeForwardOpaque
- Unity отображает непрозрачную геометрию.
- AfterForwardOpaque
- BeforeSkybox
- Unity визуализирует скайбокс.
- AfterSkybox
- Unity отображает ореолы.
- BeforeImageEffectsOpaque
- Unity применяет эффекты постобработки только для непрозрачных материалов.
- AfterImageEffectsOpaque
- BeforeForwardAlpha
- Unity визуализирует прозрачную геометрию и холсты пользовательского интерфейса с режимом визуализации Пространство экрана — камера.
- AfterForwardAlpha
- До HaloAndLensFlares
- Unity визуализирует блики.
- После HaloAndLensFlares
- BeforeImageEffects
- Unity применяет эффекты постобработки.
- AfterImageEffects
- После всего
- Unity отображает холсты пользовательского интерфейса в режиме рендеринга, отличном от Пространство экрана — камера.
Порядок выполнения LightEvent
Во время описанного выше этапа «рендеринга теней» для каждого источника света, отбрасывающего тени, Unity выполняет следующие шаги:
- BeforeShadowMap
- До ShadowMapPass
- Unity отрисовывает все отбрасывающие тени для текущего прохода.
- ПослеShadowMapPass
- Unity повторяет последние три шага для каждого прохода.
- AfterShadowMap
- BeforeScreenSpaceMask
- Unity собирает карту теней в буфер экранного пространства и выполняет фильтрацию. *AfterScreenSpaceMask