Теперь доступно: 12 рецептов популярных визуальных эффектов с использованием универсального конвейера рендеринга

Наша новая поваренная книга для эффектов Universal Render Pipeline (URP) теперь доступна для бесплатной загрузки. В этом руководстве представлены 12 рецептов популярных визуальных эффектов, которые можно применять в самых разных играх, художественных стилях и платформах. Приготовьтесь к работе с возможностями рендерера, сетками с GPU-интерфейсом, декалями, объемными материалами и многим другим. Вы можете использовать его наряду с Введение в Universal Render Pipeline для продвинутых создателей Unity в котором содержится много информации о том, как использовать URP для создателей, разработавших проекты с помощью встроенного конвейера рендеринга.
Вот удобный обзор рецептов, которые вы найдете в книге.
Функции рендерера предоставляют вам широкие возможности для экспериментов с освещением и эффектами. Этот рецепт посвящен трафаретам, в нем используется лишь необходимый минимум кода. Если вы работаете рядом с проектом-образцом, откройте сцену-образец через Scenes > Renderer Features > SmallRoom - Stencil в редакторе.
В примере проекта используется лупа над столом, а цель - преобразовать линзу лупы так, чтобы она позволяла видеть сквозь стол, как рентгеновский снимок. В этом подходе используется комбинация масок слоев, шейдеров и функций рендерера.
Функции рендерера - это отличный способ добиться впечатляющих пользовательских эффектов или игровых возможностей.

Обмен данными между CPU и GPU является основным узким местом в конвейере рендеринга. Если у вас есть модель, которую нужно многократно рендерить, используя одну и ту же геометрию и материал, то Unity предоставляет отличные инструменты для этого, которые рассматриваются в главе "Инстансинг" этой книги.
В этом рецепте используется поле с травой, чтобы проиллюстрировать концепцию инстансирования. Он использует SRP Batcher, инстансы GPU, RenderMeshPrimitives и ComputeBuffers.

Часто используемые вместе, шейдеры toon и outline представляют собой две разные задачи. Шейдер toon берет кулер, который был бы создан с помощью URP-совместимого шейдера Lit, и наращивает вывод, а не позволяет создавать непрерывные градиенты, тем самым требуя создания собственной модели освещения.
В примере, приведенном в этом рецепте, используется Shader Graph. Однако Shader Graph не поддерживает пользовательское освещение, поэтому нет узла для прямого доступа к основному и дополнительному освещению. Вместо этого вы можете использовать пользовательский узел для доступа к ним.
Ознакомьтесь с рецептом затенения тонов и контуров, чтобы узнать все подробности.

Ambient Occlusion - это техника постобработки, доступная в Unity 2020.2. Этот эффект затемняет складки, отверстия, пересечения и поверхности, расположенные близко друг к другу. В реальном мире такие области обычно блокируют или закрывают окружающий свет, поэтому кажутся более темными.
Посмотрите, как можно реализовать эффект Screen Space Ambient Occlusion (SSAO) в реальном времени в качестве функции рендеринга с помощью URP.

Декали - отличный способ нанести на поверхность накладку. Они часто используются для добавления визуальных эффектов, таких как пулевые отверстия или протекторы шин, в игровое окружение, когда игрок взаимодействует со сценой.
Если вы хотите следовать этому рецепту, вы будете работать со свойствами URP Decal Projection, создавать материал и даже добавлять деколь с помощью кода.

Рецепт воды создается в Shader Graph, чтобы сделать шаги более доступными. Он строится в три этапа:
- Создание акварели
- Перемещение черепичных карт нормалей для добавления вейвлетов к поверхности
- Добавление смещения к позициям вершин для создания эффекта выпуклости
Хотя этот рецепт является основой для простого шейдера воды, вы можете улучшить его с помощью "Каустических отражений", "Преломления" и "Пены".
Использование LUT-текстур - эффективный способ создания эффектных цветовых градаций, и этот подход может быть полезен во многих играх. В нем используется один фильтр, но описанные действия применимы ко всем фильтрам.

Освещение с помощью URP похоже на использование встроенного конвейера рендеринга. Основное различие заключается в том, где искать настройки.
В этой главе книги рецептов рассматриваются соответствующие рецепты для освещения и теней в реальном времени, включая запеченное и смешанное освещение с использованием GPU Progressive Lightmapper, Light Probes и Reflection Probes. Вы получите достаточно инструкций для приготовления пяти блюд!
Следует помнить несколько вещей о шейдерах и цветовом пространстве: При использовании освещения в URP у вас есть выбор между Lit Shader и Simple Lit Shader, что в значительной степени является художественным решением. Если вы хотите получить реалистичный рендер, можно использовать шейдер Lit, а если вам нужен более стилизованный рендер, можно использовать Simple Lit, который дает потрясающие результаты.

Настройки тени задаются с помощью объекта Renderer Data и объекта URP Asset, использующего URP. Вы можете использовать эти активы для определения верности ваших теней.

Этот рецепт включает в себя советы по: Разрешение основного света и теней, каскады теней, запекание света и многое другое.

Световые зонды сохраняют данные о свете в определенной позиции в окружении, когда вы запекаете освещение, нажав кнопку Generate Lighting на панели Window > Rendering > Lighting. Это гарантирует, что освещение динамического объекта, перемещающегося по окружению, отражает уровни освещения, используемые запекаемыми объектами. В темном месте он будет темным, а в светлом - более ярким.
Следуя этому рецепту, вы узнаете, как расположить световые зонды с помощью кодового подхода, чтобы ускорить редактирование, как использовать зонды отражения в сцене и как их смешивать.

Screen Space Refraction использует текущую непрозрачную текстуру, созданную конвейером рендеринга, в качестве исходной текстуры для отображения пикселей на рендеримую модель. Этот метод и рецепт заключается в деформации ультрафиолета, используемого для создания образца изображения.
Узнайте, как использовать карту нормалей для создания эффекта преломления, а также как оттенить эффект преломления.

Это рецепт использования марширования лучей для рендеринга 3D-текстуры. Unity поддерживает 3D-текстуры, которые представляют собой массив изображений, расположенных в виде сетки на одной текстуре, подобно атласу текстур. Разница в том, что каждое изображение имеет одинаковый размер. Используя 3D UV-значение, вы можете получить тексель из сетки изображений с помощью UV.Z, определяющего строку и столбец отдельного изображения, которое нужно использовать.
Вы также можете использовать Houdini при создании 3D-текстуры. Альтернативой 3D-текстуре может быть использование многослойного шума Перлина или предварительное запекание текстуры шума в Unity.


В Unity можно бесплатно получить множество дополнительных ресурсов. Как уже упоминалось в начале этой статьи, электронная книга Введение в универсальный конвейер рендеринга для опытных создателей Unity это ценный ресурс, помогающий опытным разработчикам и техническим художникам Unity перенести свои проекты со встроенного конвейера рендеринга на URP.
Все передовые электронные книги и статьи доступны в хабе лучших практик Unity. Электронные книги также можно найти на странице документации по передовым методам.
