[Bf-blender-cvs] [4a3ddedb516] temp-T101739-fix-seam-bleeding-non-manifold: Add initial UDIM support.
Jeroen Bakker
noreply at git.blender.org
Fri Jan 13 12:17:21 CET 2023
Commit: 4a3ddedb51606e39feffb38d86f9c3ffaf6827f9
Author: Jeroen Bakker
Date: Fri Jan 13 12:17:08 2023 +0100
Branches: temp-T101739-fix-seam-bleeding-non-manifold
https://developer.blender.org/rB4a3ddedb51606e39feffb38d86f9c3ffaf6827f9
Add initial UDIM support.
===================================================================
M source/blender/editors/sculpt_paint/sculpt_paint_image.cc
===================================================================
diff --git a/source/blender/editors/sculpt_paint/sculpt_paint_image.cc b/source/blender/editors/sculpt_paint/sculpt_paint_image.cc
index aa83d8c7ca8..787d35be010 100644
--- a/source/blender/editors/sculpt_paint/sculpt_paint_image.cc
+++ b/source/blender/editors/sculpt_paint/sculpt_paint_image.cc
@@ -483,6 +483,19 @@ static void do_mark_dirty_regions(void *__restrict userdata,
BKE_pbvh_pixels_mark_image_dirty(*node, *data->image_data.image, *data->image_data.image_user);
}
+static void fix_none_manifold_seam_bleeding(Object &ob, TexturePaintingUserData &user_data)
+{
+ PBVH &pbvh = *ob.sculpt->pbvh;
+ LISTBASE_FOREACH (ImageTile *, tile, &user_data.image_data.image->tiles) {
+ image::ImageTileWrapper image_tile(tile);
+ // TODO: only fix seam bleeding of tiles that have been painted on.
+ BKE_pbvh_pixels_copy_pixels(pbvh,
+ *user_data.image_data.image,
+ *user_data.image_data.image_user,
+ image_tile.get_tile_number());
+ }
+}
+
} // namespace blender::ed::sculpt_paint::paint::image
extern "C" {
@@ -544,7 +557,6 @@ void SCULPT_do_paint_brush_image(
BLI_task_parallel_range(0, totnode, &data, do_mark_dirty_regions, &settings_flush);
/* TODO: should be done at the end of the stroke.*/
- BKE_pbvh_pixels_copy_pixels(
- *ob->sculpt->pbvh, *data.image_data.image, *data.image_data.image_user, 1001);
+ fix_none_manifold_seam_bleeding(*ob, data);
}
}
More information about the Bf-blender-cvs
mailing list