Unity 6.3
0 онлайн 96 гостей 3 в системе
Вход
Конвейеры отображения Шаг 51 из 129

Обновление до 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

  1. Названия файлов следующих шейдеров Shader Graph были переименованы. Новые имена файлов не содержат пробелов:
    Autodesk Interactive
    Autodesk Interactive Masked
    Autodesk Interactive Transparent

    Если ваш код использует метод Shader.Find() для поиска шейдеров, удалите пробелы из имен шейдеров, например, Shader.Find("AutodeskInteractive).

Обновление с URP 7.2.x и более поздних выпусков

  1. 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 году InputData struct.

  • 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

  1. Сначала обновите до URP 7.2.0. См. Обновление до версии 7.2.0 Universal Render Pipeline.

  2. 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.