1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
| {
| "__type__": "cc.EffectAsset",
| "_name": "builtin-2d-sprite",
| "_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": "builtin-2d-sprite|vs|fs"
| }
| ]
| }
| ],
| "shaders": [
| {
| "hash": 4188224455,
| "glsl3": {
| "vert": "\nprecision highp float;\nuniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_nativeSize;\n highp mat4 cc_matView;\n mediump mat4 cc_matViewInv;\n mediump mat4 cc_matProj;\n mediump mat4 cc_matProjInv;\n mediump mat4 cc_matViewProj;\n mediump mat4 cc_matViewProjInv;\n mediump vec4 cc_cameraPos;\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\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"
| },
| "glsl1": {
| "vert": "\nprecision highp float;\nuniform mediump 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\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n o *= texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\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": []
| },
| {
| "name": "CC_USE_ALPHA_ATLAS_TEXTURE",
| "type": "boolean",
| "defines": [
| "USE_TEXTURE"
| ]
| }
| ],
| "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": "builtin-2d-sprite|vs|fs"
| }
| ]
| }
|
|