Помогите с Unity urp

У меня есть сцена, на которой объекты и я бы хотел, чтобы на часть из них не работал motion blur (ну или даже хотя бы весь пост процессинг). Я пробовал поставить этот не рендерищийся объект на другой слой, в основной камере убирать из culling mask этот слой, создать вторую камеру (без пост процессинга), которая отрисовывывала только этот слой. Но в таком случае у меня у основной камеры вообще не отрисовывался объект.
Можно ли как то реализовать то, что я хочу? и как?

11
2 комментария

Я не спец, но вроде постэффекты работают на всё. Либо они включены, либо нет. Но могу ошибаться.

Ответить

Чат джипити выдал ответ.

Есть несколько способов исключить объекты из motion blur или пост-обработки в Unity:

1. Использование Render Layers и Post-Processing Layers:

Это наиболее эффективный и чистый способ.

Render Layers: Создайте отдельные Render Layers в настройках проекта (Edit > Project Settings > Tags and Layers). Разместите объекты, которые вы хотите исключить из пост-обработки, на отдельном Render Layer.

Post-Processing Layers: В настройках вашего Post-Processing Profile (в компоненте Post-Processing Volume) укажите, какие Render Layers должны обрабатываться. Вы можете выбрать “Exclude” для Render Layer, который содержит объекты, которые не должны обрабатываться.

Motion Blur: Для Motion Blur, используйте этот же принцип. Если Motion Blur является частью вашего Post-Processing Profile, то исключение Render Layer из пост-обработки также исключит его из Motion Blur. Если Motion Blur реализован другим способом, то потребуется другой подход (см. ниже).

2. Использование Render Queues:

Render Queues позволяют контролировать порядок рендеринга объектов. Хотя это не напрямую исключает из пост-обработки, это может помочь в некоторых случаях, например, если motion blur накладывается после рендеринга объектов, то изменение Render Queue может решить проблему. Это менее надежный метод, чем использование Render Layers.

3. Custom Render Pass (Для более сложных случаев):

Если стандартные методы не подходят, вы можете создать свой custom render pass. Это позволяет вам полностью контролировать процесс рендеринга и исключать объекты из любых эффектов пост-обработки, включая motion blur, на уровне кода. Этот метод сложен и требует глубокого понимания Unity’s rendering pipeline.

4. Camera’s Culling Mask:

Настройка Culling Mask камеры может исключать объекты из рендеринга вообще. Это грубый метод, который подходит только если вы совсем не хотите видеть объекты в сцене, но он может быть полезен в редких случаях.

5. Shader Properties (для Motion Blur, если он реализован на уровне шейдера):

Если Motion Blur реализован на уровне шейдера (а не через Post-Processing), то можно добавить в шейдер свойство, позволяющее включать/выключать Motion Blur для конкретного объекта. Это требует модификации шейдера.

Какой метод выбрать:

Для большинства случаев, использование Render Layers и Post-Processing Layers — это наиболее чистый и эффективный способ.
Render Queues может быть полезен в специфических ситуациях.
Custom Render Pass — это мощный, но сложный метод, который требуется только для сложных случаев.
Camera’s Culling Mask — грубый метод, используемый только в крайних случаях.
Shader Properties — используется только если motion blur реализован в шейдере, а не через post-processing.
Прежде чем использовать сложные методы, попробуйте сначала использовать Render Layers и Post-Processing Layers, это обычно решает проблему. Не забудьте назначить соответствующие Render Layers вашим объектам.

Ответить