From cda0009d1fc0993a257a0cea6376328baff0d8fa Mon Sep 17 00:00:00 2001 From: caizhitao Date: Thu, 12 Dec 2019 10:01:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=BD=E5=83=8F=E5=88=9D=E6=AD=A5=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=8F=8F=E8=BE=B9=EF=BC=8C=E4=BD=86=E6=98=AF=E6=9C=89?= =?UTF-8?q?=E5=BE=85=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/effects/sprite-outline.effect | 45 +++++++++------------- assets/effects/sprite-outline.effect.meta | 4 +- assets/materials/sprite-outline.mtl | 10 ++++- assets/scenes/MainScene.fire | 2 +- assets/textures/prestige_01.png | Bin 0 -> 6086 bytes assets/textures/prestige_01.png.meta | 34 ++++++++++++++++ assets/textures/prestige_02.png | Bin 0 -> 5276 bytes assets/textures/prestige_02.png.meta | 34 ++++++++++++++++ 8 files changed, 99 insertions(+), 30 deletions(-) create mode 100644 assets/textures/prestige_01.png create mode 100644 assets/textures/prestige_01.png.meta create mode 100644 assets/textures/prestige_02.png create mode 100644 assets/textures/prestige_02.png.meta diff --git a/assets/effects/sprite-outline.effect b/assets/effects/sprite-outline.effect index 75b865b..db4a533 100644 --- a/assets/effects/sprite-outline.effect +++ b/assets/effects/sprite-outline.effect @@ -13,8 +13,8 @@ CCEffect %{ properties: texture: { value: grey } alphaThreshold: { value: 0.5 } - outlineColor: { value: [1, 1, 1, 1], editor: { type: color } } - outlineSize: { value: 5.0 } + outlineColor: { value: [1., .0, .0, 1.], editor: { type: color } } + outlineSize: { value: .01 } }% @@ -77,29 +77,19 @@ CCProgram fs %{ }; #endif - // // 获取背面颜色 - // float getBackArea() { - // vec4 color_up; - // vec4 color_down; - // vec4 color_left; - // vec4 color_right; - // vec4 color_up_left; - // vec4 color_up_right; - // vec4 color_down_left; - // vec4 color_down_right; - // float total = 0 ; - - // color_up = texture(texture, v_uv0 + vec2(0, outlineSize)); - // color_down = texture(texture, v_uv0 - vec2(0, outlineSize)); - // color_left = texture(texture, v_uv0 - vec2(outlineSize, 0)); - // color_right = texture(texture, v_uv0 + vec2(outlineSize, 0)); - // color_up_left = texture(texture, v_uv0 + vec2(outlineSize, -outlineSize)); - // color_up_right = texture(texture, v_uv0 + vec2(outlineSize, outlineSize)); - // color_down_left = texture(texture, v_uv0 + vec2(-outlineSize, -outlineSize)); - // color_down_right = texture(texture, v_uv0 + vec2(-outlineSize, outlineSize)); - // total = color_right.a + color_left.a + color_down.a + color_up.a + color_up_left.a + color_up_right.a + color_down_left.a + color_down_right.a; - // return clamp(total, 0.0, 1.0); - // } + // 获取背面颜色 + float getBackArea() { + vec4 color_up = texture(texture, v_uv0 + vec2(0, outlineSize)); + vec4 color_down = texture(texture, v_uv0 - vec2(0, outlineSize)); + vec4 color_left = texture(texture, v_uv0 - vec2(outlineSize, 0)); + vec4 color_right = texture(texture, v_uv0 + vec2(outlineSize, 0)); + vec4 color_up_left = texture(texture, v_uv0 + vec2(outlineSize, -outlineSize)); + vec4 color_up_right = texture(texture, v_uv0 + vec2(outlineSize, outlineSize)); + vec4 color_down_left = texture(texture, v_uv0 + vec2(-outlineSize, -outlineSize)); + vec4 color_down_right = texture(texture, v_uv0 + vec2(-outlineSize, outlineSize)); + float total = color_right.a + color_left.a + color_down.a + color_up.a + color_up_left.a + color_up_right.a + color_down_left.a + color_down_right.a; + return clamp(total, 0.0, 1.0); + } void main () { vec4 o = vec4(1, 1, 1, 1); @@ -116,6 +106,9 @@ CCProgram fs %{ ALPHA_TEST(o); gl_FragColor = o; - // gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0); + + // 正常的rgb + 正常的透明区域 * 背面颜色 * 描边颜色 + // gl_FragColor = vec4(o.rgb + (1.0 - o.a) * outlineColor.rgb * getBackArea(), 1.0); + // gl_FragColor = vec4(o.rgb + outlineColor.rgb * getBackArea(), 1.0); } }% diff --git a/assets/effects/sprite-outline.effect.meta b/assets/effects/sprite-outline.effect.meta index 0c948c8..48be7dc 100644 --- a/assets/effects/sprite-outline.effect.meta +++ b/assets/effects/sprite-outline.effect.meta @@ -5,11 +5,11 @@ { "glsl1": { "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\n\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\n\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n\n v_color = a_color;\n\n gl_Position = pos;\n}\n", - "frag": "\nprecision highp float;\n\n#if USE_ALPHA_TEST\n \n uniform float alphaThreshold;\n#endif\n\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\n\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\n\nvarying vec4 v_color;\n\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n\n#if SHOW_OUT_LINE\n\n#endif\n\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n\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\n o *= v_color;\n\n ALPHA_TEST(o);\n\n gl_FragColor = o;\n\n}\n" + "frag": "\nprecision highp float;\n\n#if USE_ALPHA_TEST\n \n uniform float alphaThreshold;\n#endif\n\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\n\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\n\nvarying vec4 v_color;\n\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n\n#if SHOW_OUT_LINE\nuniform float outlineSize;\n\n#endif\n\nfloat getBackArea() {\n vec4 color_up = texture2D(texture, v_uv0 + vec2(0, outlineSize)); \n vec4 color_down = texture2D(texture, v_uv0 - vec2(0, outlineSize)); \n vec4 color_left = texture2D(texture, v_uv0 - vec2(outlineSize, 0)); \n vec4 color_right = texture2D(texture, v_uv0 + vec2(outlineSize, 0)); \n vec4 color_up_left = texture2D(texture, v_uv0 + vec2(outlineSize, -outlineSize)); \n vec4 color_up_right = texture2D(texture, v_uv0 + vec2(outlineSize, outlineSize)); \n vec4 color_down_left = texture2D(texture, v_uv0 + vec2(-outlineSize, -outlineSize)); \n vec4 color_down_right = texture2D(texture, v_uv0 + vec2(-outlineSize, outlineSize)); \n float total = color_right.a + color_left.a + color_down.a + color_up.a + color_up_left.a + color_up_right.a + color_down_left.a + color_down_right.a; \n return clamp(total, 0.0, 1.0);\n}\n\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n\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\n o *= v_color;\n\n ALPHA_TEST(o);\n\n gl_FragColor = o;\n\n}\n" }, "glsl3": { "vert": "\nprecision highp float;\nuniform CCGlobal {\n vec4 cc_time;\n\n vec4 cc_screenSize;\n\n vec4 cc_screenScale;\n\n vec4 cc_nativeSize;\n\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\n vec4 cc_exposure;\n\n vec4 cc_mainLitDir;\n\n vec4 cc_mainLitColor;\n\n vec4 cc_ambientSky;\n vec4 cc_ambientGround;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\n\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\n\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n\n v_color = a_color;\n\n gl_Position = pos;\n}\n", - "frag": "\nprecision highp float;\n\n#if USE_ALPHA_TEST\n \n uniform ALPHA_TEST {\n float alphaThreshold;\n }\n#endif\n\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\n\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\n\nin vec4 v_color;\n\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n\n#if SHOW_OUT_LINE\nuniform Outline {\n\n vec4 outlineColor;\n\n float outlineSize;\n\n};\n#endif\n\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n\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\n o *= v_color;\n\n ALPHA_TEST(o);\n\n gl_FragColor = o;\n\n}\n" + "frag": "\nprecision highp float;\n\n#if USE_ALPHA_TEST\n \n uniform ALPHA_TEST {\n float alphaThreshold;\n }\n#endif\n\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\n\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\n\nin vec4 v_color;\n\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n\n#if SHOW_OUT_LINE\nuniform Outline {\n\n vec4 outlineColor;\n\n float outlineSize;\n\n};\n#endif\n\nfloat getBackArea() {\n vec4 color_up = texture(texture, v_uv0 + vec2(0, outlineSize)); \n vec4 color_down = texture(texture, v_uv0 - vec2(0, outlineSize)); \n vec4 color_left = texture(texture, v_uv0 - vec2(outlineSize, 0)); \n vec4 color_right = texture(texture, v_uv0 + vec2(outlineSize, 0)); \n vec4 color_up_left = texture(texture, v_uv0 + vec2(outlineSize, -outlineSize)); \n vec4 color_up_right = texture(texture, v_uv0 + vec2(outlineSize, outlineSize)); \n vec4 color_down_left = texture(texture, v_uv0 + vec2(-outlineSize, -outlineSize)); \n vec4 color_down_right = texture(texture, v_uv0 + vec2(-outlineSize, outlineSize)); \n float total = color_right.a + color_left.a + color_down.a + color_up.a + color_up_left.a + color_up_right.a + color_down_left.a + color_down_right.a; \n return clamp(total, 0.0, 1.0);\n}\n\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n\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\n o *= v_color;\n\n ALPHA_TEST(o);\n\n gl_FragColor = o;\n\n}\n" } } ], diff --git a/assets/materials/sprite-outline.mtl b/assets/materials/sprite-outline.mtl index 4c091d2..1ece673 100644 --- a/assets/materials/sprite-outline.mtl +++ b/assets/materials/sprite-outline.mtl @@ -11,6 +11,14 @@ "SHOW_OUT_LINE": true }, "_props": { - "texture": null + "texture": null, + "outlineColor": { + "__type__": "cc.Vec4", + "x": 1, + "y": 1, + "z": 0, + "w": 1 + }, + "outlineSize": 0.01 } } \ No newline at end of file diff --git a/assets/scenes/MainScene.fire b/assets/scenes/MainScene.fire index 5f61001..af51dd7 100755 --- a/assets/scenes/MainScene.fire +++ b/assets/scenes/MainScene.fire @@ -177,7 +177,7 @@ "array": [ 0, 0, - 493.63448015713004, + 394.90758412570403, 0, 0, 0, diff --git a/assets/textures/prestige_01.png b/assets/textures/prestige_01.png new file mode 100644 index 0000000000000000000000000000000000000000..510b523afe801ef9cc3ae3052e9bac1d00c26b63 GIT binary patch literal 6086 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 Q??3D6Dmu#LiZ6ry2k?+)#sB~S literal 0 HcmV?d00001 diff --git a/assets/textures/prestige_01.png.meta b/assets/textures/prestige_01.png.meta new file mode 100644 index 0000000..a5ae94f --- /dev/null +++ b/assets/textures/prestige_01.png.meta @@ -0,0 +1,34 @@ +{ + "ver": "2.3.3", + "uuid": "9e216a31-1e40-4350-b20c-629287c96706", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "platformSettings": {}, + "subMetas": { + "prestige_01": { + "ver": "1.0.4", + "uuid": "89478038-ff44-410d-8044-8fb4dd82c1e8", + "rawTextureUuid": "9e216a31-1e40-4350-b20c-629287c96706", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": -0.5, + "offsetY": 0.5, + "trimX": 0, + "trimY": 1, + "width": 59, + "height": 57, + "rawWidth": 60, + "rawHeight": 60, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/textures/prestige_02.png b/assets/textures/prestige_02.png new file mode 100644 index 0000000000000000000000000000000000000000..90f3f58691894cd885f865e0b928d0bf025b4d7f GIT binary patch literal 5276 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 jUY@jub6q$p1zZ3O|FX@ig`4O9{$GgH&_k5mv