mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 20:53:53 +00:00
Fix UI border artifacts caused by incorrect blending (#12725)
Fixes https://github.com/bevyengine/bevy/issues/12702. Co-authored-by: François Mockers <mockersf@gmail.com>
This commit is contained in:
parent
debcf3fb1d
commit
8da4fcb616
1 changed files with 5 additions and 2 deletions
|
@ -159,12 +159,15 @@ fn draw(in: VertexOutput) -> vec4<f32> {
|
||||||
// is present, otherwise an outline about the external boundary would be drawn even without
|
// is present, otherwise an outline about the external boundary would be drawn even without
|
||||||
// a border.
|
// a border.
|
||||||
let t = 1. - select(step(0.0, border_distance), smoothstep(0.0, fborder, border_distance), external_distance < internal_distance);
|
let t = 1. - select(step(0.0, border_distance), smoothstep(0.0, fborder, border_distance), external_distance < internal_distance);
|
||||||
return color.rgba * t;
|
|
||||||
|
// Blend mode ALPHA_BLENDING is used for UI elements, so we don't premultiply alpha here.
|
||||||
|
return vec4(color.rgb, color.a * t);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The item is a rectangle, draw normally with anti-aliasing at the edges.
|
// The item is a rectangle, draw normally with anti-aliasing at the edges.
|
||||||
let t = 1. - smoothstep(0.0, fexternal, external_distance);
|
let t = 1. - smoothstep(0.0, fexternal, external_distance);
|
||||||
return color.rgba * t;
|
|
||||||
|
return vec4(color.rgb, color.a * t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@fragment
|
@fragment
|
||||||
|
|
Loading…
Reference in a new issue