Обновление до URP 12 (Unity 2021.2)
На этой странице описано, как обновить старую версию Universal Render Pipeline (URP) до версии 12.0.x.
Информацию о преобразовании ассетов, созданных для проекта Built-in Render Pipeline, в ассеты, совместимые с URP, см. на странице Render Pipeline Converter.
Обновление с URP 11.x.x
При открытии существующего проекта в Unity Editor, содержащего URP 12, Unity обновляет существующие ассеты Forward Renderer в ассеты Universal Renderer.
Ассет Universal Renderer содержит свойство Rendering Path, которое позволяет выбрать Путь Передового или Отложенного Рендирования.
Метод
ClearFlag.Depthбольше не очищает буфер Stencil. Используйте новый методClearFlag.Stencil.URP 12 реализует функцию Render Pipeline Converter. Эта функция заменяет функции обновления ассетов, которые ранее были доступны в Edit > Render Pipeline > Universal Render Pipeline > Upgrade…
Обновление с URP 10.0.x–10.2.x
-
Названия файлов следующих шейдеров Shader Graph были переименованы. Новые имена файлов не содержат пробелов:
Autodesk InteractiveAutodesk Interactive MaskedAutodesk Interactive TransparentЕсли ваш код использует метод
Shader.Find()для поиска шейдеров, удалите пробелы из имен шейдеров, например,Shader.Find("AutodeskInteractive).
Обновление с URP 7.2.x и более поздних выпусков
- URP 12.x.x не поддерживает пакет Post-Processing Stack v2. Если ваш Project использует пакет Post-Processing Stack v2, сначала перенесите эффекты, использующие этот пакет.
DepthNormals Пропуск
Начиная с версии 10.0.x, URP может генерировать обычную текстуру под названием _CameraNormalsTexture. Чтобы отобразить эту текстуру в вашем пользовательском шейдере, добавьте Pass с именем DepthNormals. Для примера, проверьте реализацию в Lit.shader.
Экран пространства окружающей окклюзии (SSAO)
URP 10.0.x реализует эффект окклюзии окружающего пространства экрана (SSAO).
Если вы собираетесь использовать эффект SSAO с вашими пользовательскими шейдерами, рассмотрите следующие объекты, связанные с SSAO:
Ключевое слово
_SCREEN_SPACE_OCCLUSION.Input.hlslсодержит новую декларациюfloat2 normalizedScreenSpaceUVв 2000 годуInputDatastruct.-
Lighting.hlslсодержитAmbientOcclusionFactorструктура с переменными для расчёта непрямого и прямого затенения:struct AmbientOcclusionFactor { half indirectAmbientOcclusion; half directAmbientOcclusion; }; -
Lighting.hlslсодержит следующую функцию для семплирования текстуры SSAO:half SampleAmbientOcclusion(float2 normalizedScreenSpaceUV) -
Lighting.hlslсодержит следующую функцию:AmbientOcclusionFactor GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)
Чтобы поддержать SSAO в пользовательском шейдере, добавьте DepthNormals Pass и _SCREEN_SPACE_OCCLUSION ключевое слово в шейдер. Например, проверьте Lit.shader.
Если ваш пользовательский шейдер реализует пользовательские функции освещения, используйте функцию GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV) для получения значения AmbientOcclusionFactor для расчетов освещения.
Нормальный смещение тени
В 11.0.x формула, используемая для применения Shadow Normal Bias, была немного изменена, чтобы лучше работать с точечным освещением. В результате, чтобы точно соответствовать контурам тени из предыдущих ревизий, параметр может быть скорректирован в некоторых сценах. Как правило, использование 1.4 вместо 1.0 для Направленного освещения обычно достаточно.
Промежуточная текстура
В предыдущих версиях URP, URP выполнял рендеринг через промежуточный рендер, если рендер имел какие-либо активные функции рендера. На некоторых платформах это имело значительные последствия для производительности. В этом выпуске URP решает эту проблему следующим образом: URP ожидает, что функции рендера объявляют свои входы с помощью метода ScriptableRenderPass.ConfigureInput. Метод предоставляет информацию, которую URP использует для автоматического определения необходимости рендеринга через промежуточную текстуру.
Для целей совместимости в Универсальном Рендерере появилась новая характеристика Промежуточная Текстура. Если вы выберете Всегда в характеристике, URP будет использовать промежуточную текстуру. Выбор Авто включает новое поведение. Используйте параметр Всегда только в том случае, если Функция Рендерера не объявляет свои входы с помощью метода ScriptableRenderPass.ConfigureInput.
Чтобы обеспечить правильную работу существующих проектов, все существующие ассеты универсального рендерера, которые использовали любые функции рендерера (за исключением тех, которые включены в URP), имеют выбранную опцию Всегда в свойстве Промежуточная текстура. Все новые созданные ассеты универсального рендерера имеют выбранную опцию Авто.
Обновление с URP 7.0.x–7.1.x
Сначала обновите до URP 7.2.0. См. Обновление до версии 7.2.0 Universal Render Pipeline.
URP 8.x.x не поддерживает пакет Post-Processing Stack v2. Если ваш Project использует пакет Post-Processing Stack v2, сначала перенесите эффекты, использующие этот пакет.
Обновление с LWRP на 12.x.x
- Нет прямого пути обновления от LWRP до URP 12.x.x. Выполните шаги для обновления LWRP до URP 11.x.x сначала, а затем обновите от URP 11.x.x до URP 12.x.x.