// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. CCEffect %{ techniques: - passes: - vert: vs frag: fs blendState: targets: - blend: true rasterizerState: cullMode: none properties: texture0: { value: white } texture1: { value: white } texture2: { value: white } texture3: { value: white } texture4: { value: white } texture5: { value: white } texture6: { value: white } texture7: { value: white } alphaThreshold: { value: 0.5 } }% CCProgram vs %{ precision highp float; #include #include in vec3 a_position; in vec4 a_color; out lowp vec4 v_color; #if USE_TEXTURE in vec2 a_uv0; out mediump vec3 v_uv0; #endif void main () { vec4 pos = vec4(a_position, 1); #if CC_USE_MODEL pos = cc_matViewProj * cc_matWorld * pos; #else pos = cc_matViewProj * pos; #endif #if USE_TEXTURE v_uv0.y = a_uv0.y; v_uv0.z = mod(a_uv0.x,10.0); v_uv0.x = (a_uv0.x-v_uv0.z)*0.000001; #endif v_color = a_color; gl_Position = pos; } }% CCProgram fs %{ precision mediump float; #include #include in lowp vec4 v_color; #if USE_TEXTURE in mediump vec3 v_uv0; uniform sampler2D texture0; uniform sampler2D texture1; uniform sampler2D texture2; uniform sampler2D texture3; uniform sampler2D texture4; uniform sampler2D texture5; uniform sampler2D texture6; uniform sampler2D texture7; #endif vec4 Texture(sampler2D texture,vec2 uv, vec4 o){ CCTexture(texture, uv, o); return o; } void main () { vec4 o = vec4(1, 1, 1, 1); #if USE_TEXTURE float index = v_uv0.z; if(index<0.5) o = Texture(texture0 , v_uv0.xy , o); else if(index<1.5) o = Texture(texture1 , v_uv0.xy , o); else if(index<2.5) o = Texture(texture2 , v_uv0.xy , o); else if(index<3.5) o = Texture(texture3 , v_uv0.xy , o); else if(index<4.5) o = Texture(texture4 , v_uv0.xy , o); else if(index<5.5) o = Texture(texture5 , v_uv0.xy , o); else if(index<6.5) o = Texture(texture6 , v_uv0.xy , o); else o = Texture(texture7 , v_uv0.xy , o); #endif o *= v_color; ALPHA_TEST(o); #if USE_BGRA gl_FragColor = o.bgra; #else gl_FragColor = o.rgba; #endif } }%