Pas d'anti aliasing et voilà

This commit is contained in:
Thomas
2025-03-29 17:43:28 +01:00
parent 93f4bc39b4
commit aacfcc8e28
4 changed files with 14 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
shader_type canvas_item;
uniform vec4 line_color : source_color = vec4(1);
uniform vec4 line_color : source_color = vec4(1.0);
uniform float line_thickness : hint_range(0, 10) = 1.0;
const vec2 OFFSETS[8] = {
@@ -9,19 +9,15 @@ const vec2 OFFSETS[8] = {
};
void fragment() {
vec2 size = TEXTURE_PIXEL_SIZE * line_thickness / 2.0;
vec4 color = texture(TEXTURE, UV);
vec2 size = TEXTURE_PIXEL_SIZE * line_thickness;
float outline = 1.0;
float inline = 1.0;
float outline = 0.0;
for (int i = 0; i < OFFSETS.length(); i++) {
float sample = texture(TEXTURE, UV + size * OFFSETS[i]).a;
outline += sample;
inline *= sample;
outline *= texture(TEXTURE, UV + size * OFFSETS[i]).a;
}
outline = min(1.0, outline) - color.a;
inline = (1.0 - inline) * color.a;
outline = 1.0 - outline;
vec4 outlined_result = mix(color, line_color, outline + inline);
vec4 color = texture(TEXTURE, UV);
vec4 outlined_result = mix(color, line_color, outline * color.a);
COLOR = mix(color, outlined_result, outlined_result.a);
}