@@ -7,6 +7,7 @@ uniform half4 _ColorValue;
7
7
uniform float _ColorIntensity;
8
8
uniform int _ColorGlow;
9
9
uniform float _SamplingIntensity;
10
+ uniform float _SamplingWidth;
10
11
uniform float _SamplingScale;
11
12
uniform sampler2D _TransitionTex;
12
13
uniform float4 _TransitionTex_ST;
@@ -52,6 +53,9 @@ uniform int _ShadowColorGlow;
52
53
#define UIEFFECT_SAMPLE_CLAMP (uv, uvMask) uieffect_frag (uv) \
53
54
* step (uvMask.x, uv.x) * step (uv.x, uvMask.z) \
54
55
* step (uvMask.y, uv.y) * step (uv.y, uvMask.w)
56
+ #define TEX_SAMPLE_CLAMP (uv, uvMask) tex2D (_MainTex, uv) \
57
+ * step (uvMask.x, uv.x) * step (uv.x, uvMask.z) \
58
+ * step (uvMask.y, uv.y) * step (uv.y, uvMask.w)
55
59
56
60
float2 texel_size ()
57
61
{
@@ -475,26 +479,17 @@ half4 uieffect(float2 uv, const float4 uvMask, const float2 uvLocal)
475
479
#elif SAMPLING_EDGE_LUMINANCE || SAMPLING_EDGE_ALPHA
476
480
{
477
481
// Pixel size
478
- const float dx = texel_size ().x;
479
- const float dy = texel_size ().y;
482
+ const float2 d = texel_size () * _SamplingWidth;
480
483
481
484
// Pixel values around the current pixel (3x3, 8 neighbors)
482
- const float2 uv00 = uv + half2 (-dx, -dy);
483
- const half v00 = to_value (UIEFFECT_SAMPLE_CLAMP (uv00, uvMask));
484
- const float2 uv01 = uv + half2 (-dx, 0.0 );
485
- const half v01 = to_value (UIEFFECT_SAMPLE_CLAMP (uv01, uvMask));
486
- const float2 uv02 = uv + half2 (-dx, +dy);
487
- const half v02 = to_value (UIEFFECT_SAMPLE_CLAMP (uv02, uvMask));
488
- const float2 uv10 = uv + half2 (0.0 , -dy);
489
- const half v10 = to_value (UIEFFECT_SAMPLE_CLAMP (uv10, uvMask));
490
- const float2 uv12 = uv + half2 (0.0 , +dy);
491
- const half v12 = to_value (UIEFFECT_SAMPLE_CLAMP (uv12, uvMask));
492
- const float2 uv20 = uv + half2 (+dx, -dy);
493
- const half v20 = to_value (UIEFFECT_SAMPLE_CLAMP (uv20, uvMask));
494
- const float2 uv21 = uv + half2 (+dx, 0.0 );
495
- const half v21 = to_value (UIEFFECT_SAMPLE_CLAMP (uv21, uvMask));
496
- const float2 uv22 = uv + half2 (+dx, +dy);
497
- const half v22 = to_value (UIEFFECT_SAMPLE_CLAMP (uv22, uvMask));
485
+ const half v00 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (-d.x, -d.y)), uvMask));
486
+ const half v01 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (-d.x, 0.0 )), uvMask));
487
+ const half v02 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (-d.x, +d.y)), uvMask));
488
+ const half v10 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (0.0 , -d.y)), uvMask));
489
+ const half v12 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (0.0 , +d.y)), uvMask));
490
+ const half v20 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (+d.x, -d.y)), uvMask));
491
+ const half v21 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (+d.x, 0.0 )), uvMask));
492
+ const half v22 = to_value (TEX_SAMPLE_CLAMP ((uv + half2 (+d.x, +d.y)), uvMask));
498
493
499
494
// Apply Sobel operator
500
495
half sobel_h = v00 * -1.0 + v01 * -2.0 + v02 * -1.0 + v20 * 1.0 + v21 * 2.0 + v22 * 1.0 ;
0 commit comments