[Bf-blender-cvs] [442f269a72e] lineart-bvh: Merge remote-tracking branch 'origin/master' into lineart-bvh
YimingWu
noreply at git.blender.org
Sun Jul 4 08:10:36 CEST 2021
Commit: 442f269a72e8f07393fd246f642e210171a1c9bc
Author: YimingWu
Date: Sun Jul 4 13:23:52 2021 +0800
Branches: lineart-bvh
https://developer.blender.org/rB442f269a72e8f07393fd246f642e210171a1c9bc
Merge remote-tracking branch 'origin/master' into lineart-bvh
===================================================================
===================================================================
diff --cc release/scripts/startup/bl_ui/properties_material.py
index 6c7837237e4,b217e33de12..5df58f8ac4c
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@@ -291,18 -291,19 +291,24 @@@ class MATERIAL_PT_lineart(MaterialButto
mat = context.material
lineart = mat.lineart
- layout.prop(lineart, "use_transparency")
+ layout.prop(lineart, "use_material_mask")
row = layout.row(align=True, heading="Masks")
- row.active = lineart.use_transparency
- for i in range(6):
- row.prop(lineart, "use_transparency_mask", text=str(i), index=i, toggle=True)
+ row.active = lineart.use_material_mask
+ for i in range(8):
+ row.prop(lineart, "use_material_mask_bits", text=str(i), index=i, toggle=True)
+
+ row = layout.row(align=True, heading="Custom Occlusion")
+ row.prop(lineart, "use_mat_occlusion", text="")
+ sub = row.row(align=False)
+ sub.active = lineart.use_mat_occlusion
+ sub.prop(lineart, "mat_occlusion", slider=True, text="Levels")
+ row = layout.row(align=True, heading="Custom occlusion effectiveness")
+ row.active = lineart.use_occlusion_effectiveness
+ row.prop(lineart, "use_occlusion_effectiveness", text="")
+ row.prop(lineart, "occlusion_effectiveness", slider=True)
+
classes = (
MATERIAL_MT_context_menu,
diff --cc source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
index ba5b1a5cb31,9593a1364e7..f58de44b04c
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
@@@ -258,18 -254,10 +258,11 @@@ static void updateDepsgraph(GpencilModi
else {
add_this_collection(ctx->scene->master_collection, ctx, mode);
}
- if (lmd->calculation_flags & LRT_USE_CUSTOM_CAMERA) {
- DEG_add_object_relation(
- ctx->node, lmd->source_camera, DEG_OB_COMP_TRANSFORM, "Line Art Modifier");
- DEG_add_object_relation(
- ctx->node, lmd->source_camera, DEG_OB_COMP_PARAMETERS, "Line Art Modifier");
- }
- else {
- DEG_add_object_relation(
- ctx->node, ctx->scene->camera, DEG_OB_COMP_TRANSFORM, "Line Art Modifier");
- DEG_add_object_relation(
- ctx->node, ctx->scene->camera, DEG_OB_COMP_PARAMETERS, "Line Art Modifier");
- }
++
+ DEG_add_object_relation(
+ ctx->node, ctx->scene->camera, DEG_OB_COMP_TRANSFORM, "Line Art Modifier");
+ DEG_add_object_relation(
+ ctx->node, ctx->scene->camera, DEG_OB_COMP_PARAMETERS, "Line Art Modifier");
}
static void foreachIDLink(GpencilModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
@@@ -434,28 -425,24 +441,28 @@@ static void occlusion_panel_draw(const
}
}
- static void transparency_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
+ static void material_mask_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
{
uiLayout *layout = panel->layout;
- PointerRNA ob_ptr;
- PointerRNA *ptr = gpencil_modifier_panel_get_property_pointers(panel, &ob_ptr);
+ PointerRNA *ptr = gpencil_modifier_panel_get_property_pointers(panel, NULL);
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
- const bool show_in_front = RNA_boolean_get(&ob_ptr, "show_in_front");
-
uiLayoutSetEnabled(layout, !is_baked);
- uiLayoutSetActive(layout, show_in_front);
- uiItemR(layout, ptr, "use_transparency", 0, IFACE_("Transparency"), ICON_NONE);
+ uiItemR(layout, ptr, "use_material_mask", 0, IFACE_("Material Mask"), ICON_NONE);
}
- static void transparency_panel_draw(const bContext *UNUSED(C), Panel *panel)
+ static void material_mask_panel_draw(const bContext *UNUSED(C), Panel *panel)
{
uiLayout *layout = panel->layout;
-- PointerRNA *ptr = gpencil_modifier_panel_get_property_pointers(panel, NULL);
++ PointerRNA ob_ptr;
++ PointerRNA *ptr = gpencil_modifier_panel_get_property_pointers(panel, &ob_ptr);
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
++ const bool show_in_front = RNA_boolean_get(&ob_ptr, "show_in_front");
++
uiLayoutSetEnabled(layout, !is_baked);
++ uiLayoutSetActive(layout, show_in_front);
uiLayoutSetPropSep(layout, true);
@@@ -473,24 -460,9 +480,24 @@@
uiItemL(row, "", ICON_BLANK1); /* Space for decorator. */
uiLayout *col = uiLayoutColumn(layout, true);
- uiItemR(col, ptr, "use_transparency_match", 0, IFACE_("Match All Masks"), ICON_NONE);
+ uiItemR(col, ptr, "use_material_mask_match", 0, IFACE_("Match All Masks"), ICON_NONE);
}
+static void intersection_panel_draw_header(const bContext *UNUSED(C), Panel *panel)
+{
+ uiLayout *layout = panel->layout;
+ PointerRNA ob_ptr;
+ PointerRNA *ptr = gpencil_modifier_panel_get_property_pointers(panel, &ob_ptr);
+
+ const bool is_baked = RNA_boolean_get(ptr, "is_baked");
+ const bool use_isec = RNA_boolean_get(ptr, "use_intersection");
+
+ uiLayoutSetEnabled(layout, !is_baked);
+ uiLayoutSetActive(layout, use_isec);
+
+ uiItemR(layout, ptr, "use_intersection_filter", 0, IFACE_("Filter Intersection"), ICON_NONE);
+}
+
static void intersection_panel_draw(const bContext *UNUSED(C), Panel *panel)
{
uiLayout *layout = panel->layout;
@@@ -565,8 -542,9 +572,9 @@@ static void chaining_panel_draw(const b
uiLayout *layout = panel->layout;
const bool is_baked = RNA_boolean_get(ptr, "is_baked");
- const bool use_cache = RNA_boolean_get(ptr, "use_cache");
+ const bool use_cache = RNA_boolean_get(ptr, "use_cached_result");
const bool is_first = BKE_gpencil_is_first_lineart_in_stack(ob_ptr.data, ptr->data);
+ const bool is_geom = RNA_boolean_get(ptr, "use_geometry_space_chain");
uiLayoutSetPropSep(layout, true);
uiLayoutSetEnabled(layout, !is_baked);
@@@ -579,12 -557,17 +587,18 @@@
uiLayout *col = uiLayoutColumnWithHeading(layout, true, IFACE_("Chain"));
uiItemR(col, ptr, "use_fuzzy_intersections", 0, NULL, ICON_NONE);
uiItemR(col, ptr, "use_fuzzy_all", 0, NULL, ICON_NONE);
- uiItemR(col, ptr, "chain_floating_edges", 0, NULL, ICON_NONE);
- uiItemR(col, ptr, "chain_geometry_space", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "use_loose_edge_chain", 0, IFACE_("Loose Edges"), ICON_NONE);
+ uiItemR(col, ptr, "use_loose_as_contour", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "use_geometry_space_chain", 0, NULL, ICON_NONE);
- uiItemR(layout, ptr, "chaining_image_threshold", 0, NULL, ICON_NONE);
+ uiItemR(layout,
+ ptr,
+ "chaining_image_threshold",
+ 0,
+ is_geom ? IFACE_("Geometry Threshold") : NULL,
+ ICON_NONE);
+ uiItemR(layout, ptr, "smooth_tolerance", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(layout, ptr, "split_angle", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
}
@@@ -687,19 -648,15 +703,23 @@@ static void panelRegister(ARegionType *
PanelType *occlusion_panel = gpencil_modifier_subpanel_register(
region_type, "occlusion", "Occlusion", NULL, occlusion_panel_draw, panel_type);
gpencil_modifier_subpanel_register(region_type,
- "transparency",
+ "material_mask",
"",
- transparency_panel_draw_header,
- transparency_panel_draw,
+ material_mask_panel_draw_header,
+ material_mask_panel_draw,
occlusion_panel);
+ gpencil_modifier_subpanel_register(region_type,
+ "intersection",
+ "",
+ intersection_panel_draw_header,
+ intersection_panel_draw,
+ panel_type);
+ gpencil_modifier_subpanel_register(
+ region_type, "face_mark", "", face_mark_panel_draw_header, face_mark_panel_draw, panel_type);
+ gpencil_modifier_subpanel_register(
+ region_type, "intersection", "Intersection", NULL, intersection_panel_draw, panel_type);
+ gpencil_modifier_subpanel_register(
+ region_type, "face_mark", "", face_mark_panel_draw_header, face_mark_panel_draw, panel_type);
gpencil_modifier_subpanel_register(
region_type, "chaining", "Chaining", NULL, chaining_panel_draw, panel_type);
gpencil_modifier_subpanel_register(
diff --cc source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
index 18bd524ed2b,247b0b3f57b..d77e0900535
--- a/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
+++ b/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
@@@ -307,8 -287,7 +304,8 @@@ typedef struct LineartRenderBuffer
bool use_material;
bool use_edge_marks;
bool use_intersections;
- bool use_floating;
+ bool use_loose;
+ bool use_light_contour;
bool fuzzy_intersections;
bool fuzzy_everything;
bool allow_boundaries;
diff --cc source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 9a08a093f37,c05749061a9..9ef3cb895ac
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@@ -3112,28 -3025,9 +3061,27 @@@ static LineartRenderBuffer *lineart_cre
rb->shift_x = fit == CAMERA_SENSOR_FIT_HOR ? c->shiftx : c->shiftx / asp;
rb->shift_y = fit == CAMERA_SENSOR_FIT_VERT ? c->shifty : c->shifty * asp;
+ rb->overscan = lmd->overscan;
+
+ rb->shift_x /= (1 + rb->overscan);
+ rb->shift_y /= (1 + rb->overscan);
+
+ if (lmd->light_contour_object) {
+ Object *lo = lmd->light_contour_object;
+ if (lo->type == OB_LAMP && ((Light *)lo->data)->type == LA_SUN) {
+ rb->light_is_sun = true;
+ float vec[3] = {0.0f, 0.0f, 1.0f};
+ mul_mat3_m4_v3(lo->obmat, vec);
+ copy_v3db_v3fl(rb->light_vector, vec);
+ }
+ else {
+ copy_v3db_v3fl(rb->light_vector, lmd->light_contour_object->obmat[3]);
+ }
+ }
+
rb->crease_threshold = cos(M_PI - lmd->crease_th
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list