cb/assets/effect/snow/雪.effect.meta
2025-12-26 10:36:45 +08:00

18 lines
4.3 KiB
Plaintext

{
"ver": "1.0.27",
"uuid": "63da2393-19b5-4bf5-9d6c-e267361f5790",
"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#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 const mat3 p = mat3(13.323122,23.5112,21.71123,21.1212,28.7312,11.9312,21.8112,14.7212,61.3934);\nvec2 uv = 500./1000. + vec2(1.,1.)*gl_FragCoord.xy / 1000.;\nvec3 acc = vec3(0.0);\nfloat dof = 5.*sin(cc_time.x*.1);\nfor (int i=0;i<6;i++) {\n float fi = float(i);\n vec2 q = uv*(1.+fi*.4);\n float shouldDrift = step(0.6, fract(fi * 7.238917));\n float driftAmount = shouldDrift * .2 * sin(cc_time.x * 0.5 + fi * 1.5) * (1.0 + 0.5 * sin(fi * 3.7));\n q += vec2(q.y*(.3*mod(fi*7.238917,1.)-.3*.5) + driftAmount, .3*cc_time.x/(1.+fi*.4*.03));\n vec3 n = vec3(floor(q),31.189+fi);\n vec3 m = floor(n)*.00001 + fract(n);\n vec3 mp = (31415.9+m)/fract(p*m);\n vec3 r = fract(mp);\n vec2 s = abs(mod(q,1.)-.5+.9*r.xy-.45);\n s += .008*abs(2.*fract(8.*q.yx)-1.);\n float d = .5*max(s.x-s.y,s.x+s.y)+max(s.x,s.y)-.01;\n float edge = .004+.04*min(.5*abs(fi-5.-dof),1.);\n float sizeVariation = 0.9 + 0.3 * sin(fi * 2.1);\n acc += vec3(smoothstep(edge,-edge,d)*(r.x/(1.+.02*fi*.4)*sizeVariation));\n}\n float a = 0.;\n if(acc.r+acc.g+acc.b>0.3){\n a = acc.r+acc.g+acc.b;\n }\ngl_FragColor = vec4(vec3(acc*5.),a);\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\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 const mat3 p = mat3(13.323122,23.5112,21.71123,21.1212,28.7312,11.9312,21.8112,14.7212,61.3934);\nvec2 uv = 500./1000. + vec2(1.,1.)*gl_FragCoord.xy / 1000.;\nvec3 acc = vec3(0.0);\nfloat dof = 5.*sin(cc_time.x*.1);\nfor (int i=0;i<6;i++) {\n float fi = float(i);\n vec2 q = uv*(1.+fi*.4);\n float shouldDrift = step(0.6, fract(fi * 7.238917));\n float driftAmount = shouldDrift * .2 * sin(cc_time.x * 0.5 + fi * 1.5) * (1.0 + 0.5 * sin(fi * 3.7));\n q += vec2(q.y*(.3*mod(fi*7.238917,1.)-.3*.5) + driftAmount, .3*cc_time.x/(1.+fi*.4*.03));\n vec3 n = vec3(floor(q),31.189+fi);\n vec3 m = floor(n)*.00001 + fract(n);\n vec3 mp = (31415.9+m)/fract(p*m);\n vec3 r = fract(mp);\n vec2 s = abs(mod(q,1.)-.5+.9*r.xy-.45);\n s += .008*abs(2.*fract(8.*q.yx)-1.);\n float d = .5*max(s.x-s.y,s.x+s.y)+max(s.x,s.y)-.01;\n float edge = .004+.04*min(.5*abs(fi-5.-dof),1.);\n float sizeVariation = 0.9 + 0.3 * sin(fi * 2.1);\n acc += vec3(smoothstep(edge,-edge,d)*(r.x/(1.+.02*fi*.4)*sizeVariation));\n}\n float a = 0.;\n if(acc.r+acc.g+acc.b>0.3){\n a = acc.r+acc.g+acc.b;\n }\ngl_FragColor = vec4(vec3(acc*5.),a);\n}"
}
}
],
"subMetas": {}
}