在后期处理插件中花太长的时间隐藏/ Post FX / Uber Shader

问题描述 投票:0回答:2

2D项目(Unity 2018.3.0)

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

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

  4. 尝试构建,它花费的时间太长,导致出现在充电条Shaders中。https://imgur.com/a/IhHBhTH

这里有解决方案吗?

unity3d shader uber-api post-processing
2个回答
0
投票

编译耗时很长,因为超级着色器中包含一个multi_compile度量公制。着色器变体的数量为2 ^(multi_compile的数量)。

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

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


-1
投票
  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
© www.soinside.com 2019 - 2024. All rights reserved.