| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 | /* clang-format off */[vertex]/*from VisualServer:ARRAY_VERTEX=0,ARRAY_NORMAL=1,ARRAY_TANGENT=2,ARRAY_COLOR=3,ARRAY_TEX_UV=4,ARRAY_TEX_UV2=5,ARRAY_BONES=6,ARRAY_WEIGHTS=7,ARRAY_INDEX=8,*/#ifdef USE_2D_VERTEX#define VFORMAT vec2#else#define VFORMAT vec3#endif/* INPUT ATTRIBS */layout(location = 0) in highp VFORMAT vertex_attrib;/* clang-format on */layout(location = 1) in vec3 normal_attrib;#ifdef ENABLE_TANGENTlayout(location = 2) in vec4 tangent_attrib;#endif#ifdef ENABLE_COLORlayout(location = 3) in vec4 color_attrib;#endif#ifdef ENABLE_UVlayout(location = 4) in vec2 uv_attrib;#endif#ifdef ENABLE_UV2layout(location = 5) in vec2 uv2_attrib;#endif#ifdef ENABLE_SKELETONlayout(location = 6) in ivec4 bone_attrib;layout(location = 7) in vec4 weight_attrib;#endif/* BLEND ATTRIBS */#ifdef ENABLE_BLENDlayout(location = 8) in highp VFORMAT vertex_attrib_blend;layout(location = 9) in vec3 normal_attrib_blend;#ifdef ENABLE_TANGENTlayout(location = 10) in vec4 tangent_attrib_blend;#endif#ifdef ENABLE_COLORlayout(location = 11) in vec4 color_attrib_blend;#endif#ifdef ENABLE_UVlayout(location = 12) in vec2 uv_attrib_blend;#endif#ifdef ENABLE_UV2layout(location = 13) in vec2 uv2_attrib_blend;#endif#ifdef ENABLE_SKELETONlayout(location = 14) in ivec4 bone_attrib_blend;layout(location = 15) in vec4 weight_attrib_blend;#endif#endif/* OUTPUTS */out VFORMAT vertex_out; //tfb:#ifdef ENABLE_NORMALout vec3 normal_out; //tfb:ENABLE_NORMAL#endif#ifdef ENABLE_TANGENTout vec4 tangent_out; //tfb:ENABLE_TANGENT#endif#ifdef ENABLE_COLORout vec4 color_out; //tfb:ENABLE_COLOR#endif#ifdef ENABLE_UVout vec2 uv_out; //tfb:ENABLE_UV#endif#ifdef ENABLE_UV2out vec2 uv2_out; //tfb:ENABLE_UV2#endif#ifdef ENABLE_SKELETONout ivec4 bone_out; //tfb:ENABLE_SKELETONout vec4 weight_out; //tfb:ENABLE_SKELETON#endifuniform float blend_amount;void main() {#ifdef ENABLE_BLEND	vertex_out = vertex_attrib_blend + vertex_attrib * blend_amount;#ifdef ENABLE_NORMAL	normal_out = normal_attrib_blend + normal_attrib * blend_amount;#endif#ifdef ENABLE_TANGENT	tangent_out.xyz = tangent_attrib_blend.xyz + tangent_attrib.xyz * blend_amount;	tangent_out.w = tangent_attrib_blend.w; //just copy, no point in blending his#endif#ifdef ENABLE_COLOR	color_out = color_attrib_blend + color_attrib * blend_amount;#endif#ifdef ENABLE_UV	uv_out = uv_attrib_blend + uv_attrib * blend_amount;#endif#ifdef ENABLE_UV2	uv2_out = uv2_attrib_blend + uv2_attrib * blend_amount;#endif#ifdef ENABLE_SKELETON	bone_out = bone_attrib_blend;	weight_out = weight_attrib_blend + weight_attrib * blend_amount;#endif#else //ENABLE_BLEND	vertex_out = vertex_attrib * blend_amount;#ifdef ENABLE_NORMAL	normal_out = normal_attrib * blend_amount;#endif#ifdef ENABLE_TANGENT	tangent_out.xyz = tangent_attrib.xyz * blend_amount;	tangent_out.w = tangent_attrib.w; //just copy, no point in blending his#endif#ifdef ENABLE_COLOR	color_out = color_attrib * blend_amount;#endif#ifdef ENABLE_UV	uv_out = uv_attrib * blend_amount;#endif#ifdef ENABLE_UV2	uv2_out = uv2_attrib * blend_amount;#endif#ifdef ENABLE_SKELETON	bone_out = bone_attrib;	weight_out = weight_attrib * blend_amount;#endif#endif	gl_Position = vec4(0.0);}/* clang-format off */[fragment]void main() {}/* clang-format on */
 |