{ "__type__": "cc.EffectAsset", "_name": "scroll_h", "_objFlags": 0, "_native": "", "properties": null, "techniques": [ { "passes": [ { "blendState": { "targets": [ { "blend": true } ] }, "rasterizerState": { "cullMode": 0 }, "properties": { "texture": { "value": "white", "type": 29 }, "alphaThreshold": { "value": [ 0.5 ], "type": 13 } }, "program": "scroll_h|vs|fs" } ] } ], "shaders": [ { "hash": 136758961, "glsl3": { "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}", "frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n float time = mod( cc_time.x, 10.0 );\n float speed = 0.1;\n float offsetX = fract( time * speed );\n vec2 curUv = v_uv0 + vec2( offsetX, 0.0 );\n vec2 othUv = v_uv0 + vec2( offsetX - 1.0, 0.0 );\n vec4 cur = texture2D( texture, curUv );\n vec4 oth = texture2D( texture, othUv );\n gl_FragColor = oth + cur;\n}" }, "glsl1": { "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}", "frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n#endif\nuniform vec4 cc_time;\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n float time = mod( cc_time.x, 10.0 );\n float speed = 0.1;\n float offsetX = fract( time * speed );\n vec2 curUv = v_uv0 + vec2( offsetX, 0.0 );\n vec2 othUv = v_uv0 + vec2( offsetX - 1.0, 0.0 );\n vec4 cur = texture2D( texture, curUv );\n vec4 oth = texture2D( texture, othUv );\n gl_FragColor = oth + cur;\n}" }, "builtins": { "globals": { "blocks": [ { "name": "CCGlobal", "defines": [] } ], "samplers": [] }, "locals": { "blocks": [ { "name": "CCLocal", "defines": [] } ], "samplers": [] } }, "defines": [ { "name": "USE_TEXTURE", "type": "boolean", "defines": [] }, { "name": "CC_USE_MODEL", "type": "boolean", "defines": [] }, { "name": "USE_ALPHA_TEST", "type": "boolean", "defines": [] } ], "blocks": [ { "name": "ALPHA_TEST", "members": [ { "name": "alphaThreshold", "type": 13, "count": 1 } ], "defines": [ "USE_ALPHA_TEST" ], "binding": 0 } ], "samplers": [ { "name": "texture", "type": 29, "count": 1, "defines": [ "USE_TEXTURE" ], "binding": 30 } ], "record": null, "name": "scroll_h|vs|fs" } ] }