Занимает слишком много времени Hidden/Post FX/Uber Shader в плагине постобработки

2D-проект (Unity 2018.3.0)

  1. Я загружаю плагин Unity Post Processing
  2. Добавьте в камеру скрипт https://imgur.com/a/EduR7zw

  3. Настроить только цветокоррекцию https://imgur.com/a/1tPOc4r

  4. Попробуйте построить, и это займет слишком много времени, потому что на шкале заряда появятся шейдеры. https://imgur.com/a/IhHBhTH

Любое решение здесь?


person Ferran    schedule 06.02.2019    source источник
comment
Что ж, вы добавили подключаемый модуль --> похоже, он содержит несколько шейдеров --> сборка займет больше времени, чем раньше.   -  person derHugo    schedule 07.02.2019
comment
но я разговариваю с людьми, и это слишком много шейдеров, и я думаю, что не использую их, поэтому мне нужен совет, чтобы уменьшить или удалить их. Я не знаю. я в 2D   -  person Ferran    schedule 07.02.2019


Ответы (2)


Компиляция занимает много времени, потому что в убер-шейдере есть куча метрик multi_compiles. Количество вариантов шейдера 2^(количество multi_compiles).

Вы можете уменьшить количество вариантов, вручную отредактировав убершейдер и удалив некоторые строки multi_compile, которые относятся к функциям, которые вы не используете.

Здесь — это пример некоторых строк, которые вы можете закомментировать.

person Kalle Halvarsson    schedule 07.02.2019
comment
Отредактировал ответ. - person Kalle Halvarsson; 07.02.2019
comment
это идет немного быстрее, но не то, что я ожидал, но ты! - person Ferran; 07.02.2019
comment
Боюсь, это единственный способ повлиять на скорость сборки. Если вы закомментируете все, кроме строки COLOR_GRADING, останется только около 4 вариантов. Вы также можете заменить #pragma multi_compile __ SOME_FEATURE на #define SOME FEATURE, если хотите оставить его постоянно включенным. - person Kalle Halvarsson; 07.02.2019
comment
боже мой, я думаю, что это сработало, мне нужно сделать больше тестов и опубликовать это, ты !!!! - person Ferran; 08.02.2019
comment
Попробуйте отметить этот пост как ответ, если он решил вашу проблему. - person Kalle Halvarsson; 10.02.2019

  1. Перейдите в Активы->Постобработка->Ресурсы->Шейдеры.
  2. Найдите «Убер» и откройте код.
  3. В первых строках скрипта вы увидите это:

    #pragma multi_compile __ UNITY_COLORSPACE_GAMMA
    #pragma multi_compile __ CHROMATIC_ABERRATION
    #pragma multi_compile __ DEPTH_OF_FIELD DEPTH_OF_FIELD_COC_VIEW
    #pragma multi_compile __ BLOOM BLOOM_LENS_DIRT
    #pragma multi_compile __ COLOR_GRADING COLOR_GRADING_LOG_VIEW
    #pragma multi_compile __ USER_LUT
    #pragma multi_compile __ GRAIN
    #pragma multi_compile __ VIGNETTE_CLASSIC VIGNETTE_MASKED
    #pragma multi_compile __ DITHERING
    
  4. Измените «#pragma» на «#define» и оставайтесь в прагме, только если вы собираетесь использовать этот процесс.

В моем случае я использую только ColorGrading

#define  multi_compile __ UNITY_COLORSPACE_GAMMA
    #define  multi_compile __ CHROMATIC_ABERRATION
    #define  multi_compile __ DEPTH_OF_FIELD DEPTH_OF_FIELD_COC_VIEW
    #define  multi_compile __ BLOOM BLOOM_LENS_DIRT
    #pragma multi_compile __ COLOR_GRADING COLOR_GRADING_LOG_VIEW
    #define  multi_compile __ USER_LUT
    #define  multi_compile __ GRAIN
    #define  multi_compile __ VIGNETTE_CLASSIC VIGNETTE_MASKED
    #define  multi_compile __ DITHERING
person Ferran    schedule 20.02.2019
comment
Это дало мне ошибки повсюду. хз что делать - person Herman Neple; 20.10.2019