在后期处理插件中使用长的隐藏/后置FX / Uber着色器

时间:2019-02-06 22:46:44

标签: unity3d shader uber-api post-processing

2D项目(Unity 2018.3.0)

  1. 我下载了Unity Post Procesing插件
  2. 将脚本添加到相机 https://imgur.com/a/EduR7zw

  3. 仅配置颜色分级 https://imgur.com/a/1tPOc4r

  4. 尝试构建,并且花费较长时间才能出现在充电条Shaders中。 https://imgur.com/a/IhHBhTH

这里有解决方案吗?

2 个答案:

答案 0 :(得分:0)

编译时间很长,因为uber着色器中包含度量标准的multi_compile。着色器变体的数量为2 ^(multi_compile的数量)。

您可以通过手动编辑ubershader来减少变体的数量,并删除一些multi_compile行,这些行引用了不使用的功能。

Here是一些您可以注释掉的行的示例。

答案 1 :(得分:0)

  1. 转到“资产”->“后处理”->“资源”->“着色器”
  2. 找到“ Uber”并打开代码。
  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”,仅在要使用此过程时才保留在pragma中。

就我而言,我仅使用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