Răsfoiți Sursa

Merge pull request #51467 from Chaosus/fix_aa

Fix incorrect border width of antialiased lines
Rémi Verschelde 4 ani în urmă
părinte
comite
8b960a2d2b
1 a modificat fișierele cu 5 adăugiri și 3 ștergeri
  1. 5 3
      servers/rendering/renderer_canvas_cull.cpp

+ 5 - 3
servers/rendering/renderer_canvas_cull.cpp

@@ -639,17 +639,19 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vector<Point
 
 			j2 = j + 1;
 
-			Vector2 tangent = ((t + prev_t).normalized()) * p_width * 0.5;
+			Vector2 dir = (t + prev_t).normalized();
+			Vector2 tangent = dir * p_width * 0.5;
+			Vector2 border = dir * 2.0;
 			Vector2 pos = p_points[i];
 
 			points_ptr[j] = pos + tangent;
 			points_ptr[j2] = pos - tangent;
 
-			points_top_ptr[j] = pos + tangent + tangent;
+			points_top_ptr[j] = pos + tangent + border;
 			points_top_ptr[j2] = pos + tangent;
 
 			points_bottom_ptr[j] = pos - tangent;
-			points_bottom_ptr[j2] = pos - tangent - tangent;
+			points_bottom_ptr[j2] = pos - tangent - border;
 
 			if (i < p_colors.size()) {
 				color = p_colors[i];