#pragma 记录
#pragma vertex 指定顶点着色器的主入口函数
#pragma fragment 指定片元着色器的主入口函数
#pragma geometry 指定几何着色器(geometry shader)的主入口函数, 因为几何着色器是从DirectX3D 10, OpenGL 3.2版本才开始引入的, 启用此指示符, 将会自动启用执行 #pragma target 4.0语句
#pragma hull name 指定表层着色器(hull shader)的主入口函数, 因为表层着色器是从DirectX3D 11版本才开始引入的, 启用此指示符, 将会自动启用#pragma target 5.0
#pragma domain 指定范畴着色器(domain shader)的主入口函数, 因为几何着色器是从DirectX3D 11版本才开始引入的, 启用此指示符, 将会自动启用#pragma target 5.0
#pragma target 设置着色器目标值(shader target),告诉编译器按什么版本的着色器数据模型(shader model), 以及面向什么目标平台去编译着色器代码
#pragma only_renderers 把着色器源代码编译成只被所声明的渲染器支持的目标代码, 不启用此选项, 将默认地把代码编译成引擎所支持的所有渲染器都能执行
#pragma exclude_renders 把着色器源代码编译成被除所声明之外的渲染器支持的目标代码. 不启用此选项, 将默认地把代码编译成引擎所支持的所有渲染器都能执行
#pragma multi_compile 指定多重的着色器多样体(shader variants)
#pragma enable_d3d11_debug_symbols 如果着色器代码编译成DirectX11 版本, 则生成着色器调试信息
#pragma hardware_tier_variants 对于可以运行所选渲染器的每个硬件层, 生成每个已编译着色器的多个着色器硬件变体
#pragma glsl, #pragma glsl_no_auto_normalization, #pragma profileoption, #pragma fragmentoption Unity3D 5.0及之后的版本已废除这些指示符
#pragma fragmentoption ARB_precision_hint_fastest
https://www.zhihu.com/question/58652639
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON
#pragma shader_feature _REQUIRE_UV2
#pragma instancing_options procedural:vertInstancingSetup