Skip to content

Commit fc7c7c2

Browse files
committed
Further changes to gaussian
1 parent 67c836b commit fc7c7c2

File tree

1 file changed

+38
-23
lines changed

1 file changed

+38
-23
lines changed

glsl/Anime4K_Hybrid_v2.0RC4.glsl

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@
2626

2727

2828
//!DESC Anime4K-Hybrid-Bilateral-v2.0RC4
29-
//!HOOK LUMA
29+
//!HOOK NATIVE
3030
//!BIND HOOKED
3131

3232
/* ---------------------- BILATERAL FILTERING SETTINGS ---------------------- */
3333

3434
//CAS Sharpness, initial sharpen filter strength (traditional sharpening)
35-
#define STRENGTH 0.1
35+
#define STRENGTH 0.05
36+
#define SPREAD_STRENGTH 1
3637

3738
/* --- MOST OF THE OTHER SETTINGS CAN BE FOUND AT THE END --- */
3839

@@ -41,47 +42,61 @@ float gaussian(float x, float s, float m) {
4142
}
4243

4344
vec4 hook() {
45+
float sharpval = clamp(HOOKED_size.x / 1920, 0, 1);
46+
4447
vec2 d = HOOKED_pt;
4548

46-
float v0 = LUMA_tex(HOOKED_pos + vec2(-d.x, -d.y)).x;
47-
float v1 = LUMA_tex(HOOKED_pos + vec2(0, -d.y)).x;
48-
float v2 = LUMA_tex(HOOKED_pos + vec2(d.x, -d.y)).x;
49-
float v3 = LUMA_tex(HOOKED_pos + vec2(-d.x, 0)).x;
50-
float v4 = LUMA_tex(HOOKED_pos).x;
51-
float v5 = LUMA_tex(HOOKED_pos + vec2(d.x, 0)).x;
52-
float v6 = LUMA_tex(HOOKED_pos + vec2(-d.x, d.y)).x;
53-
float v7 = LUMA_tex(HOOKED_pos + vec2(0, d.y)).x;
54-
float v8 = LUMA_tex(HOOKED_pos + vec2(d.x, d.y)).x;
49+
vec2 d0 = vec2(-d.x, -d.y);
50+
vec2 d1 = vec2(0, -d.y);
51+
vec2 d2 = vec2(d.x, -d.y);
52+
vec2 d3 = vec2(-d.x, 0);
53+
vec2 d4 = vec2(0, 0);
54+
vec2 d5 = vec2(d.x, 0);
55+
vec2 d6 = vec2(-d.x, d.y);
56+
vec2 d7 = vec2(0, d.y);
57+
vec2 d8 = vec2(d.x, d.y);
58+
59+
60+
float v0 = HOOKED_tex(HOOKED_pos + d0).x;
61+
float v1 = HOOKED_tex(HOOKED_pos + d1).x;
62+
float v2 = HOOKED_tex(HOOKED_pos + d2).x;
63+
float v3 = HOOKED_tex(HOOKED_pos + d3).x;
64+
float v4 = HOOKED_tex(HOOKED_pos + d4).x;
65+
float v5 = HOOKED_tex(HOOKED_pos + d5).x;
66+
float v6 = HOOKED_tex(HOOKED_pos + d6).x;
67+
float v7 = HOOKED_tex(HOOKED_pos + d7).x;
68+
float v8 = HOOKED_tex(HOOKED_pos + d8).x;
5569

5670
float s = v4 * STRENGTH + 0.01;
71+
float ds = SPREAD_STRENGTH * sharpval + 0.01;
5772
float m = 0;
5873

59-
float s0 = gaussian(v4 - v0, s, m);
60-
float s1 = gaussian(v4 - v1, s, m);
61-
float s2 = gaussian(v4 - v2, s, m);
62-
float s3 = gaussian(v4 - v3, s, m);
63-
float s4 = gaussian(0, s, m);
64-
float s5 = gaussian(v4 - v5, s, m);
65-
float s6 = gaussian(v4 - v6, s, m);
66-
float s7 = gaussian(v4 - v7, s, m);
67-
float s8 = gaussian(v4 - v8, s, m);
74+
float s0 = gaussian(v4 - v0, s, m) * gaussian(distance(d4, d0), ds, 0);
75+
float s1 = gaussian(v4 - v1, s, m) * gaussian(distance(d4, d1), ds, 0);
76+
float s2 = gaussian(v4 - v2, s, m) * gaussian(distance(d4, d2), ds, 0);
77+
float s3 = gaussian(v4 - v3, s, m) * gaussian(distance(d4, d3), ds, 0);
78+
float s4 = gaussian(0, s, m) * gaussian(0, ds, 0);
79+
float s5 = gaussian(v4 - v5, s, m) * gaussian(distance(d4, d5), ds, 0);
80+
float s6 = gaussian(v4 - v6, s, m) * gaussian(distance(d4, d6), ds, 0);
81+
float s7 = gaussian(v4 - v7, s, m) * gaussian(distance(d4, d7), ds, 0);
82+
float s8 = gaussian(v4 - v8, s, m) * gaussian(distance(d4, d8), ds, 0);
6883

6984
float ss = s0 + s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8;
7085

7186
float sv = (v0 * s0 + v1 * s1 + v2 * s2 + v3 * s3 + v4 * s4 + v5 * s5 + v6 * s6 + v7 * s7 + v8 * s8) / ss;
7287

73-
return vec4(sv, 0, 0, 0);
88+
return vec4(sv, HOOKED_tex(HOOKED_pos).y, HOOKED_tex(HOOKED_pos).z, 0);
7489
}
7590

7691
//!DESC Anime4K-Hybrid-CAS-v2.0RC4
77-
//!HOOK SCALED
92+
//!HOOK MAINPRESUB
7893
//!BIND HOOKED
7994

8095

8196
/* ---------------------- CAS SETTINGS ---------------------- */
8297

8398
//CAS Sharpness, initial sharpen filter strength (traditional sharpening)
84-
#define SHARPNESS 1.2
99+
#define SHARPNESS 0.8
85100

86101
/* --- MOST OF THE OTHER SETTINGS CAN BE FOUND AT THE END --- */
87102

0 commit comments

Comments
 (0)