MatchMaster/source-art/cloud_rise/reward_mask.effect.meta
2026-09-21 12:44:48 +08:00

18 lines
5.4 KiB
Plaintext

{
"ver": "1.0.27",
"uuid": "91741ef4-3477-55de-9850-f44cd9f38957",
"importer": "effect",
"compiledShaders": [
{
"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 uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform vec4 glyphRect;\nuniform vec2 glyphSize;\n#if USE_TEXTURE\nfloat maskAt(vec2 point) {\n vec2 uv = point / glyphSize;\n if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) return 0.0;\n vec4 sampleColor = vec4(1.0);\n vec4 texture_tmp = texture2D(texture, glyphRect.xy + uv * glyphRect.zw);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, glyphRect.xy + uv * glyphRect.zw + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n sampleColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n sampleColor.a *= texture_tmp.a;\n #else\n sampleColor *= texture_tmp;\n #endif\n return sampleColor.a * sampleColor.r;\n}\n#endif\nvoid main () {\n vec4 o = v_color;\n #if USE_TEXTURE\n vec2 point = (v_uv0 - glyphRect.xy) / glyphRect.zw * (glyphSize + vec2(16.0)) - vec2(8.0);\n float fill = maskAt(point);\n float outer = 0.0;\n float inner = 0.0;\n for (int i = 0; i < 16; i++) {\n float angle = float(i) * 0.3926990817;\n vec2 direction = vec2(cos(angle), sin(angle));\n outer = 1.0 - (1.0 - outer) * (1.0 - maskAt(point + direction * 8.0));\n inner = 1.0 - (1.0 - inner) * (1.0 - maskAt(point + direction * 4.0));\n }\n float alpha = fill + (1.0 - fill) * (inner + (1.0 - inner) * outer);\n vec3 color = vec3(1.0, 242.0 / 255.0, 0.0) * fill\n + (1.0 - fill) * (vec3(164.0, 61.0, 19.0) / 255.0 * inner\n + (1.0 - inner) * vec3(outer));\n o = vec4(color / max(alpha, 0.0001), alpha * v_color.a);\n #endif\n ALPHA_TEST(o);\n #if USE_BGRA\n gl_FragColor = o.bgra;\n #else\n gl_FragColor = o.rgba;\n #endif\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};\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\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nuniform Glyph {\n vec4 glyphRect;\n vec2 glyphSize;\n};\n#if USE_TEXTURE\nfloat maskAt(vec2 point) {\n vec2 uv = point / glyphSize;\n if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) return 0.0;\n vec4 sampleColor = vec4(1.0);\n vec4 texture_tmp = texture(texture, glyphRect.xy + uv * glyphRect.zw);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, glyphRect.xy + uv * glyphRect.zw + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n sampleColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n sampleColor.a *= texture_tmp.a;\n #else\n sampleColor *= texture_tmp;\n #endif\n return sampleColor.a * sampleColor.r;\n}\n#endif\nvoid main () {\n vec4 o = v_color;\n #if USE_TEXTURE\n vec2 point = (v_uv0 - glyphRect.xy) / glyphRect.zw * (glyphSize + vec2(16.0)) - vec2(8.0);\n float fill = maskAt(point);\n float outer = 0.0;\n float inner = 0.0;\n for (int i = 0; i < 16; i++) {\n float angle = float(i) * 0.3926990817;\n vec2 direction = vec2(cos(angle), sin(angle));\n outer = 1.0 - (1.0 - outer) * (1.0 - maskAt(point + direction * 8.0));\n inner = 1.0 - (1.0 - inner) * (1.0 - maskAt(point + direction * 4.0));\n }\n float alpha = fill + (1.0 - fill) * (inner + (1.0 - inner) * outer);\n vec3 color = vec3(1.0, 242.0 / 255.0, 0.0) * fill\n + (1.0 - fill) * (vec3(164.0, 61.0, 19.0) / 255.0 * inner\n + (1.0 - inner) * vec3(outer));\n o = vec4(color / max(alpha, 0.0001), alpha * v_color.a);\n #endif\n ALPHA_TEST(o);\n #if USE_BGRA\n gl_FragColor = o.bgra;\n #else\n gl_FragColor = o.rgba;\n #endif\n}"
}
}
],
"subMetas": {}
}