Hidden/Post FX/Uber 着色器在 post 处理插件中花费太长时间
Take too long Hidden/Post FX/Uber Shader in post processing plugin
2D项目(Unity 2018.3.0)
- 我下载Unity的插件Post处理
将脚本添加到相机
https://imgur.com/a/EduR7zw
仅配置颜色分级
https://imgur.com/a/1tPOc4r
尝试构建,但花费的时间太长,导致出现在充电栏着色器中。
https://imgur.com/a/IhHBhTH
这里有什么解决办法吗?
编译时间很长,因为 uber 着色器中有一个 multi_compiles 的度量 fuckton。着色器变体的数量为 2^(multi_compiles 的数量)。
您可以通过手动编辑 ubershader 并删除一些 multi_compile 引用您不使用的功能的行来减少变体的数量。
Here 是您可以注释掉的一些行的示例。
- 转到资源->后处理->资源->着色器
- 找到"Uber"并打开代码。
在脚本的第一行你会看到这个:
#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
将“#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
2D项目(Unity 2018.3.0)
- 我下载Unity的插件Post处理
将脚本添加到相机 https://imgur.com/a/EduR7zw
仅配置颜色分级 https://imgur.com/a/1tPOc4r
尝试构建,但花费的时间太长,导致出现在充电栏着色器中。 https://imgur.com/a/IhHBhTH
这里有什么解决办法吗?
编译时间很长,因为 uber 着色器中有一个 multi_compiles 的度量 fuckton。着色器变体的数量为 2^(multi_compiles 的数量)。
您可以通过手动编辑 ubershader 并删除一些 multi_compile 引用您不使用的功能的行来减少变体的数量。
Here 是您可以注释掉的一些行的示例。
- 转到资源->后处理->资源->着色器
- 找到"Uber"并打开代码。
在脚本的第一行你会看到这个:
#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
将“#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