From b014e87ef7cbd7a6a51859a9c8e2919ce5cb2789 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 14 May 2021 11:13:46 +0200 Subject: [PATCH] Tech ENABLE_SEQUENTIAL_LIMITS -> Fixed z-fighting between sequential print clearance regions and objects --- src/slic3r/GUI/GLCanvas3D.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index a12a919cd..c840406f5 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -813,7 +813,7 @@ void GLCanvas3D::SequentialPrintClearance::set(const Polygons& polygons) for (const ExPolygon& poly : polygons_union) { std::vector triangulation = triangulate_expolygon_3d(poly, false); for (const Vec3d& v : triangulation) { - entity.positions.emplace_back(v.cast()); + entity.positions.emplace_back(v.cast() + Vec3f(0.0f, 0.0f, 0.0125)); // add a small positive z to avoid z-fighting entity.normals.emplace_back(Vec3f::UnitZ()); size_t positions_count = entity.positions.size(); if (positions_count % 3 == 0) { @@ -836,7 +836,7 @@ void GLCanvas3D::SequentialPrintClearance::set(const Polygons& polygons) ent.indices.reserve(poly.points.size()); unsigned int id_count = 0; for (const Point& p : poly.points) { - ent.positions.emplace_back(unscale(p.x()), unscale(p.y()), 0.025f); + ent.positions.emplace_back(unscale(p.x()), unscale(p.y()), 0.025f); // add a small positive z to avoid z-fighting ent.normals.emplace_back(Vec3f::UnitZ()); ent.indices.emplace_back(id_count++); }