From: Joshua Simmons Date: Sat, 18 Oct 2025 23:16:57 +0000 (+0200) Subject: shark-shaders: Improve rounded-rect sdf a little X-Git-Url: https://git.nega.tv//gitweb.cgi?a=commitdiff_plain;h=616595b11e35b83a502fdfbcb4f929823672467a;p=josh%2Fnarcissus shark-shaders: Improve rounded-rect sdf a little --- diff --git a/title/shark-shaders/shaders/draw_2d.slang b/title/shark-shaders/shaders/draw_2d.slang index 539b964..3c668dd 100644 --- a/title/shark-shaders/shaders/draw_2d.slang +++ b/title/shark-shaders/shaders/draw_2d.slang @@ -592,8 +592,15 @@ void rasterize(uniform RasterizeConstants constants, uint3 thread_id: SV_Dispatc } let border_color = unpackUnorm4x8ToFloat(cmd_rect.border_color).bgra; - primitive_color = lerp(background_color, border_color, smoothstep(1.0, 0.0, 1.0 - d - border_width)); - primitive_color = lerp(primitive_color, float4(0.0), smoothstep(1.0, 0.0, 1.0 - d)); + + let edge_border = -d; + let alpha_border = clamp(edge_border + 0.5, 0.0, 1.0); + + let edge = -d - border_width; + let alpha = clamp(edge + 0.5, 0.0, 1.0); + + let border = lerp(float4(0.0), border_color, alpha_border); + primitive_color = lerp(border, background_color, alpha); let clip_b = (scissor.offset_max - scissor.offset_min) / 2.0; let clip_p = scissor.offset_min + clip_b - sample_center;