Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Расширение встроенного конвейера рендеринга с помощью CommandBuffers

Эта страница содержит информацию об использовании 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 отображает холсты пользовательского интерфейса в режиме рендеринга, отличном от Пространство экрана — камера.

Прямой путь отрисовки

Порядок выполнения LightEvent

Во время описанного выше этапа «рендеринга теней» для каждого источника света, отбрасывающего тени, Unity выполняет следующие шаги:

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3