Pas d'anti aliasing et voilà
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user