shader变体功能是引擎常见需求,可以通过自定义选项来从同一个shader源码中编译出不同的shader,而一个最常接触到的变体编译就是在代码中编写API_VULKAN、API_OPENGLES、PLATFORM_MOBILE宏来针对不同平台以及Api的差异进行处理。但这类平台和Api的变体相对于用户shader变体来说,最大区别就是程序在运行时仅会加载一种,如果要切换API则需要重新启动应用程序来加载另一种,不用担心这类的变体过多而导致内存问题;但用户shader变体一般是用来控制不同的效果开关的,是有全部都载…