#pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment // --- // Material Keywords #pragma shader_feature_local_fragment _ALPHATEST_ON #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A //--- // GPU Instancing #pragma multi_compile_instancing #pragma multi_compi...
可以写成 #pragma [multi_compile/shader_feature]_local[_vertex/_fragment] A B 具体例子: #pragma multi_compile_local_vertex A B 此方法在暂时不想缩减关键字可以大幅降低Shaderlab的内存占用。 多说一句,真正想降低Shaderlab内存占用还是需要对自己写的关键字进行缩减也要对#include的外部包带来的关键字进行限...
multi_compile_fragment shader_feature_local_vertex 实际使用中multi_compile与shader_feature基本没有区别。他们主要有两个区别。第一个是在shader_feature后面只跟了一个宏的时候,会生成两个变体,一个是不包含该宏,另一个是包含该宏。另一个区别是打包时的表现。在打包的时候shader_feature不会包含没有使用的变体...
multi_compile_fragment shader_feature_local_vertex 实际使用中multi_compile与shader_feature基本没有区别。他们主要有两个区别。第一个是在shader_feature后面只跟了一个宏的时候,会生成两个变体,一个是不包含该宏,另一个是包含该宏。另一个区别是打包时的表现。在打包的时候shader_feature不会包含没有使用的变体...
shader_feature和multi_compile后面也可以加其他条件,例如,如果确定一组Keyword声明只会导致VertexShader有变化,即可再后面加_vertex,例如shader_feature_vertex。 shader_feature_local的_local声明和变体数无关,是Unity 2021之前为了解决GlobalKeyword数量问题出现的解决方案,声明为Local Keyword不会占用Global Keyword数,建议...
shader_feature和multi_compile后面也可以加其他条件,例如如果确定一组keyword声明只会导致vertexshader有变化,即可再后面加_vertex,例如shader_feature_vertex。 shader_feature_local的_local声明和变体数无关,是Unity2021之前为了解决GlobalKeyword数量问题出现的解决方案,声明为local keyword不会占用global keyword数,建议是...
shader_feature_local的_local声明和变体数无关,是Unity 2021之前为了解决GlobalKeyword数量问题出现的解决方案,声明为Local Keyword不会占用Global Keyword数,建议是如果Keyword声明组是需要材质本身设置(而不是全局的),声明为_local;当Keyword为Local时,Shader.EnableKeyword或CommandBuffer.EnableKeyword这种全局开启Keyword方式...
shader_feature和multi_compile后面也可以加其他条件,例如,如果确定一组Keyword声明只会导致VertexShader有变化,即可再后面加_vertex,例如shader_feature_vertex。 shader_feature_local的_local声明和变体数无关,是Unity 2021之前为了解决GlobalKeyword数量问题出现的解决方案,声明为Local Keyword不会占用Global Keyword数,建议...
Local keywords: shader_feature和multi_compile的主要缺点是,定义的所有关键字都限制了Unity的全局关键字数量(256个全局关键字,加上64个本地关键字)。为了避免这个问题,我们可以使用不同的着色器变体指令:shader_feature_local和multi_compile_local。 shader_feature_local: 与 shader_feature类似, 但是仅限本shader使...
shader_feature_local的_local声明和变体数无关,是Unity2021之前为了解决GlobalKeyword数量问题出现的解决方案,声明为local keyword不会占用global keyword数,建议是如果keyword声明组是需要材质手动勾选的参数,声明为_local;当keyword为local时,Shader.EnableKeyword或CommandBuffer.EnableKeyword这种全局开启keyword方式,...