{ "ver": "1.0.27", "uuid": "60e86f0d-285e-4468-8988-3c5b048e5b91", "importer": "effect", "compiledShaders": [ { "glsl1": { "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform float flipProgress;\nuniform float bendStrength;\nuniform float enableShadow;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n float adjustedProgress = (flipProgress - 0.1) / 0.7;\n adjustedProgress = clamp(adjustedProgress, 0.0, 1.0);\n float flipAngle = (1.0 - adjustedProgress) * 3.14159;\n float relativeY = pos.y - 0.5;\n float bend = sin(flipAngle) * bendStrength * relativeY;\n pos.y = 0.5 + relativeY * cos(flipAngle);\n pos.z = relativeY * sin(flipAngle) + bend;\n pos.z = clamp(pos.z, -0.5, 0.5);\n if (enableShadow > 0.5 && flipProgress > 0.1 && flipProgress < 0.9) {\n float shadowIntensity = sin(flipAngle) * 0.5;\n v_color = vec4(a_color.rgb * (1.0 - shadowIntensity * 0.5), a_color.a);\n } else {\n v_color = a_color;\n }\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n gl_Position = cc_matViewProj * pos;\n}", "frag": "\nprecision highp float;\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform float flipProgress;\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= texture2D(texture, v_uv0);\n #endif\n o *= v_color;\n float adjustedProgress = (flipProgress - 0.1) / 0.7;\n adjustedProgress = clamp(adjustedProgress, 0.0, 1.0);\n if (adjustedProgress < 0.3) {\n float backFaceAlpha = (0.5 - adjustedProgress) * 2.0;\n o.a *= (1.0 - backFaceAlpha * 0.7);\n }\n gl_FragColor = o;\n}" }, "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};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform Properties {\n float flipProgress;\n float bendStrength;\n float enableShadow;\n};\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n float adjustedProgress = (flipProgress - 0.1) / 0.7;\n adjustedProgress = clamp(adjustedProgress, 0.0, 1.0);\n float flipAngle = (1.0 - adjustedProgress) * 3.14159;\n float relativeY = pos.y - 0.5;\n float bend = sin(flipAngle) * bendStrength * relativeY;\n pos.y = 0.5 + relativeY * cos(flipAngle);\n pos.z = relativeY * sin(flipAngle) + bend;\n pos.z = clamp(pos.z, -0.5, 0.5);\n if (enableShadow > 0.5 && flipProgress > 0.1 && flipProgress < 0.9) {\n float shadowIntensity = sin(flipAngle) * 0.5;\n v_color = vec4(a_color.rgb * (1.0 - shadowIntensity * 0.5), a_color.a);\n } else {\n v_color = a_color;\n }\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n gl_Position = cc_matViewProj * pos;\n}", "frag": "\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};\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform Properties {\n float flipProgress;\n float bendStrength;\n float enableShadow;\n};\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= texture2D(texture, v_uv0);\n #endif\n o *= v_color;\n float adjustedProgress = (flipProgress - 0.1) / 0.7;\n adjustedProgress = clamp(adjustedProgress, 0.0, 1.0);\n if (adjustedProgress < 0.3) {\n float backFaceAlpha = (0.5 - adjustedProgress) * 2.0;\n o.a *= (1.0 - backFaceAlpha * 0.7);\n }\n gl_FragColor = o;\n}" } } ], "subMetas": {} }