Skip to content

Commit 2eda931

Browse files
committed
gles fixes done
1 parent 76f381d commit 2eda931

File tree

2 files changed

+22
-40
lines changed

2 files changed

+22
-40
lines changed

armorpaint/shaders/dilate_pass.frag.glsl

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,53 +8,46 @@ in vec2 tex_coord;
88
out vec4 frag_color;
99

1010
#ifdef ESSL
11-
#define CONST_ARRAY_BEGIN(t, v, n) const t v[n] = t[](
12-
#define CONST_ARRAY_END() );
11+
const vec2 offsets[8] = vec2[](
12+
vec2(-1.0, 0.0), vec2( 1.0, 0.0), vec2( 0.0, 1.0), vec2( 0.0, -1.0),
13+
vec2(-1.0, 1.0), vec2( 1.0, 1.0), vec2( 1.0, -1.0), vec2(-1.0, -1.0)
14+
);
1315
#else
14-
#define CONST_ARRAY_BEGIN(t, v, n) const t v[n] = {
15-
#define CONST_ARRAY_END() };
16+
const vec2 offsets[8] = {
17+
vec2(-1.0, 0.0), vec2( 1.0, 0.0), vec2( 0.0, 1.0), vec2( 0.0, -1.0),
18+
vec2(-1.0, 1.0), vec2( 1.0, 1.0), vec2( 1.0, -1.0), vec2(-1.0, -1.0)
19+
};
1620
#endif
1721

18-
CONST_ARRAY_BEGIN(vec2, offsets, 8)
19-
vec2(-1.0, 0.0),
20-
vec2( 1.0, 0.0),
21-
vec2( 0.0, 1.0),
22-
vec2( 0.0, -1.0),
23-
vec2(-1.0, 1.0),
24-
vec2( 1.0, 1.0),
25-
vec2( 1.0, -1.0),
26-
vec2(-1.0, -1.0)
27-
CONST_ARRAY_END()
28-
2922
void main() {
3023
// Based on https://shaderbits.com/blog/uv-dilation by Ryan Brucks
31-
vec2 size = textureSize(tex, 0).xy;
24+
vec2 size = vec2(textureSize(tex, 0).xy);
3225
vec2 texel_size = vec2(1.0, 1.0) / size;
3326
float min_dist = 10000000.0;
3427
ivec2 coord = ivec2(tex_coord * size);
3528
float mask = texelFetch(texdilate, coord, 0).r;
36-
if (mask > 0) discard;
29+
if (mask > 0.0) discard;
3730

3831
frag_color = texelFetch(tex, coord, 0);
3932
int i = 0;
40-
while (i < dilate_radius) {
33+
while (i < int(dilate_radius)) {
4134
i++;
4235
int j = 0;
4336
while (j < 8) {
44-
vec2 cur_uv = tex_coord + offsets[j] * texel_size * i;
37+
vec2 cur_uv = tex_coord + offsets[j] * texel_size * vec2(i, i);
4538
coord = ivec2(cur_uv * size);
4639
float offset_mask = texelFetch(texdilate, coord, 0).r;
4740
vec4 offset_col = texelFetch(tex, coord, 0);
4841

49-
if (offset_mask != 0) {
42+
if (offset_mask != 0.0) {
5043
float cur_dist = length(tex_coord - cur_uv);
5144
if (cur_dist < min_dist) {
52-
vec2 project_uv = cur_uv + offsets[j] * texel_size * i * 0.25;
45+
vec2 project_uv = cur_uv + offsets[j] * texel_size * vec2(i, i) * vec2(0.25, 0.25);
5346
vec4 direction = textureLod(tex, project_uv, 0.0);
5447
min_dist = cur_dist;
55-
if (direction.x != 0 || direction.y != 0 || direction.z != 0) {
48+
if (direction.x != 0.0 || direction.y != 0.0 || direction.z != 0.0) {
5649
vec4 delta = offset_col - direction;
57-
frag_color = offset_col + delta * 4;
50+
frag_color = offset_col + delta * vec4(4.0, 4.0, 4.0, 4.0);
5851
}
5952
else {
6053
frag_color = offset_col;

base/shaders/ssao_blur_pass.frag.glsl

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,15 @@ in vec2 tex_coord;
1010
out float frag_color;
1111

1212
#ifdef ESSL
13-
#define CONST_ARRAY_BEGIN(t, v, n) const t v[n] = t[](
14-
#define CONST_ARRAY_END() );
13+
const float blur_weights[10] = float[](
14+
0.132572, 0.125472, 0.106373, 0.08078, 0.05495, 0.033482, 0.018275, 0.008934, 0.003912, 0.001535
15+
);
1516
#else
16-
#define CONST_ARRAY_BEGIN(t, v, n) const t v[n] = {
17-
#define CONST_ARRAY_END() };
17+
const float blur_weights[10] = {
18+
0.132572, 0.125472, 0.106373, 0.08078, 0.05495, 0.033482, 0.018275, 0.008934, 0.003912, 0.001535
19+
};
1820
#endif
1921

20-
CONST_ARRAY_BEGIN(float, blur_weights, 10)
21-
0.132572,
22-
0.125472,
23-
0.106373,
24-
0.08078,
25-
0.05495,
26-
0.033482,
27-
0.018275,
28-
0.008934,
29-
0.003912,
30-
0.001535
31-
CONST_ARRAY_END()
32-
3322
const float discard_threshold = 0.95;
3423

3524
void main() {

0 commit comments

Comments
 (0)