[Bf-blender-cvs] [46866fb907b] soc-2018-npr: Solve merge errors in shader calls.
Commit: 46866fb907b9379b35522d877e97cea1f230d4b8 Author: YimingWu Date: Thu May 16 10:03:21 2019 +0800 Branches: soc-2018-npr https://developer.blender.org/rB46866fb907b9379b35522d877e97cea1f230d4b8 Solve merge errors in shader calls. === M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index a8d5f95ceab..c66d7011dc1 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -241,13 +241,13 @@ static void lanpr_cache_init(void *vedata){ DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "normal_strength", >g_data->normal_strength, 1);// normal strength DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "depth_clamp", >g_data->depth_clamp, 1);// depth clamp DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "depth_strength", >g_data->depth_strength, 1);// depth strength - DRW_shgroup_call_add(stl->g_data->edge_detect_shgrp, quad, NULL); + DRW_shgroup_call(stl->g_data->edge_detect_shgrp, quad, NULL); psl->edge_thinning = DRW_pass_create("Edge Thinning Stage 1", DRW_STATE_WRITE_COLOR); stl->g_data->edge_thinning_shgrp = DRW_shgroup_create(lanpr_share.edge_thinning_shader, psl->edge_thinning); DRW_shgroup_uniform_texture_ref(stl->g_data->edge_thinning_shgrp, "tex_sample_0", >color); DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp, "stage", >g_data->stage, 1); - DRW_shgroup_call_add(stl->g_data->edge_thinning_shgrp, quad, NULL); + DRW_shgroup_call(stl->g_data->edge_thinning_shgrp, quad, NULL); } elif(lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->active_layer) @@ -345,7 +345,7 @@ static void lanpr_cache_populate(void *vedata, Object *ob){ struct GPUBatch *geom = DRW_cache_object_surface_get(ob); if (geom) { - DRW_shgroup_call_object_add_no_cull(stl->g_data->multipass_shgrp, geom, ob); + DRW_shgroup_call_object_no_cull(stl->g_data->multipass_shgrp, geom, ob); } if (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->active_layer) { @@ -393,13 +393,13 @@ static void lanpr_cache_finish(void *vedata){ LANPR_BatchItem *bi; for (bi = pd->dpix_batch_list.first; bi; bi = (void *)bi->Item.next) { - DRW_shgroup_call_add(pd->dpix_transform_shgrp, bi->dpix_transform_batch, bi->ob->obmat); - DRW_shgroup_call_add(pd->dpix_preview_shgrp, bi->dpix_preview_batch, 0); + DRW_shgroup_call(pd->dpix_transform_shgrp, bi->dpix_transform_batch, bi->ob->obmat); + DRW_shgroup_call(pd->dpix_preview_shgrp, bi->dpix_preview_batch, 0); } if (lanpr->render_buffer && lanpr->render_buffer->DPIXIntersectionBatch) { - DRW_shgroup_call_add(pd->dpix_transform_shgrp, lanpr->render_buffer->DPIXIntersectionTransformBatch, 0); - DRW_shgroup_call_add(pd->dpix_preview_shgrp, lanpr->render_buffer->DPIXIntersectionBatch, 0); + DRW_shgroup_call(pd->dpix_transform_shgrp, lanpr->render_buffer->DPIXIntersectionTransformBatch, 0); + DRW_shgroup_call(pd->dpix_preview_shgrp, lanpr->render_buffer->DPIXIntersectionBatch, 0); } } } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 104a881505c..c94669745d5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3308,7 +3308,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_r_strength", lanpr->use_same_taper ? tls : trs, 1); //need to add component enable/disable option. - DRW_shgroup_call_add(rb->ChainShgrp, lanpr->render_buffer->ChainDrawBatch, NULL); + DRW_shgroup_call(rb->ChainShgrp, lanpr->render_buffer->ChainDrawBatch, NULL); // deb
[Bf-blender-cvs] [54804117e89] soc-2018-npr: Merge branch 'master' into soc-2018-npr
Commit: 54804117e89931a1e7bfa67b2aaf4fe237881ab6 Author: YimingWu Date: Thu May 16 09:48:45 2019 +0800 Branches: soc-2018-npr https://developer.blender.org/rB54804117e89931a1e7bfa67b2aaf4fe237881ab6 Merge branch 'master' into soc-2018-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [f37533fc44c] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: f37533fc44cfb8a7eec919df0dae38998de10e2f Author: YimingWu Date: Tue May 28 15:39:42 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf37533fc44cfb8a7eec919df0dae38998de10e2f Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [847192b3d6e] soc-2019-npr: Use DRW_view APIs. (Potentially not doing it correctly.)
Commit: 847192b3d6e8cb572be44002dbe5c26e70592f81 Author: YimingWu Date: Tue May 28 16:32:11 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB847192b3d6e8cb572be44002dbe5c26e70592f81 Use DRW_view APIs. (Potentially not doing it correctly.) === M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index c66d7011dc1..f56bc1948aa 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -477,7 +477,7 @@ void LANPR_render_cache( } -static void workbench_render_matrices_init(RenderEngine *engine, Depsgraph *depsgraph) +static void lanpr_render_matrices_init(RenderEngine *engine, Depsgraph *depsgraph) { /* TODO(sergey): Shall render hold pointer to an evaluated camera instead? */ Scene *scene = DEG_get_evaluated_scene(depsgraph); @@ -500,12 +500,9 @@ static void workbench_render_matrices_init(RenderEngine *engine, Depsgraph *deps unit_m4(unitmat); - DRW_viewport_matrix_override_set(persmat, DRW_MAT_PERS); - DRW_viewport_matrix_override_set(persinv, DRW_MAT_PERSINV); - DRW_viewport_matrix_override_set(winmat, DRW_MAT_WIN); - DRW_viewport_matrix_override_set(wininv, DRW_MAT_WININV); - DRW_viewport_matrix_override_set(viewmat, DRW_MAT_VIEW); - DRW_viewport_matrix_override_set(viewinv, DRW_MAT_VIEWINV); + DRWView *view = DRW_view_create(viewmat, winmat, NULL, NULL, NULL); + DRW_view_default_set(view); + DRW_view_set_active(view); } int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene); @@ -550,7 +547,7 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru } } - workbench_render_matrices_init(engine, draw_ctx->depsgraph); + lanpr_render_matrices_init(engine, draw_ctx->depsgraph); /* refered to eevee's code */ diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index c94669745d5..65607ad9989 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3252,13 +3252,10 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) pd->dpix_viewport[3] = texh; unit_m4(indentity_mat); - - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_PERS); - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_PERSINV); - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_WIN); - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_WININV); - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_VIEW); - DRW_viewport_matrix_override_set(indentity_mat, DRW_MAT_VIEWINV); + + DRWView *view = DRW_view_create(indentity_mat, indentity_mat, NULL, NULL, NULL); + DRW_view_default_set(view); + DRW_view_set_active(view); if (lanpr->enable_chaining && lanpr->render_buffer->ChainDrawBatch) { for (ll = lanpr->line_layers.last; ll; ll = ll->prev) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c536d7b778e] soc-2019-npr: LANPR: Added a placeholder for GPencil sample modifier.
Commit: c536d7b778e0320cdbd804c7b3718fb3a2648564 Author: YimingWu Date: Tue Jun 4 18:31:09 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBc536d7b778e0320cdbd804c7b3718fb3a2648564 LANPR: Added a placeholder for GPencil sample modifier. === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/gpencil_modifiers/CMakeLists.txt M source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h M source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c A source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/intern/rna_gpencil_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 5a078d22295..fbccf42f780 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2267,6 +2267,10 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): row.prop(md, "layer_pass", text="Pass") row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT') +def GP_SAMPLE(self, layout, ob, md): +col = layout.column() +col.prop(md, "length") + classes = ( DATA_PT_modifiers, diff --git a/source/blender/gpencil_modifiers/CMakeLists.txt b/source/blender/gpencil_modifiers/CMakeLists.txt index 6f0468426ac..d716f5465c1 100644 --- a/source/blender/gpencil_modifiers/CMakeLists.txt +++ b/source/blender/gpencil_modifiers/CMakeLists.txt @@ -58,6 +58,7 @@ set(SRC intern/MOD_gpencilsimplify.c intern/MOD_gpencilsmooth.c intern/MOD_gpencilstroke.c + intern/MOD_gpencilsample.c intern/MOD_gpencilsubdiv.c intern/MOD_gpencilthick.c intern/MOD_gpenciltime.c diff --git a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h index 6287ec0f56e..a6f2bc8e9e5 100644 --- a/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h +++ b/source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h @@ -43,6 +43,7 @@ extern GpencilModifierTypeInfo modifierType_Gpencil_Offset; extern GpencilModifierTypeInfo modifierType_Gpencil_Armature; extern GpencilModifierTypeInfo modifierType_Gpencil_Time; extern GpencilModifierTypeInfo modifierType_Gpencil_Stroke; +extern GpencilModifierTypeInfo modifierType_Gpencil_Sample; /* MOD_gpencil_util.c */ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]); diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c index c46947fb6f5..150edae4f56 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c @@ -59,6 +59,7 @@ void gpencil_modifier_type_init(GpencilModifierTypeInfo *types[]) INIT_GP_TYPE(Subdiv); INIT_GP_TYPE(Simplify); INIT_GP_TYPE(Stroke); + INIT_GP_TYPE(Sample); INIT_GP_TYPE(Thick); INIT_GP_TYPE(Tint); INIT_GP_TYPE(Color); diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c similarity index 77% copy from source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c copy to source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c index 18cbf1f173f..fb23de84b67 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c @@ -72,8 +72,7 @@ static void initData(GpencilModifierData *md) { - StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; - gpmd->object = NULL; + SampleGpencilModifierData *gpmd = (SampleGpencilModifierData *)md; } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) @@ -91,7 +90,7 @@ static void bakeModifier(Main *UNUSED(bmain), for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { - // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf); +//stuff return; } } @@ -103,19 +102,12 @@ static void bakeModifier(Main *UNUSED(bmain), static void generateStrokes( GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) { - // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf); - lanpr_update_data_for_external(depsgraph); - lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf); + //stuff } static void updateDepsgraph(Gp
[Bf-blender-cvs] [bff6b5330f8] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr
Commit: bff6b5330f894247d5458d3f90e4e055c0a5780e Author: YimingWu Date: Mon Jun 3 12:06:09 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBbff6b5330f894247d5458d3f90e4e055c0a5780e Merge remote-tracking branch 'origin/master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [90137bbfa46] soc-2019-npr: Fix chaining occlusion error and formatted source files.
Commit: 90137bbfa46e79add94f68b05144c434f401c51b Author: YimingWu Date: Mon Jun 3 15:24:15 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB90137bbfa46e79add94f68b05144c434f401c51b Fix chaining occlusion error and formatted source files. === M intern/ghost/intern/GHOST_ContextCGL.mm M intern/ghost/intern/GHOST_SystemCocoa.mm M source/blender/collada/AnimationImporter.cpp M source/blender/collada/AnimationImporter.h M source/blender/collada/ArmatureImporter.cpp M source/blender/collada/BCAnimationCurve.cpp M source/blender/collada/BCAnimationCurve.h M source/blender/collada/BCMath.h M source/blender/collada/BCSampleData.cpp M source/blender/collada/ControllerExporter.cpp M source/blender/draw/engines/gpencil/gpencil_engine.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/intern/rna_gpencil.c M source/blender/makesrna/intern/rna_modifier.c === diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm b/intern/ghost/intern/GHOST_ContextCGL.mm index 12c340ffe97..0fca41306a6 100644 --- a/intern/ghost/intern/GHOST_ContextCGL.mm +++ b/intern/ghost/intern/GHOST_ContextCGL.mm @@ -34,7 +34,8 @@ static void ghost_fatal_error_dialog(const char *msg) { - @autoreleasepool { + @autoreleasepool + { NSString *message = [NSString stringWithFormat:@"Error opening window:\n%s", msg]; NSAlert *alert = [[NSAlert alloc] init]; @@ -337,7 +338,8 @@ static const OSType METAL_CORE_VIDEO_PIXEL_FORMAT = kCVPixelFormatType_32BGRA; void GHOST_ContextCGL::metalInit() { - @autoreleasepool { + @autoreleasepool + { id device = m_metalLayer.device; // Create a command queue for blit/present operation @@ -532,7 +534,8 @@ void GHOST_ContextCGL::metalUpdateFramebuffer() void GHOST_ContextCGL::metalSwapBuffers() { - @autoreleasepool { + @autoreleasepool + { updateDrawingContext(); glFlush(); diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index 376ebfa2a21..80a521a7ca5 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -1358,7 +1358,8 @@ bool GHOST_SystemCocoa::handleOpenDocumentRequest(void *filepathStr) // Check open windows if some changes are not saved if (m_windowManager->getAnyModifiedState()) { -@autoreleasepool { +@autoreleasepool +{ NSAlert *alert = [[NSAlert alloc] init]; NSString *title = [NSString stringWithFormat:@"Opening %@", [filepath lastPathComponent]]; NSString *text = @"Current document has not been saved.\nDo you really want to proceed?"; diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index ef6c81efff7..be748110fb9 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -1376,7 +1376,7 @@ void AnimationImporter::add_bone_animation_sampled(Object *ob, for (int i = 0; i < totcu; i++) { if (i < 4) { add_bezt(newcu[i], fra, qref.quat()[i]); - } + } else if (i < 7) { add_bezt(newcu[i], fra, loc[i - 4]); } @@ -1842,7 +1842,7 @@ Object *AnimationImporter::translate_animation_OLD( if (is_rotation || is_matrix) { if (is_joint) { bPoseChannel *chan = BKE_pose_channel_find_name(ob->pose, bone_name); - chan->rotmode = (is_matrix)? ROT_MODE_QUAT : ROT_MODE_EUL; + chan->rotmode = (is_matrix) ? ROT_MODE_QUAT : ROT_MODE_EUL; } else { ob->rotmode = (is_matrix) ? ROT_MODE_QUAT : ROT_MODE_EUL; diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h index c62ffdbafd3..0043dad7116 100644 --- a/source/blender/collada/AnimationImporter.h +++ b/source/blender/collada/AnimationImporter.h @@ -195,7 +195,10 @@ class AnimationImporter : private TransformReader, public AnimationImporterBase int setAnimType(const COLLADAFW::Animatable *prop, int type, int addition); - void modify_fcurve(std::vector *curves, const char *rna_path, int array_index, int scale=1); + void modify_fcurve(std::vector *curves, + const char *rna_path, + int array_index, + int
[Bf-blender-cvs] [dfbd3e4d9ef] soc-2019-npr: Grease pencil composition depth option added.
Commit: dfbd3e4d9efa9536d8e241746b3a816d6b86b028 Author: YimingWu Date: Mon Jun 3 13:57:52 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBdfbd3e4d9efa9536d8e241746b3a816d6b86b028 Grease pencil composition depth option added. === M release/scripts/startup/bl_ui/properties_data_gpencil.py M source/blender/draw/engines/gpencil/gpencil_engine.c M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/intern/rna_gpencil.c === diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py b/release/scripts/startup/bl_ui/properties_data_gpencil.py index 44a7990d570..cf3a780a146 100644 --- a/release/scripts/startup/bl_ui/properties_data_gpencil.py +++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py @@ -396,6 +396,9 @@ class DATA_PT_gpencil_strokes(DataButtonsPanel, Panel): ob = context.object gpd = context.gpencil +col = layout.column(align=True) +col.prop(gpd, "disable_depth_composition", expand=True, icon='IMAGE_ZDEPTH') + col = layout.column(align=True) col.prop(gpd, "stroke_depth_order") diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index 62b893867f3..a97a4a27833 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -1036,6 +1036,10 @@ void GPENCIL_draw_scene(void *ved) } /* draw mix pass */ +if(gpd->no_depth){ + DRW_pass_state_remove(psl->mix_pass, DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); + //DRW_pass_state_remove(psl->mix_pass_noblend,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); +} DRW_draw_pass(psl->mix_pass); /* disable select flag */ diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index 5a32f9bc23c..10cc8ec833f 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -468,7 +468,10 @@ typedef struct bGPdata { /** Settings for this datablock. */ int flag; - char _pad1[4]; + /** Not composite depth when drawing the layer*/ + int no_depth; + + //char _pad1[4]; /* Palettes */ /** List of bGPDpalette's - Deprecated (2.78 - 2.79 only). */ diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 276b685e93f..2b49f82f8d4 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -1659,6 +1659,13 @@ static void rna_def_gpencil_data(BlenderRNA *brna) RNA_def_property_collection_funcs( prop, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "rna_IDMaterials_assign_int"); + /* composition Depth */ + prop = RNA_def_property(srna, "disable_depth_composition", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "no_depth",0); + RNA_def_property_ui_text( + prop, "Disable Depth Composition", "Do not use depth when rendering GPencil to 3D scene."); + RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); + /* Depth */ prop = RNA_def_property(srna, "stroke_depth_order", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "draw_mode"); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [461008a3e8b] soc-2019-npr: Image and viewport now both support GPencil stroke overlay
Commit: 461008a3e8b00f0a48d0cd1704906575a42f0f9a Author: YimingWu Date: Mon Jun 3 14:20:52 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB461008a3e8b00f0a48d0cd1704906575a42f0f9a Image and viewport now both support GPencil stroke overlay === M source/blender/draw/engines/gpencil/gpencil_engine.c M source/blender/draw/engines/gpencil/gpencil_engine.h M source/blender/draw/engines/gpencil/gpencil_render.c === diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index a97a4a27833..6d48f40ee61 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -1035,13 +1035,20 @@ void GPENCIL_draw_scene(void *ved) stl->storage->do_select_outline = 0; } +stl->storage->no_depth_composition = gpd->no_depth; + /* draw mix pass */ if(gpd->no_depth){ - DRW_pass_state_remove(psl->mix_pass, DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); - //DRW_pass_state_remove(psl->mix_pass_noblend,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); -} + DRW_pass_state_remove(psl->mix_pass,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); + } + DRW_draw_pass(psl->mix_pass); +/* restore */ +if(gpd->no_depth){ + DRW_pass_state_add(psl->mix_pass,DRW_STATE_WRITE_DEPTH|DRW_STATE_DEPTH_LESS); +} + /* disable select flag */ stl->storage->do_select_outline = 0; diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h index a7e4c9d58d6..14a94e50323 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.h +++ b/source/blender/draw/engines/gpencil/gpencil_engine.h @@ -172,6 +172,8 @@ typedef struct GPENCIL_Storage { short framebuffer_flag; /* flag what framebuffer need to create */ + int no_depth_composition; + int blend_mode; int clamp_layer; float blend_opacity; diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c b/source/blender/draw/engines/gpencil/gpencil_render.c index 301c29af335..41c9ef0a177 100644 --- a/source/blender/draw/engines/gpencil/gpencil_render.c +++ b/source/blender/draw/engines/gpencil/gpencil_render.c @@ -345,8 +345,8 @@ void GPENCIL_render_to_image(void *vedata, /* check grease pencil render transparency */ if (gp_pixel_rgba[3] > 0.0f) { if (src_pixel_rgba[3] > 0.0f) { - /* check z-depth */ - if (gp_pixel_depth[0] > src_pixel_depth[0]) { + /* if depth enabled, then check z-depth */ + if (!stl->storage->no_depth_composition && gp_pixel_depth[0] > src_pixel_depth[0]) { /* copy source z-depth */ gp_pixel_depth[0] = src_pixel_depth[0]; /* blend object on top */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [bb48fcac2f3] soc-2019-npr: Render data distroy functions
Commit: bb48fcac2f31312a960daafcc1d83436696c77b2 Author: YimingWu Date: Mon Jun 3 15:06:32 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBbb48fcac2f31312a960daafcc1d83436696c77b2 Render data distroy functions === M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_engine.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index ad3f47e1dc8..608ad3f2a73 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -20,4 +20,6 @@ void lanpr_generate_gpencil_from_chain( int lanpr_count_chain(LANPR_RenderLineChain *rlc); +void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb); + #endif diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 30f889c0bdc..addcdc2124b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -229,6 +229,8 @@ typedef struct LANPR_PrivateData { ListBase dpix_batch_list; + LANPR_RenderBuffer* rb_ref; + } LANPR_PrivateData; typedef struct LANPR_StorageList { diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 8523a55d893..3188b24bb37 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -4,6 +4,7 @@ #include "BLI_linklist.h" #include "BLI_math_matrix.h" #include "lanpr_all.h" +#include "lanpr_access.h" #include "DRW_render.h" #include "BKE_object.h" #include "DNA_mesh_types.h" @@ -168,6 +169,8 @@ static void lanpr_engine_free(void) lanpr_destroy_atlas(vedata); + lanpr_destroy_render_data(stl->g_data->rb_ref); + stl->g_data = 0; } @@ -531,6 +534,9 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb, int is_rend // should isolate these into a seperate function. lanpr_software_draw_scene(vedata, dfb, is_render); } + + // Draw can create stuff there. + pd->rb_ref = lanpr->render_buffer; } static void lanpr_draw_scene(void *vedata) @@ -651,6 +657,9 @@ static void lanpr_render_to_image(LANPR_Data *vedata, lanpr_cache_init(vedata); DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, LANPR_render_cache); lanpr_cache_finish(vedata); + + /* get ref for destroy data */ + stl->g_data->rb_ref = lanpr->render_buffer; DRW_render_instance_buffer_finish(); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [acc075f33ca] soc-2019-npr: LANPR: GP stroke now automatically updates LANPR cache.
Commit: acc075f33ca8c38a46d4954e59258e74999c4c06 Author: YimingWu Date: Mon Jun 3 17:49:24 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBacc075f33ca8c38a46d4954e59258e74999c4c06 LANPR: GP stroke now automatically updates LANPR cache. === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 85c9327d99f..8f1b4670c94 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -243,6 +243,7 @@ void lanpr_generate_gpencil_from_chain( printf("NULL LANPR rb!\n"); return; } + if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) return; int color_idx = 0; int tot_points = 0; @@ -279,3 +280,12 @@ void lanpr_generate_gpencil_from_chain( BKE_gpencil_stroke_add_points(gps, stroke_data, count, mat); } } + +void lanpr_update_data_for_external(Depsgraph *depsgraph){ + Scene *scene = DEG_get_evaluated_scene(depsgraph); + SceneLANPR *lanpr = >lanpr; + if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) return; + if (lanpr->render_buffer && lanpr->render_buffer->cached_for_frame != scene->r.cfra){ +lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene); + } +} diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index be5b8b4a743..baa9dbb07ea 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -16,8 +16,14 @@ void lanpr_generate_gpencil_geometry( void lanpr_generate_gpencil_from_chain( GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf); +void lanpr_update_data_for_external(Depsgraph *depsgraph); + + int lanpr_count_chain(LANPR_RenderLineChain *rlc); +int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene); + void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb); + #endif diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c index 01dd03ee319..18cbf1f173f 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c @@ -104,6 +104,7 @@ static void generateStrokes( GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) { // lanpr_generate_gpencil_geometry(md, depsgraph, ob, gpl, gpf); + lanpr_update_data_for_external(depsgraph); lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [2897c90597b] soc-2019-npr: LANPR: rollback no-depth composition for GP, use object in front. Fixing chaining artefacts.
Commit: 2897c90597bde05c653998c7790fac8f767d515c Author: YimingWu Date: Mon Jun 3 18:28:09 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB2897c90597bde05c653998c7790fac8f767d515c LANPR: rollback no-depth composition for GP, use object in front. Fixing chaining artefacts. === M release/scripts/startup/bl_ui/properties_data_gpencil.py M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/draw/engines/gpencil/gpencil_engine.c M source/blender/draw/engines/gpencil/gpencil_engine.h M source/blender/draw/engines/gpencil/gpencil_render.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/intern/rna_gpencil.c === diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py b/release/scripts/startup/bl_ui/properties_data_gpencil.py index cf3a780a146..44a7990d570 100644 --- a/release/scripts/startup/bl_ui/properties_data_gpencil.py +++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py @@ -396,9 +396,6 @@ class DATA_PT_gpencil_strokes(DataButtonsPanel, Panel): ob = context.object gpd = context.gpencil -col = layout.column(align=True) -col.prop(gpd, "disable_depth_composition", expand=True, icon='IMAGE_ZDEPTH') - col = layout.column(align=True) col.prop(gpd, "stroke_depth_order") diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index a2c19ebbd74..5a078d22295 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2250,6 +2250,8 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): col = layout.column() col.prop(md, "offset_object", text="Object") +col.prop(ob,"show_in_front", text='Overlay', expand=True) + col = layout.column() col.separator() col.label(text="Material:") diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index 3466ea721b5..49cad084a5f 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -1035,20 +1035,8 @@ void GPENCIL_draw_scene(void *ved) stl->storage->do_select_outline = 0; } -stl->storage->no_depth_composition = gpd->no_depth; - -/* draw mix pass */ -if (gpd->no_depth) { - DRW_pass_state_remove(psl->mix_pass, DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS); -} - DRW_draw_pass(psl->mix_pass); -/* restore */ -if (gpd->no_depth) { - DRW_pass_state_add(psl->mix_pass, DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS); -} - /* disable select flag */ stl->storage->do_select_outline = 0; diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h index 14a94e50323..a7e4c9d58d6 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.h +++ b/source/blender/draw/engines/gpencil/gpencil_engine.h @@ -172,8 +172,6 @@ typedef struct GPENCIL_Storage { short framebuffer_flag; /* flag what framebuffer need to create */ - int no_depth_composition; - int blend_mode; int clamp_layer; float blend_opacity; diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c b/source/blender/draw/engines/gpencil/gpencil_render.c index 41c9ef0a177..7d5d7cfab0b 100644 --- a/source/blender/draw/engines/gpencil/gpencil_render.c +++ b/source/blender/draw/engines/gpencil/gpencil_render.c @@ -346,7 +346,7 @@ void GPENCIL_render_to_image(void *vedata, if (gp_pixel_rgba[3] > 0.0f) { if (src_pixel_rgba[3] > 0.0f) { /* if depth enabled, then check z-depth */ - if (!stl->storage->no_depth_composition && gp_pixel_depth[0] > src_pixel_depth[0]) { + if (gp_pixel_depth[0] > src_pixel_depth[0]) { /* copy source z-depth */ gp_pixel_depth[0] = src_pixel_depth[0]; /* blend object on top */ diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 8f1b4670c94..524a08eacd5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -268,7 +268,7 @@ void lanpr_generate_gpencil_from_chain( float *stroke_data = BLI_array_alloca(stroke_data, count * GP_PRIM_DATABUF_SIZE); for (rlci = rlc->chain.first; rlc
[Bf-blender-cvs] [4cc14267833] soc-2019-npr: LANPR: Memory now all in RenderBuffer->pool. engine_free() not called.
Commit: 4cc14267833837c0bb28fd23b49b12f07d25b8c1 Author: YimingWu Date: Mon Jun 3 16:28:29 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4cc14267833837c0bb28fd23b49b12f07d25b8c1 LANPR: Memory now all in RenderBuffer->pool. engine_free() not called. === M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 8bdaf0122a2..30812d3cba2 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -68,6 +68,9 @@ #define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T)) +extern struct RenderEngineType DRW_engine_viewport_lanpr_type; +extern struct DrawEngineType draw_engine_lanpr_type; + typedef struct LANPR_RenderBuffer LANPR_RenderBuffer; typedef struct LANPR_SharedResource { @@ -418,8 +421,6 @@ typedef struct LANPR_BoundingArea { //#define TNS_OVERRIDE_ALL_OTHERS_IN_GROUP 3 //#define TNS_OVERRIDE_ALL_OTHERS 4 -extern RenderEngineType DRW_engine_viewport_lanpr_type; - #define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T)) #define TNS_TILE(tile, r, c, CCount) tile[r * CCount + c] diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 61e27b1bff2..da96096d54a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -1123,8 +1123,7 @@ void lanpr_THREAD_calculate_line_occlusion(TaskPool *__restrict pool, void lanpr_THREAD_calculate_line_occlusion_begin(LANPR_RenderBuffer *rb) { int thread_count = rb->thread_count; - LANPR_RenderTaskInfo *rti = MEM_callocN(sizeof(LANPR_RenderTaskInfo) * thread_count, - "render task info"); + LANPR_RenderTaskInfo *rti = MEM_callocN(sizeof(LANPR_RenderTaskInfo) * thread_count,"Task Pool"); TaskScheduler *scheduler = BLI_task_scheduler_get(); int i; @@ -1142,7 +1141,8 @@ void lanpr_THREAD_calculate_line_occlusion_begin(LANPR_RenderBuffer *rb) BLI_task_pool_push(tp, lanpr_THREAD_calculate_line_occlusion, [i], 0, TASK_PRIORITY_HIGH); } BLI_task_pool_work_and_wait(tp); - + BLI_task_pool_free(tp); + MEM_freeN(rti); } @@ -1356,9 +1356,7 @@ LANPR_RenderElementLinkNode *lanpr_new_cull_triangle_space64(LANPR_RenderBuffer { LANPR_RenderElementLinkNode *reln; - LANPR_RenderTriangle *RenderTriangles = MEM_callocN( - 64 * rb->triangle_size, - "render triangle space"); // CreateNewBuffer(LANPR_RenderTriangle, 64); + LANPR_RenderTriangle *RenderTriangles = mem_static_aquire(>render_data_pool, 64 * rb->triangle_size); // CreateNewBuffer(LANPR_RenderTriangle, 64); reln = list_append_pointer_static_sized(>triangle_buffer_pointers, >render_data_pool, @@ -1373,9 +1371,7 @@ LANPR_RenderElementLinkNode *lanpr_new_cull_point_space64(LANPR_RenderBuffer *rb { LANPR_RenderElementLinkNode *reln; - LANPR_RenderVert *Rendervertices = MEM_callocN( - sizeof(LANPR_RenderVert) * 64, - "render vert space"); // CreateNewBuffer(LANPR_RenderVert, 64); + LANPR_RenderVert *Rendervertices = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderVert) * 64); // CreateNewBuffer(LANPR_RenderVert, 64); reln = list_append_pointer_static_sized(>vertex_buffer_pointers, >render_data_pool, @@ -2073,11 +2069,9 @@ void lanpr_make_render_geometry_buffers_object(Object *o, CanFindFreestyle = 1; } -orv = MEM_callocN(sizeof(LANPR_RenderVert) * bm->totvert, "object render verts"); -ort = MEM_callocN( -bm->totface * rb->triangle_size, -"object render triangles"); // CreateNewBuffer(LANPR_RenderTriangle, mo->triangle_count); -orl = MEM_callocN(sizeof(LANPR_RenderLine) * bm->totedge, "object render edge"); +orv = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderVert) * bm->totvert); +ort = mem_static_aquire(>render_data_pool, bm->totface * rb->triangle_size); +orl = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLine) * bm->totedge); reln = list_append_pointer_static_sized(>vertex_buffer_pointers, >render_data_pool, @@ -2206,10 +2200,8 @@ void lanpr_make_render_geometry_buffers(Depsgraph *depsgraph, tmat_inverse_44d(rb->vp_inverse, rb->view_projection); void *a; - while (a = BLI_pophead(>triangle_buffer_pointers)) -MEM_freeN(a); - while (a = BLI_pophead(>vertex_buffer_pointers)
[Bf-blender-cvs] [a4b0a65909e] soc-2019-npr: GPencil: Backbone Stretcher modifier
Commit: a4b0a65909e85acb2bf613ccc8db492242b23832 Author: YimingWu Date: Wed Jun 5 12:20:48 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBa4b0a65909e85acb2bf613ccc8db492242b23832 GPencil: Backbone Stretcher modifier === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/blenkernel/BKE_gpencil.h M source/blender/blenkernel/intern/gpencil.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/editors/interface/interface_templates.c M source/blender/editors/screen/screen_ops.c M source/blender/editors/space_file/filesel.c M source/blender/editors/undo/ed_undo.c M source/blender/gpencil_modifiers/CMakeLists.txt M source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h M source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c A source/blender/gpencil_modifiers/intern/MOD_gpencilbackbonestretch.c M source/blender/gpencil_modifiers/intern/MOD_gpencilsample.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/intern/rna_constraint.c M source/blender/makesrna/intern/rna_gpencil.c M source/blender/makesrna/intern/rna_gpencil_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index fbccf42f780..687d41a4d44 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2270,6 +2270,10 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): def GP_SAMPLE(self, layout, ob, md): col = layout.column() col.prop(md, "length") + +def GP_BACKBONE(self, layout, ob, md): +col = layout.column() +col.prop(md, "length") classes = ( diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index ae19b40f7bf..ebc21493b53 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -212,6 +212,7 @@ void BKE_gpencil_stroke_2d_flat_ref(const struct bGPDspoint *ref_points, void BKE_gpencil_transform(struct bGPdata *gpd, float mat[4][4]); bool BKE_gpencil_sample_stroke(struct bGPDstroke *gps, float dist); +bool BKE_gpencil_stretch_stroke(struct bGPDstroke *gps, float dist); bool BKE_gpencil_smooth_stroke(struct bGPDstroke *gps, int i, float inf); bool BKE_gpencil_smooth_stroke_strength(struct bGPDstroke *gps, int point_index, float influence); bool BKE_gpencil_smooth_stroke_thickness(struct bGPDstroke *gps, int point_index, float influence); diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 7c54cfd1737..1bc1c0e1257 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1397,49 +1397,60 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps) /* ** */ -static int stroke_march_next_point(bGPDstroke *gps, int next_point_index, float* current, float dist, float *result, float* pressure, float* strength){ - float remaining_till_next=0.0f; +static int stroke_march_next_point(bGPDstroke *gps, + int next_point_index, + float *current, + float dist, + float *result, + float *pressure, + float *strength) +{ + float remaining_till_next = 0.0f; float remaining_march = dist; float step_start[3]; float point[3]; - if(!(next_point_indextotpoints)) return -1; + if (!(next_point_index < gps->totpoints)) +return -1; - copy_v3_v3(step_start,current); + copy_v3_v3(step_start, current); point[0] = gps->points[next_point_index].x; point[1] = gps->points[next_point_index].y; point[2] = gps->points[next_point_index].z; - remaining_till_next = len_v3v3(point,step_start); + remaining_till_next = len_v3v3(point, step_start); - while(remaining_till_next < remaining_march){ + while (remaining_till_next < remaining_march) { remaining_march -= remaining_till_next; point[0] = gps->points[next_point_index].x; point[1] = gps->points[next_point_index].y; point[2] = gps->points[next_point_index].z; -copy_v3_v3(step_start,point); +copy_v3_v3(step_start, point); next_
[Bf-blender-cvs] [f8f010887b6] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr
Commit: f8f010887b6da8595d11a5aa076f59148df30c15 Author: YimingWu Date: Wed Jun 5 11:09:28 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf8f010887b6da8595d11a5aa076f59148df30c15 Merge remote-tracking branch 'origin/master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [4f2b6c95faa] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 4f2b6c95faa3ae267249f19f3710d97618b91617 Author: YimingWu Date: Fri May 31 08:12:45 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4f2b6c95faa3ae267249f19f3710d97618b91617 Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [be9ef613fce] soc-2019-npr: Fixed smooth contour modifier not showing up bug.
Commit: be9ef613fceccb014a95c729038975aa2cdac3c1 Author: YimingWu Date: Fri May 31 10:47:57 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBbe9ef613fceccb014a95c729038975aa2cdac3c1 Fixed smooth contour modifier not showing up bug. === M source/blender/makesrna/intern/rna_modifier.c === diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index 4c2bcb66064..6838b3a89df 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -104,6 +104,11 @@ const EnumPropertyItem rna_enum_object_modifier_type_items[] = { ICON_MOD_WIREFRAME, "Wireframe", "Generate a wireframe on the edges of a mesh"}, + {eModifierType_MyBMesh, + "MY_BMESH", + ICON_MOD_SMOOTH, + "Smooth Contour", + "Generate smooth contour geometry for feature line rendering."}, {0, "", 0, N_("Deform"), ""}, {eModifierType_Armature, "ARMATURE", ICON_MOD_ARMATURE, "Armature", ""}, {eModifierType_Cast, "CAST", ICON_MOD_CAST, "Cast", ""}, ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b3d98f35321] soc-2019-npr: Grease pencil conversion now projects onto 3D space now. Need perspective correction fix for cut points.
Commit: b3d98f35321581ddd8c17f5790f348fb9bf02d25 Author: YimingWu Date: Fri May 31 10:20:35 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBb3d98f35321581ddd8c17f5790f348fb9bf02d25 Grease pencil conversion now projects onto 3D space now. Need perspective correction fix for cut points. === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_snake.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 5d667a8a040..417974234aa 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -270,9 +270,9 @@ void lanpr_generate_gpencil_from_chain( for(rlci = rlc->chain.first;rlci;rlci=(LANPR_RenderLineChainItem*)rlci->item.next){ float opatity=rlci->occlusion?0.1f:1.0f; - stroke_data[array_idx] = rlci->pos[0]; - stroke_data[array_idx + 1] = rlci->pos[1]; - stroke_data[array_idx + 2] = rlci->pos[2]; + stroke_data[array_idx] = rlci->gpos[0]; + stroke_data[array_idx + 1] = rlci->gpos[1]; + stroke_data[array_idx + 2] = rlci->gpos[2]; stroke_data[array_idx + 3] = opatity; //thickness stroke_data[array_idx + 4] = opatity; //hardness? array_idx+=5; diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 3f315187e15..045ca737e1a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -95,6 +95,7 @@ LANPR_RenderLineChainItem *lanpr_append_render_line_chain_point(LANPR_RenderBuff LANPR_RenderLineChain *rlc, float x, float y, +float gx, float gy, float gz, float *normal, char type, int level) @@ -104,6 +105,9 @@ LANPR_RenderLineChainItem *lanpr_append_render_line_chain_point(LANPR_RenderBuff rlci->pos[0] = x; rlci->pos[1] = y; + rlci->gpos[0] = gx; + rlci->gpos[1] = gy; + rlci->gpos[2] = gz; copy_v3_v3(rlci->normal, normal); rlci->line_type = type & LANPR_EDGE_FLAG_ALL_TYPE; rlci->occlusion = level; @@ -118,6 +122,7 @@ LANPR_RenderLineChainItem *lanpr_push_render_line_chain_point(LANPR_RenderBuffer LANPR_RenderLineChain *rlc, float x, float y, + float gx, float gy, float gz, float *normal, char type, int level) @@ -127,6 +132,9 @@ LANPR_RenderLineChainItem *lanpr_push_render_line_chain_point(LANPR_RenderBuffer rlci->pos[0] = x; rlci->pos[1] = y; + rlci->gpos[0] = gx; + rlci->gpos[1] = gy; + rlci->gpos[2] = gz; copy_v3_v3(rlci->normal, normal); rlci->line_type = type & LANPR_EDGE_FLAG_ALL_TYPE; rlci->occlusion = level; @@ -190,6 +198,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre LANPR_RenderLine *rl; LANPR_BoundingArea *ba; LANPR_RenderLineSegment *rls; + real* inv = rb->vp_inverse; for (rl = rb->all_render_lines.first; rl; rl = (LANPR_RenderLine*)rl->item.next) { @@ -224,7 +233,11 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre new_rv = rl->l; rls = rl->segments.first; lanpr_push_render_line_chain_point( -rb, rlc, new_rv->fbcoord[0], new_rv->fbcoord[1], N, rl->flags, rls->occlusion); +rb, rlc, new_rv->fbcoord[0], new_rv->fbcoord[1], +new_rv->gloc[0], +new_rv->gloc[1], +new_rv->gloc[2], + N, rl->flags, rls->occlusion); while (ba && (new_rl
[Bf-blender-cvs] [14ffd946280] soc-2019-npr: Finished structure naming convention changes in lanpr_all.h
Commit: 14ffd9462808c70aaacf54f6e50d1c57919937d6 Author: YimingWu Date: Tue May 28 21:54:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB14ffd9462808c70aaacf54f6e50d1c57919937d6 Finished structure naming convention changes in lanpr_all.h === M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c M source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 6f5bcb76a26..899082f4740 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -44,7 +44,7 @@ #define tMatDist2v(p1, p2) \ sqrt(((p1)[0] - (p2)[0]) * ((p1)[0] - (p2)[0]) + ((p1)[1] - (p2)[1]) * ((p1)[1] - (p2)[1])) -#define tnsLinearItp(L, R, T) ((L) * (1.0f - (T)) + (R) * (T)) +#define tnsLinearItp(l, r, T) ((l) * (1.0f - (T)) + (r) * (T)) typedef struct LANPR_RenderBuffer LANPR_RenderBuffer; @@ -82,18 +82,18 @@ typedef struct LANPR_SharedResource { #define TNS_DPIX_TEXTURE_SIZE 2048 typedef struct LANPR_TextureSample { - Link Item; + Link item; int X, Y; float Z; // for future usage } LANPR_TextureSample; typedef struct LANPR_LineStripPoint { - Link Item; + Link item; float P[3]; } LANPR_LineStripPoint; typedef struct LANPR_LineStrip { - Link Item; + Link item; ListBase points; int point_count; float total_length; @@ -140,11 +140,11 @@ typedef struct LANPR_TextureList { struct GPUTexture *depth; struct GPUTexture *edge_intermediate; - struct GPUTexture *dpix_in_pl;/* point L */ - struct GPUTexture *dpix_in_pr;/* point R */ - struct GPUTexture *dpix_in_nl;/* normal L */ - struct GPUTexture *dpix_in_nr;/* normal R */ - struct GPUTexture *dpix_in_edge_mask; /* RGBA, R:Material, G: Freestyle Edge Mark, BA:Reserved + struct GPUTexture *dpix_in_pl;/* point l */ + struct GPUTexture *dpix_in_pr;/* point r */ + struct GPUTexture *dpix_in_nl;/* normal l */ + struct GPUTexture *dpix_in_nr;/* normal r */ + struct GPUTexture *dpix_in_edge_mask; /* RGBA, r:Material, G: Freestyle Edge Mark, BA:Reserved for future usage */ struct GPUTexture *dpix_out_pl; @@ -232,7 +232,7 @@ typedef struct LANPR_StorageList { } LANPR_StorageList; typedef struct LANPR_BatchItem { - Link Item; + Link item; GPUBatch *dpix_transform_batch; GPUBatch *dpix_preview_batch; Object *ob; @@ -383,9 +383,9 @@ typedef struct LANPR_RenderBuffer { #define TNS_CULL_USED 1 typedef struct LANPR_RenderTriangle { - Link Item; - struct LANPR_RenderVert *V[3]; - struct LANPR_RenderLine *RL[3]; + Link item; + struct LANPR_RenderVert *v[3]; + struct LANPR_RenderLine *rl[3]; real gn[3]; real gc[3]; // struct BMFace *F; @@ -396,37 +396,37 @@ typedef struct LANPR_RenderTriangle { } LANPR_RenderTriangle; typedef struct LANPR_RenderTriangleThread { - struct LANPR_RenderTriangle Base; + struct LANPR_RenderTriangle base; struct LANPR_RenderLine *testing[127]; // max thread support; } LANPR_RenderTriangleThread; typedef struct LANPR_RenderElementLinkNode { - Link Item; - void *Pointer; - int ElementCount; - void *ObjectRef; - char Additional; + Link item; + void *pointer; + int element_count; + void *object_ref; + char additional; } LANPR_RenderElementLinkNode; typedef struct LANPR_RenderLineSegment { - Link Item; - real at; // at==0: leftat==1: right - u8bit OcclusionLevel;// after "at" point - short MaterialMaskMark; // e.g. to determine lines beind a glass window material. + Link item; + real at; // at==0: leftat==1: right + u8bit occlusion; // after "at" point + short material_mask_mark; // e.g. to determine lines beind a glass window material. } LANPR_RenderLineSegment; typedef struct LANPR_RenderVert { - Link Item; - real GLocation[4]; - real FrameBufferCoord[4]; - int FrameBufferCoordi[2]; - struct BMVert *V; // Used As R When Intersecting - struct LANPR_RenderLine *IntersectingLine; - struct LANPR_RenderLine *IntersectintLine2; - struct LANPR_RenderTriangle *IntersectWith; // Positive 1 Negative 0 + Link item; + real gloc[4]; + real fbcoord[4]; + int fbcoordi[2]; + struct BMVert *v; // Used As r When Intersecting + struct LANPR_RenderLine *intersecting_line; + struct LANPR_RenderLine *intersecting_line2; + struct
[Bf-blender-cvs] [0d1bf0623b4] soc-2019-npr: Adding lanpr to grease pencil strokes modifier.
Commit: 0d1bf0623b4767d8e688b509277f1f64130a839e Author: YimingWu Date: Thu May 30 15:16:58 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB0d1bf0623b4767d8e688b509277f1f64130a839e Adding lanpr to grease pencil strokes modifier. === M release/datafiles/locale M release/scripts/addons M release/scripts/addons_contrib M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/draw/CMakeLists.txt A source/blender/draw/engines/lanpr/lanpr_access.c A source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c A source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c M source/blender/draw/engines/lanpr/lanpr_util.c M source/blender/draw/engines/lanpr/lanpr_util.h M source/blender/gpencil_modifiers/CMakeLists.txt M source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h M source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c A source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/intern/rna_gpencil_modifier.c M source/tools === diff --git a/release/datafiles/locale b/release/datafiles/locale index 469c949d1ca..ad82c4ce43e 16 --- a/release/datafiles/locale +++ b/release/datafiles/locale @@ -1 +1 @@ -Subproject commit 469c949d1ca882be19daa128842f813b72a944d8 +Subproject commit ad82c4ce43ef2801ef51e75af1f9702992478b02 diff --git a/release/scripts/addons b/release/scripts/addons index c88411ff777..8e6f485cf5b 16 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611 +Subproject commit 8e6f485cf5b160c425d7da7c743879b20f3d6a96 diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib index 310578043de..7077ff07384 16 --- a/release/scripts/addons_contrib +++ b/release/scripts/addons_contrib @@ -1 +1 @@ -Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6 +Subproject commit 7077ff07384491d1f7630484995557f1c7302dae diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 5b83cfe354e..a2c19ebbd74 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2243,6 +2243,27 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): sub = row.row(align=True) sub.active = bool(md.vertex_group) sub.prop(md, "invert_vertex_group", text="", icon='ARROW_LEFTRIGHT') + +def GP_STROKE(self, layout, ob, md): +gpd = ob.data + +col = layout.column() +col.prop(md, "offset_object", text="Object") + +col = layout.column() +col.separator() +col.label(text="Material:") +row = col.row(align=True) +row.prop(md, "pass_index", text="Pass") +row.prop(md, "invert_material_pass", text="", icon='ARROW_LEFTRIGHT') + +col.label(text="Layer:") +row = col.row(align=True) +row.prop_search(md, "layer", gpd, "layers", text="", icon='GREASEPENCIL') +row.prop(md, "invert_layers", text="", icon='ARROW_LEFTRIGHT') +row = layout.row(align=True) +row.prop(md, "layer_pass", text="Pass") +row.prop(md, "invert_layer_pass", text="", icon='ARROW_LEFTRIGHT') classes = ( diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 3cdf07fd7ff..1e44cae7a8c 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -132,7 +132,7 @@ set(SRC engines/lanpr/lanpr_ops.c engines/lanpr/lanpr_util.c engines/lanpr/lanpr_chain.c - + engines/lanpr/lanpr_access.c DRW_engine.h intern/DRW_render.h @@ -159,6 +159,8 @@ set(SRC engines/workbench/workbench_private.h engines/lanpr/lanpr_util.h engines/lanpr/lanpr_all.h + engines/lanpr/lanpr_access.h + engines/lanpr/lanpr_data_types.h ) set(LIB diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c new file mode 100644 index 000..f61e256 --- /dev/null +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -0,0 +1,233 @@ +#include "DNA_gpe
[Bf-blender-cvs] [413b2256d90] soc-2019-npr: Spell check
Commit: 413b2256d90e9f575e128926fddd4011c387944f Author: YimingWu Date: Thu May 30 21:10:16 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB413b2256d90e9f575e128926fddd4011c387944f Spell check === M source/blender/makesrna/intern/rna_material.c === diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index ae3f0ff1f46..764996b828a 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -469,7 +469,7 @@ static void rna_def_material_display(StructRNA *srna) RNA_def_property_update(prop, 0, "rna_Material_update"); } -static void rna_def_material_lanpr(struct StructRNA *srna, struct BlenerRNA *brna) +static void rna_def_material_lanpr(struct StructRNA *srna, struct BlenderRNA *brna) { PropertyRNA *prop; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [37cc7063c7c] soc-2019-npr: Fixing LANPR structure naming to blender's style
Commit: 37cc7063c7c6fa29f73b84ca7c8b012f7a90db4f Author: YimingWu Date: Tue May 28 20:52:17 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB37cc7063c7c6fa29f73b84ca7c8b012f7a90db4f Fixing LANPR structure naming to blender's style === M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index a1e0fe92afb..c0ffa67e3c1 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -264,142 +264,123 @@ typedef struct LANPR_Data { typedef struct LANPR_RenderTaskInfo { //thrd_t ThreadHandle; - struct LANPR_RenderBuffer *RenderBuffer; - int ThreadID; + struct LANPR_RenderBuffer *render_buffer; + int thread_id; - struct nListItemPointer *Contour; - ListBase ContourPointers; + struct nListItemPointer *contour; + ListBase contour_pointers; - struct nListItemPointer *Intersection; - ListBase IntersectionPointers; + struct nListItemPointer *intersection; + ListBase intersection_pointers; - struct nListItemPointer *Crease; - ListBase CreasePointers; + struct nListItemPointer *crease; + ListBase crease_pointers; - struct nListItemPointer *Material; - ListBase MaterialPointers; + struct nListItemPointer *material; + ListBase material_pointers; - struct nListItemPointer *EdgeMark; - ListBase EdgeMarkPointers; + struct nListItemPointer *edge_mark; + ListBase edge_mark_pointers; } LANPR_RenderTaskInfo; typedef struct LANPR_RenderBuffer { struct LANPR_RenderBuffer *prev, *next; - //nSafeString* Name; + int w, h; + int tile_size_w, tile_size_h; + int tile_count_x, tile_count_y; + real width_per_tile, height_per_tile; + tnsMatrix44d view_projection; + tnsMatrix44d vp_inverse; - //tnsFrameBuffer*FrameBuffer; - //now we move frame buffer content here - int W, H; - int SubPixelSample;//1,2,3,4, Use Squared Value. - int TileSizeW, TileSizeH; - int TileCountX, TileCountY; - real WidthPerTile, HeightPerTile; - tnsMatrix44d ViewProjection; - tnsMatrix44d VPInverse; + int output_mode; + int output_aa_level; - nSafeString *OutputFolder; //end with a slash; - nSafeString *ImagePrefix; - nSafeString *ImageNameConnector; + struct LANPR_BoundingArea *initial_bounding_areas; + u32bit bounding_area_count; - int OutputMode; - int OutputAALevel; + ListBase vertex_buffer_pointers; + ListBase line_buffer_pointers; + ListBase triangle_buffer_pointers; + ListBase all_render_lines; - struct LANPR_BoundingArea *InitialBoundingAreas; - u32bit BoundingAreaCount; - //u32bit BaVBO; - //u32bit BaFillVBO; - - ListBase VertexBufferPointers; - ListBase LineBufferPointers; - ListBase TriangleBufferPointers; - ListBase AllRenderLines; - - ListBase IntersectingVertexBuffer; + ListBase intersecting_vertex_buffer; struct GPUBatch *DPIXIntersectionTransformBatch; struct GPUBatch *DPIXIntersectionBatch; /* use own-implemented one */ - nStaticMemoryPool RenderDataPool; + nStaticMemoryPool render_data_pool; - Material *MaterialPointers[2048]; + Material*material_pointers[2048]; //render status - int cached_for_frame; + int cached_for_frame; - real ViewVector[3]; + real view_vector[3]; - int TriangleSize; + int triangle_size; - u32bit ContourCount; - u32bit ContourProcessed; - nListItemPointer *ContourManaged; - ListBase Contours; + u32bitcontour_count; + u32bitcontour_processed; + nListItemPointer *contour_managed; + ListBase contours; - u32bit IntersectionCount; - u32bit IntersectionProcessed; - nListItemPointer *IntersectionManaged; - ListBase IntersectionLines; + u32bitintersection_count; + u32bitintersection_processed; + nListItemPointer *intersection_managed; + ListBase intersection_lines; - u32bit CreaseCount; - u32bit CreaseProcessed; - nListItemPointer
[Bf-blender-cvs] [28944549d68] soc-2019-npr: Clang format the code.
Commit: 28944549d6827ab17fa86b99944b3f3d72b0456f Author: YimingWu Date: Tue May 28 21:15:20 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB28944549d6827ab17fa86b99944b3f3d72b0456f Clang format the code. === M intern/opensubdiv/internal/opensubdiv_evaluator.cc M intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc M intern/opensubdiv/internal/opensubdiv_evaluator_internal.h M intern/opensubdiv/opensubdiv_evaluator_capi.h M release/datafiles/locale M release/scripts/addons M release/scripts/addons_contrib M source/blender/blenkernel/intern/scene.c M source/blender/blenloader/intern/readfile.c M source/blender/blenloader/intern/versioning_280.c M source/blender/blenloader/intern/writefile.c M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c M source/blender/draw/engines/lanpr/lanpr_util.c M source/blender/draw/engines/lanpr/lanpr_util.h M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl M source/blender/draw/intern/DRW_render.h M source/blender/draw/intern/draw_manager.c M source/blender/draw/intern/draw_manager_texture.c M source/blender/editors/mesh/mesh_ops.c M source/blender/editors/render/render_intern.h M source/blender/editors/render/render_ops.c M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesdna/DNA_material_types.h M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_lanpr.c M source/blender/makesrna/intern/rna_material.c M source/blender/makesrna/intern/rna_modifier.c M source/blender/makesrna/intern/rna_scene.c M source/blender/modifiers/intern/MOD_mybmesh.c M source/tools === diff --git a/intern/opensubdiv/internal/opensubdiv_evaluator.cc b/intern/opensubdiv/internal/opensubdiv_evaluator.cc index 0fe9c7567ea..c91408e8fd3 100644 --- a/intern/opensubdiv/internal/opensubdiv_evaluator.cc +++ b/intern/opensubdiv/internal/opensubdiv_evaluator.cc @@ -25,123 +25,120 @@ namespace { -void setCoarsePositions(OpenSubdiv_Evaluator* evaluator, -const float* positions, -const int start_vertex_index, const int num_vertices) { - evaluator->internal->eval_output->setCoarsePositions(positions, - start_vertex_index, - num_vertices); +void setCoarsePositions(OpenSubdiv_Evaluator *evaluator, +const float *positions, +const int start_vertex_index, +const int num_vertices) +{ + evaluator->internal->eval_output->setCoarsePositions( + positions, start_vertex_index, num_vertices); } -void setVaryingData(OpenSubdiv_Evaluator* evaluator, -const float* varying_data, -const int start_vertex_index, const int num_vertices) { - evaluator->internal->eval_output->setVaryingData(varying_data, - start_vertex_index, - num_vertices); +void setVaryingData(OpenSubdiv_Evaluator *evaluator, +const float *varying_data, +const int start_vertex_index, +const int num_vertices) +{ + evaluator->internal->eval_output->setVaryingData(varying_dat
[Bf-blender-cvs] [19d3c5f9a6b] soc-2019-npr: Continue renaming structure variables.
Commit: 19d3c5f9a6bf765c255e4e9513a8e0d86b6674cf Author: YimingWu Date: Tue May 28 21:09:32 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB19d3c5f9a6bf765c255e4e9513a8e0d86b6674cf Continue renaming structure variables. === M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index c0ffa67e3c1..e5533cce986 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -267,32 +267,32 @@ typedef struct LANPR_RenderTaskInfo { struct LANPR_RenderBuffer *render_buffer; int thread_id; - struct nListItemPointer *contour; - ListBase contour_pointers; + LinkData *contour; + ListBase contour_pointers; - struct nListItemPointer *intersection; - ListBase intersection_pointers; + LinkData *intersection; + ListBase intersection_pointers; - struct nListItemPointer *crease; - ListBase crease_pointers; + LinkData *crease; + ListBase crease_pointers; - struct nListItemPointer *material; - ListBase material_pointers; + LinkData *material; + ListBase material_pointers; - struct nListItemPointer *edge_mark; - ListBase edge_mark_pointers; + LinkData *edge_mark; + ListBase edge_mark_pointers; } LANPR_RenderTaskInfo; typedef struct LANPR_RenderBuffer { struct LANPR_RenderBuffer *prev, *next; - int w, h; - int tile_size_w, tile_size_h; - int tile_count_x, tile_count_y; - real width_per_tile, height_per_tile; - tnsMatrix44d view_projection; - tnsMatrix44d vp_inverse; + int w, h; + int tile_size_w, tile_size_h; + int tile_count_x, tile_count_y; + real width_per_tile, height_per_tile; + tnsMatrix44d view_projection; + tnsMatrix44d vp_inverse; int output_mode; int output_aa_level; @@ -300,52 +300,52 @@ typedef struct LANPR_RenderBuffer { struct LANPR_BoundingArea *initial_bounding_areas; u32bit bounding_area_count; - ListBase vertex_buffer_pointers; - ListBase line_buffer_pointers; - ListBase triangle_buffer_pointers; - ListBase all_render_lines; + ListBase vertex_buffer_pointers; + ListBase line_buffer_pointers; + ListBase triangle_buffer_pointers; + ListBase all_render_lines; - ListBase intersecting_vertex_buffer; + ListBase intersecting_vertex_buffer; - struct GPUBatch *DPIXIntersectionTransformBatch; - struct GPUBatch *DPIXIntersectionBatch; + struct GPUBatch *DPIXIntersectionTransformBatch; + struct GPUBatch *DPIXIntersectionBatch; /* use own-implemented one */ nStaticMemoryPool render_data_pool; - Material*material_pointers[2048]; + Material *material_pointers[2048]; //render status - int cached_for_frame; + int cached_for_frame; - real view_vector[3]; + real view_vector[3]; - int triangle_size; + int triangle_size; u32bitcontour_count; u32bitcontour_processed; - nListItemPointer *contour_managed; + LinkData *contour_managed; ListBase contours; u32bitintersection_count; u32bitintersection_processed; - nListItemPointer *intersection_managed; + LinkData *intersection_managed; ListBase intersection_lines; u32bitcrease_count; u32bitcrease_processed; - nListItemPointer *crease_managed; + LinkData *crease_managed; ListBase crease_lines; u32bitmaterial_line_count; u32bitmaterial_processed; - nListItemPointer *material_managed; + LinkData *material_managed; ListBase material_lines; u32bitedge_mark_count; u32bitedge_mark_processed; - nListItemPointer *edge_mark_managed; + LinkData *edge_mark_managed; ListBase edge_marks; ListBase chains; @@ -388,25 +388,25 @@ typedef struct LANPR_RenderBuffer { #define TNS_CULL_USED1 typedef struct LANPR_RenderTriangle { - nListItem Item
[Bf-blender-cvs] [902c358932e] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 902c358932e27ddb77a644a99519727d6b954665 Author: YimingWu Date: Tue Jun 4 12:15:43 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB902c358932e27ddb77a644a99519727d6b954665 Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [181e4ba1cf4] soc-2019-npr: LANPR: Fixing chaining occlusion values for GPencil to use.
Commit: 181e4ba1cf49560f2d9d94880d882a9f5d765462 Author: YimingWu Date: Tue Jun 4 13:48:40 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB181e4ba1cf49560f2d9d94880d882a9f5d765462 LANPR: Fixing chaining occlusion values for GPencil to use. === M source/blender/draw/engines/lanpr/lanpr_chain.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index a648bccb58d..953d316990a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -281,6 +281,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre N, new_rl->flags, rls->occlusion); + last_occlusion = rls->occlusion; } } else if (new_rv == new_rl->r) { @@ -318,6 +319,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre } // step 2: this line +int last_occlusion; rls = rl->segments.first; for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls; rls = (LANPR_RenderLineSegment *)rls->item.next) { @@ -326,6 +328,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre lanpr_LinearInterpolate3dv(rl->l->gloc, rl->r->gloc, rls->at, gpos); lanpr_append_render_line_chain_point( rb, rlc, lpos[0], lpos[1], gpos[0], gpos[1], gpos[2], N, rl->flags, rls->occlusion); + last_occlusion = rls->occlusion; } lanpr_append_render_line_chain_point(rb, rlc, @@ -336,7 +339,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre rl->r->gloc[2], N, rl->flags, - 0); + last_occlusion); // step 3: grow right ba = lanpr_get_point_bounding_area(rb, rl->r->fbcoord[0], rl->r->fbcoord[1]); @@ -356,16 +359,16 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre rls = new_rl->segments.last; last_occlusion = rls->occlusion; rlci->occlusion = last_occlusion; -rls = (LANPR_RenderLineSegment *)rls->item.prev; +//rls = (LANPR_RenderLineSegment *)rls->item.prev; if (rls) last_occlusion = rls->occlusion; for (rls = new_rl->segments.last; rls; rls = (LANPR_RenderLineSegment *)rls->item.prev) { double gpos[3], lpos[3]; lanpr_LinearInterpolate3dv(new_rl->l->fbcoord, new_rl->r->fbcoord, rls->at, lpos); lanpr_LinearInterpolate3dv(new_rl->l->gloc, new_rl->r->gloc, rls->at, gpos); - last_occlusion = (LANPR_RenderLineSegment *)rls->item.prev ? - ((LANPR_RenderLineSegment *)rls->item.prev)->occlusion : - 0; + last_occlusion = (LANPR_RenderLineSegment *)rls->item.next ? + ((LANPR_RenderLineSegment *)rls->item.next)->occlusion : + last_occlusion; lanpr_append_render_line_chain_point(rb, rlc, lpos[0], @@ -397,6 +400,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre N, new_rl->flags, rls->occlusion); + last_occlusion = rls->occlusion; } lanpr_append_render_line_chain_point(rb, rlc, @@ -407,7 +411,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre new_rl->r->gloc[2], N, new_rl->flags, - 100); + last_occlusion); } ba = lanpr_get_point_bounding_area(rb, new_rv->fbcoord[0], new_rv->fbcoord[1]); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [00202210caa] soc-2019-npr: Make LANPR main panel show in all engines. Fixed "up" button bug. Crease value now in software mode as well.
Commit: 00202210caac41352707ec21a6bd6b40b752830e Author: YimingWu Date: Tue Jun 4 12:47:54 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB00202210caac41352707ec21a6bd6b40b752830e Make LANPR main panel show in all engines. Fixed "up" button bug. Crease value now in software mode as well. === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 3a12b89916b..8f68a447876 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -617,44 +617,50 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): scene = context.scene lanpr = scene.lanpr active_layer = lanpr.layers.active_layer + +# make LANPR main panel now visible under all engines. +# composition method yet to be deteremined. -sc = lanpr_get_composition_scene(scene) - -if sc is not None: -layout.label(text = 'You are adjusting values for LANPR compostion scene.') -row = layout.row() -row.scale_y=1.5 -row.operator("lanpr.goto_composition_scene") -layout.operator("lanpr.remove_composition_scene") -scene = sc -lanpr = scene.lanpr -active_layer = lanpr.layers.active_layer -return -elif scene.render.engine!='BLENDER_LANPR': -layout.label(text = 'Select LANPR engine or use composition scene.') -layout.operator("lanpr.make_composition_scene") -return - -if lanpr_is_composition_scene(scene): -row = layout.row() -row.scale_y=1.5 -row.operator("lanpr.goto_original_scene") - -layout.label(text='LANPR Composition') -row = layout.row() -row.scale_y=1.5 -row.scale_x=4 -row.operator("lanpr.render_composited", icon = 'RENDER_STILL') -row.scale_x=1 -row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') +#sc = lanpr_get_composition_scene(scene) -layout.label(text='Mode:') +#if sc is not None: +#layout.label(text = 'You are adjusting values for LANPR compostion scene.') +#row = layout.row() +#row.scale_y=1.5 +#row.operator("lanpr.goto_composition_scene") +#layout.operator("lanpr.remove_composition_scene") +#scene = sc +#lanpr = scene.lanpr +#active_layer = lanpr.layers.active_layer +#return +#elif scene.render.engine!='BLENDER_LANPR': +#layout.label(text = 'Select LANPR engine or use composition scene.') +#layout.operator("lanpr.make_composition_scene") +#return + +#if lanpr_is_composition_scene(scene): +# row = layout.row() +#row.scale_y=1.5 +#row.operator("lanpr.goto_original_scene") +# +#layout.label(text='LANPR Composition') +#row = layout.row() +#row.scale_y=1.5 +#row.scale_x=4 +#row.operator("lanpr.render_composited", icon = 'RENDER_STILL') +#row.scale_x=1 +#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') -layout.prop(lanpr, "master_mode", expand=True) +if scene.render.engine!='BLENDER_LANPR': +layout.label(text='Mode:') +layout.prop(lanpr, "master_mode", expand=True) +else: +layout.label(text='Only Software mode result is used to generate GP stroke.') if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": layout.prop(lanpr, "background_color") +layout.prop(lanpr, "crease_threshold") if lanpr.master_mode == "SOFTWARE": layout.label(text="Enable On Demand:") diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index da96096d54a..a89aff7438e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4237,7 +4237,7 @@ void SCENE_OT_lanpr_auto_create_line_layer(struct wmOperatorType *ot) void SCENE_OT_lanpr_move_line_layer(struct wmOperatorType *ot) { static const EnumPropertyItem line_layer_move[] = { - {1, "up", 0, "Up
[Bf-blender-cvs] [f23223ee262] soc-2019-npr: LANPR: Fixed last point occlusion error on "this line" chaining.
Commit: f23223ee2624654a904134c93db8c08149c3faa9 Author: YimingWu Date: Tue Jun 4 14:48:05 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf23223ee2624654a904134c93db8c08149c3faa9 LANPR: Fixed last point occlusion error on "this line" chaining. === M source/blender/draw/engines/lanpr/lanpr_chain.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 953d316990a..5270af22c5f 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -319,8 +319,8 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre } // step 2: this line -int last_occlusion; rls = rl->segments.first; +int last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion; for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls; rls = (LANPR_RenderLineSegment *)rls->item.next) { double gpos[3], lpos[3]; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [cbc0c4846b5] soc-2019-npr: LANPR: Split chains based on occlusion value changes.
Commit: cbc0c4846b5f642e7f26b2f175c60481f31bb590 Author: YimingWu Date: Tue Jun 4 16:24:40 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBcbc0c4846b5f642e7f26b2f175c60481f31bb590 LANPR: Split chains based on occlusion value changes. === M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 5270af22c5f..5f1b1fd0920 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -203,6 +203,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre LANPR_BoundingArea *ba; LANPR_RenderLineSegment *rls; real *inv = rb->vp_inverse; + int last_occlusion; for (rl = rb->all_render_lines.first; rl; rl = (LANPR_RenderLine *)rl->item.next) { @@ -249,8 +250,6 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, _rv))) { new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; - int last_occlusion; - N[0] = N[1] = N[2] = 0; if (new_rl->tl) { N[0] += new_rl->tl->gn[0]; @@ -320,7 +319,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre // step 2: this line rls = rl->segments.first; -int last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion; +last_occlusion = ((LANPR_RenderLineSegment *)rls)->occlusion; for (rls = (LANPR_RenderLineSegment *)rls->item.next; rls; rls = (LANPR_RenderLineSegment *)rls->item.next) { double gpos[3], lpos[3]; @@ -349,8 +348,6 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, _rv))) { new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; - int last_occlusion; - // fix leading vertex type rlci = rlc->chain.last; rlci->line_type = new_rl->flags & LANPR_EDGE_FLAG_ALL_TYPE; @@ -428,6 +425,39 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre } } +void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){ + LANPR_RenderLineChain *rlc,*new_rlc; + LANPR_RenderLineChainItem *rlci,*next_rlci; + ListBase swap={0}; + + while (rlc = BLI_pophead(>chains)){ +rlc->item.next=rlc->item.prev=NULL; +BLI_addtail(,rlc); + } + + while (rlc = BLI_pophead()){ +rlc->item.next=rlc->item.prev=NULL; +BLI_addtail(>chains,rlc); +LANPR_RenderLineChainItem* first_rlci = (LANPR_RenderLineChainItem*)rlc->chain.first; +int fixed_occ = first_rlci->occlusion; +for(rlci = (LANPR_RenderLineChainItem*)first_rlci->item.next;rlci;rlci = next_rlci){ + next_rlci = (LANPR_RenderLineChainItem*)rlci->item.next; + if(rlci->occlusion != fixed_occ){ +new_rlc = lanpr_create_render_line_chain(rb); +new_rlc->chain.first = rlci; +new_rlc->chain.last = rlc->chain.last; +rlc->chain.last=rlci->item.prev; +((LANPR_RenderLineChainItem*)rlc->chain.last)->item.next=0; +rlci->item.prev=0; +rlc=new_rlc; +fixed_occ = rlci->occlusion; + } +} + } + + +} + int lanpr_count_chain(LANPR_RenderLineChain *rlc) { LANPR_RenderLineChainItem *rlci; diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index a89aff7438e..c64f3bd4a4e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3713,6 +3713,7 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList *txl, } void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_threshold); +void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb); void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float *normal_object_direction) { @@ -3959,6 +3960,7 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr if (lanpr->enable_chaining) { lanpr_NO_THREAD_chain_feature_lines(rb, 0.1); // should use user_adjustable value +lanpr_split_chains_for_fixed_occlusion(rb); } rb->cached_for_frame = scene->r.cfra; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [7f1a9480fc1] soc-2019-npr: LANPR: Fixed last segment missing error on chain splitting.
Commit: 7f1a9480fc16d4895858f7acdd89bf66e3d97e05 Author: YimingWu Date: Tue Jun 4 16:41:12 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB7f1a9480fc16d4895858f7acdd89bf66e3d97e05 LANPR: Fixed last segment missing error on chain splitting. === M source/blender/draw/engines/lanpr/lanpr_chain.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 5f1b1fd0920..a9e2d7f3edc 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -430,10 +430,10 @@ void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){ LANPR_RenderLineChainItem *rlci,*next_rlci; ListBase swap={0}; - while (rlc = BLI_pophead(>chains)){ -rlc->item.next=rlc->item.prev=NULL; -BLI_addtail(,rlc); - } + swap.first = rb->chains.first; + swap.last = rb->chains.last; + + rb->chains.last = rb->chains.first = NULL; while (rlc = BLI_pophead()){ rlc->item.next=rlc->item.prev=NULL; @@ -449,6 +449,12 @@ void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb){ rlc->chain.last=rlci->item.prev; ((LANPR_RenderLineChainItem*)rlc->chain.last)->item.next=0; rlci->item.prev=0; + +//end the previous one +lanpr_append_render_line_chain_point(rb,rlc,rlci->pos[0],rlci->pos[1], +rlci->gpos[0],rlci->gpos[1],rlci->gpos[2], +rlci->normal,rlci->line_type,fixed_occ); + rlc=new_rlc; fixed_occ = rlci->occlusion; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [a4287db20db] soc-2019-npr: LANPR: Fix smooth contour modifier merge errors.
Commit: a4287db20db995aae22e02fb6e9702e0697c72d6 Author: YimingWu Date: Tue Jun 18 16:22:27 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBa4287db20db995aae22e02fb6e9702e0697c72d6 LANPR: Fix smooth contour modifier merge errors. === M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesrna/intern/rna_gpencil_modifier.c M source/blender/modifiers/intern/MOD_mybmesh.c === diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c index 6a170f3bf3a..75707792f53 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c @@ -68,24 +68,16 @@ #include "MOD_gpencil_util.h" #include "MOD_gpencil_modifiertypes.h" -<<<<<<< HEAD #include "lanpr_access.h" static void initData(GpencilModifierData *md) { StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; gpmd->object = NULL; -=== -static void initData(GpencilModifierData *md) -{ - StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; - gpmd->object = NULL; ->>>>>>> DarkdefenderRepo/npr_tess } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) { -<<<<<<< HEAD BKE_gpencil_modifier_copyData_generic(md, target); } @@ -109,193 +101,19 @@ static void bakeModifier(Main *UNUSED(bmain), deformStroke(md, depsgraph, ob, gpl, gpf); } } -=== - BKE_gpencil_modifier_copyData_generic(md, target); -} - -static void generate_geometry( -GpencilModifierData *md, Depsgraph *UNUSED(depsgraph), -Object *ob, bGPDlayer *gpl, bGPDframe *gpf) -{ - StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; - - if( gpmd->object == NULL ){ - printf("NULL object!\n"); - return; - } - - int color_idx = 0; - int tot_points = 0; - short thickness = 1; - - float mat[4][4]; - - unit_m4(mat); - - BMesh *bm; - - bm = BKE_mesh_to_bmesh_ex( - gpmd->object->data, - &(struct BMeshCreateParams){0}, - &(struct BMeshFromMeshParams){ - .calc_face_normal = true, - .cd_mask_extra = CD_MASK_ORIGINDEX, - }); - - BMVert *vert; - BMIter iter; - - BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) { - -//Have we already used this vert? - if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){ - continue; - } - - BMVert *prepend_vert = NULL; - BMVert *next_vert = vert; - //Chain together the C verts and export them as GP strokes (chain in object space) - BMVert *edge_vert; - BMEdge *e; - BMIter iter_e; - - LinkNodePair chain = {NULL, NULL}; - - int connected_c_verts; - - while( next_vert != NULL ){ - - connected_c_verts = 0; - vert = next_vert; - - BLI_linklist_append(, vert); - - BM_elem_flag_disable(vert, BM_ELEM_SELECT); - - BM_ITER_ELEM (e, _e, vert, BM_EDGES_OF_VERT) { - edge_vert = BM_edge_other_vert(e, vert); - - if(BM_elem_flag_test(edge_vert, BM_ELEM_SELECT)){ - if( connected_c_verts == 0 ){ - next_vert = edge_vert; - } else if( connected_c_verts == 1 && prepend_vert == NULL ){ - prepend_vert = edge_vert; - } else { - printf("C verts not connected in a simple line!\n"); - } - connected_c_verts++; - } - - } - - if( connected_c_verts == 0 ){ - next_vert = NULL; - } - - } - - LinkNode *pre_list = chain.list; - - while( prepend_vert != NULL ) { - - connected_c_verts = 0; -vert = prepend_vert; - - BLI_linklist_prepend(_list, vert); - - BM_elem_flag_disable(vert, BM_ELEM_SELECT); - - BM_ITER_ELEM (e, _e, vert, BM_
[Bf-blender-cvs] [1fb871e8047] soc-2019-npr: Merge remote-tracking branch 'DarkdefenderRepo/npr_tess' into soc-2019-npr
Commit: 1fb871e8047eed56d8281933639e20384c8a01be Author: YimingWu Date: Tue Jun 18 16:09:44 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB1fb871e8047eed56d8281933639e20384c8a01be Merge remote-tracking branch 'DarkdefenderRepo/npr_tess' into soc-2019-npr === === diff --cc source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c index 75707792f53,def17ac2fcd..6a170f3bf3a --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c @@@ -68,91 -68,230 +68,315 @@@ #include "MOD_gpencil_util.h" #include "MOD_gpencil_modifiertypes.h" ++<<<<<<< HEAD +#include "lanpr_access.h" + +static void initData(GpencilModifierData *md) +{ + StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; + gpmd->object = NULL; ++=== + static void initData(GpencilModifierData *md) + { + StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; + gpmd->object = NULL; ++>>>>>>> DarkdefenderRepo/npr_tess } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) { ++<<<<<<< HEAD + BKE_gpencil_modifier_copyData_generic(md, target); +} + +static void deformStroke( +GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) +{ + lanpr_update_data_for_external(depsgraph); + lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf); +} + +static void bakeModifier(Main *UNUSED(bmain), + Depsgraph *depsgraph, + GpencilModifierData *md, + Object *ob) +{ + + bGPdata *gpd = ob->data; + + for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { +for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { + deformStroke(md, depsgraph, ob, gpl, gpf); +} + } ++=== + BKE_gpencil_modifier_copyData_generic(md, target); + } + + static void generate_geometry( + GpencilModifierData *md, Depsgraph *UNUSED(depsgraph), + Object *ob, bGPDlayer *gpl, bGPDframe *gpf) + { + StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; + + if( gpmd->object == NULL ){ + printf("NULL object!\n"); + return; + } + + int color_idx = 0; + int tot_points = 0; + short thickness = 1; + + float mat[4][4]; + + unit_m4(mat); + + BMesh *bm; + + bm = BKE_mesh_to_bmesh_ex( + gpmd->object->data, + &(struct BMeshCreateParams){0}, + &(struct BMeshFromMeshParams){ + .calc_face_normal = true, + .cd_mask_extra = CD_MASK_ORIGINDEX, + }); + + BMVert *vert; + BMIter iter; + + BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) { + + //Have we already used this vert? + if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){ + continue; + } + + BMVert *prepend_vert = NULL; + BMVert *next_vert = vert; + //Chain together the C verts and export them as GP strokes (chain in object space) + BMVert *edge_vert; + BMEdge *e; + BMIter iter_e; + + LinkNodePair chain = {NULL, NULL}; + + int connected_c_verts; + + while( next_vert != NULL ){ + + connected_c_verts = 0; + vert = next_vert; + + BLI_linklist_append(, vert); + + BM_elem_flag_disable(vert, BM_ELEM_SELECT); + + BM_ITER_ELEM (e, _e, vert, BM_EDGES_OF_VERT) { + edge_vert = BM_edge_other_vert(e, vert); + + if(BM_elem_flag_test(edge_vert, BM_ELEM_SELECT)){ + if( connected_c_verts == 0 ){ + next_vert = edge_vert; + } else if( connected_c_verts == 1 && prepend_vert == NULL ){ + prepend_vert = edge_vert; + } else { + printf("C verts not connected in a simple line!\n"); + } + connected_c_verts++; + } + + } + + if( connected_c_verts == 0 ){ + next_vert = NULL; + } + + } + + LinkNode *pre_list = chain.list; + + while
[Bf-blender-cvs] [30b2db0be71] soc-2019-npr: LANPR: Add enable and auto update switches
Commit: 30b2db0be71ccc2bf32e89abf0f66ce2bad23952 Author: YimingWu Date: Tue Jun 18 15:00:28 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB30b2db0be71ccc2bf32e89abf0f66ce2bad23952 LANPR: Add enable and auto update switches === M release/scripts/startup/bl_ui/properties_render.py M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 5724e724289..6fa0d011c79 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -702,15 +702,6 @@ class LANPR_linesets(UIList): layout.alignment = 'CENTER' layout.label("", icon_value=icon) -def lanpr_get_composition_scene(scene): -n = scene.name+'_lanpr_comp' -for s in bpy.data.scenes: -if s.name == n: return s -return None - -def lanpr_is_composition_scene(scene): -return scene.name.endswith('_lanpr_comp') - class RENDER_PT_lanpr(RenderButtonsPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} bl_label = "LANPR" @@ -720,84 +711,60 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): def poll(cls, context): return True +def draw_header(self, context): +self.layout.prop(context.scene.lanpr, "enabled", text="") + def draw(self, context): layout = self.layout scene = context.scene lanpr = scene.lanpr active_layer = lanpr.layers.active_layer +mode = lanpr.master_mode + -# make LANPR main panel now visible under all engines. -# composition method yet to be deteremined. - -#sc = lanpr_get_composition_scene(scene) - -#if sc is not None: -#layout.label(text = 'You are adjusting values for LANPR compostion scene.') -#row = layout.row() -#row.scale_y=1.5 -#row.operator("lanpr.goto_composition_scene") -#layout.operator("lanpr.remove_composition_scene") -#scene = sc -#lanpr = scene.lanpr -#active_layer = lanpr.layers.active_layer -#return -#elif scene.render.engine!='BLENDER_LANPR': -#layout.label(text = 'Select LANPR engine or use composition scene.') -#layout.operator("lanpr.make_composition_scene") -#return - -#if lanpr_is_composition_scene(scene): -# row = layout.row() -#row.scale_y=1.5 -#row.operator("lanpr.goto_original_scene") -# -#layout.label(text='LANPR Composition') -#row = layout.row() -#row.scale_y=1.5 -#row.scale_x=4 -#row.operator("lanpr.render_composited", icon = 'RENDER_STILL') -#row.scale_x=1 -#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') if scene.render.engine!='BLENDER_LANPR': -layout.label(text='Mode:') layout.prop(lanpr, "master_mode", expand=True) else: layout.label(text='Only Software mode result is used to generate GP stroke.') -if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": +if mode == "SOFTWARE": +row=layout.row(align=True) +row.prop(lanpr,'auto_update',toggle=True,text='Auto') +if not lanpr.auto_update: +row.operator("scene.lanpr_calculate", icon='RENDER_STILL', text='Update') + +if mode == "DPIX" or mode == "SOFTWARE": layout.prop(lanpr, "background_color") layout.prop(lanpr, "crease_threshold") if lanpr.master_mode == "SOFTWARE": -layout.label(text="Enable On Demand:") row = layout.row() row.prop(lanpr,"enable_intersections", text = "Intersection Lines") -row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)") -layout.label(text="RUN:") -layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') - -split = layout.split(factor=0.7) +row.prop(lanpr,"enable_chaining", text = "Chaining") + +split = layout.split(factor=0.4) col = split.column() -col.label(text="Layer Composition:") +
[Bf-blender-cvs] [013c6d6c382] soc-2019-npr: LANPR:Added option to use the same style for different line types
Commit: 013c6d6c38226176d095111449c9970a05003c20 Author: YimingWu Date: Tue Jun 18 15:53:21 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB013c6d6c38226176d095111449c9970a05003c20 LANPR:Added option to use the same style for different line types === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 6fa0d011c79..ad8b4b0743b 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -780,7 +780,7 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): -bl_label = "Types" +bl_label = "Styles" bl_parent_id = "RENDER_PT_lanpr" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} @@ -798,40 +798,52 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): active_layer = lanpr.layers.active_layer if active_layer and lanpr.master_mode == "DPIX": active_layer = lanpr.layers[0] - -layout.operator("scene.lanpr_enable_all_line_types") - -split = layout.split(factor=0.3) -col = split.column() -col.prop(active_layer, "enable_contour", text="Contour", toggle=True) -col.prop(active_layer, "enable_crease", text="Crease", toggle=True) -col.prop(active_layer, "enable_edge_mark", text="Mark", toggle=True) -col.prop(active_layer, "enable_material_seperate", text="Material", toggle=True) -col.prop(active_layer, "enable_intersection", text="Intersection", toggle=True) -col = split.column() -row = col.row(align = True) -#row.enabled = active_layer.enable_contour this is always enabled now -row.prop(active_layer, "color", text="") -row.prop(active_layer, "thickness", text="") -row = col.row(align = True) -row.enabled = active_layer.enable_crease -row.prop(active_layer, "crease_color", text="") -row.prop(active_layer, "thickness_crease", text="") -row = col.row(align = True) -row.enabled = active_layer.enable_edge_mark -row.prop(active_layer, "edge_mark_color", text="") -row.prop(active_layer, "thickness_edge_mark", text="") -row = col.row(align = True) -row.enabled = active_layer.enable_material_seperate -row.prop(active_layer, "material_color", text="") -row.prop(active_layer, "thickness_material", text="") -row = col.row(align = True) -if lanpr.enable_intersections: -row.enabled = active_layer.enable_intersection -row.prop(active_layer, "intersection_color", text="") -row.prop(active_layer, "thickness_intersection", text="") + +row = layout.row(align=True) +row.prop(active_layer,"use_same_style") +if active_layer.use_same_style: +row = layout.row(align=True) +row.prop(active_layer, "color", text="") +row.prop(active_layer, "thickness", text="") +row = layout.row(align=True) +row.prop(active_layer, "enable_contour", text="Contour", toggle=True) +row.prop(active_layer, "enable_crease", text="Crease", toggle=True) +row.prop(active_layer, "enable_edge_mark", text="Mark", toggle=True) +row.prop(active_layer, "enable_material_seperate", text="Material", toggle=True) +row.prop(active_layer, "enable_intersection", text="Intersection", toggle=True) else: -row.label(text= "Intersection Calculation Disabled") +layout.operator("scene.lanpr_enable_all_line_types",text='Set All') +split = layout.split(factor=0.3) +col = split.column() +col.prop(active_layer, "enable_contour", text="Contour", toggle=True) +col.prop(active_layer, "enable_crease", text="Crease", toggle=True) +col.prop(active_layer, "enable_edge_mark", text="
[Bf-blender-cvs] [13cff0d5241] soc-2019-npr: LANPR: Move main panel to render tab
Commit: 13cff0d524164b19aa98fa3cdbd477153f9ecf1e Author: YimingWu Date: Tue Jun 18 13:36:49 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB13cff0d524164b19aa98fa3cdbd477153f9ecf1e LANPR: Move main panel to render tab === M release/scripts/startup/bl_ui/properties_render.py M release/scripts/startup/bl_ui/properties_scene.py === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 8734989a56f..5724e724289 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -18,12 +18,15 @@ # # END GPL LICENSE BLOCK # # -from bpy.types import Panel from bl_ui.space_view3d import ( VIEW3D_PT_shading_lighting, VIEW3D_PT_shading_color, VIEW3D_PT_shading_options, ) +from bpy.types import ( +Panel, +UIList, +) class RenderButtonsPanel: @@ -686,6 +689,378 @@ class RENDER_PT_simplify_greasepencil(RenderButtonsPanel, Panel): sub.prop(rd, "simplify_gpencil_remove_lines", text="Lines") +class LANPR_linesets(UIList): +def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): +lineset = item +if self.layout_type in {'DEFAULT', 'COMPACT'}: +split = layout.split(factor=0.6) +split.label(text="Layer") +row = split.row(align=True) +row.prop(lineset, "color", text="", icon_value=icon) +row.prop(lineset, "thickness", text="", icon_value=icon) +elif self.layout_type == 'GRID': +layout.alignment = 'CENTER' +layout.label("", icon_value=icon) + +def lanpr_get_composition_scene(scene): +n = scene.name+'_lanpr_comp' +for s in bpy.data.scenes: +if s.name == n: return s +return None + +def lanpr_is_composition_scene(scene): +return scene.name.endswith('_lanpr_comp') + +class RENDER_PT_lanpr(RenderButtonsPanel, Panel): +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} +bl_label = "LANPR" +bl_options = {'DEFAULT_CLOSED'} + +@classmethod +def poll(cls, context): +return True + +def draw(self, context): +layout = self.layout +scene = context.scene +lanpr = scene.lanpr +active_layer = lanpr.layers.active_layer + +# make LANPR main panel now visible under all engines. +# composition method yet to be deteremined. + +#sc = lanpr_get_composition_scene(scene) + +#if sc is not None: +#layout.label(text = 'You are adjusting values for LANPR compostion scene.') +#row = layout.row() +#row.scale_y=1.5 +#row.operator("lanpr.goto_composition_scene") +#layout.operator("lanpr.remove_composition_scene") +#scene = sc +#lanpr = scene.lanpr +#active_layer = lanpr.layers.active_layer +#return +#elif scene.render.engine!='BLENDER_LANPR': +#layout.label(text = 'Select LANPR engine or use composition scene.') +#layout.operator("lanpr.make_composition_scene") +#return + +#if lanpr_is_composition_scene(scene): +# row = layout.row() +#row.scale_y=1.5 +#row.operator("lanpr.goto_original_scene") +# +#layout.label(text='LANPR Composition') +#row = layout.row() +#row.scale_y=1.5 +#row.scale_x=4 +#row.operator("lanpr.render_composited", icon = 'RENDER_STILL') +#row.scale_x=1 +#row.prop(lanpr,"composite_render_animation", toggle=True, icon = 'RENDER_ANIMATION') + +if scene.render.engine!='BLENDER_LANPR': +layout.label(text='Mode:') +layout.prop(lanpr, "master_mode", expand=True) +else: +layout.label(text='Only Software mode result is used to generate GP stroke.') + +if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": + +layout.prop(lanpr, "background_color") +layout.prop(lanpr, "crease_threshold") + +if lanpr.master_mode == "SOFTWARE": +layout.label(text="Enable On Demand:") +row = layout.row() +row.prop(lanpr,"enable_intersections", text = "Intersection Lines") +row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)") +layout.label(text="
[Bf-blender-cvs] [185d319ea36] soc-2019-npr: LANPR: Comment changed into C style.
Commit: 185d319ea36ead4cd0bf75f3878feb71252a2803 Author: YimingWu Date: Tue Jun 25 12:39:39 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB185d319ea36ead4cd0bf75f3878feb71252a2803 LANPR: Comment changed into C style. === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_util.c M source/blender/draw/engines/lanpr/lanpr_util.h M source/blender/makesrna/intern/rna_lanpr.c M source/blender/makesrna/intern/rna_scene.c M source/blender/modifiers/intern/MOD_featureline.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index d1873e77b11..74dc6e9938d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -29,7 +29,7 @@ extern LANPR_SharedResource lanpr_share; static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, const float new_pos[3]) { - // Split edge one time and move the created vert to new_pos + /* Split edge one time and move the created vert to new_pos */ BMVert *vert; vert = bmesh_kernel_split_edge_make_vert(bm, edge->v1, edge, NULL); @@ -60,7 +60,7 @@ void lanpr_generate_gpencil_from_chain( unit_m4(mat); - // Split countour lines at occlution points and deselect occluded segment + /* Split countour lines at occlution points and deselect occluded segment */ LANPR_RenderLine *rl; LANPR_RenderLineSegment *rls, *irls; @@ -69,7 +69,7 @@ void lanpr_generate_gpencil_from_chain( for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain *)rlc->item.next) { if (!rlc->object_ref) - continue; // XXX: intersection lines are lost + continue; /* XXX: intersection lines are lost */ if (rlc->level>qi_end || rlc->levelchain.first; rlci; rlci = (LANPR_RenderLineChainItem *)rlci->item.next) { - float opatity = 1.0f; //rlci->occlusion ? 0.0f : 1.0f; + float opatity = 1.0f; /* rlci->occlusion ? 0.0f : 1.0f; */ stroke_data[array_idx] = rlci->gpos[0]; stroke_data[array_idx + 1] = rlci->gpos[1]; stroke_data[array_idx + 2] = rlci->gpos[2]; - stroke_data[array_idx + 3] = 1; // thickness - stroke_data[array_idx + 4] = opatity; // hardness? + stroke_data[array_idx + 3] = 1; /* thickness */ + stroke_data[array_idx + 4] = opatity; /* hardness? */ array_idx += 5; } @@ -132,7 +132,7 @@ void lanpr_copy_data(Scene *from, Scene *to) } } - // render_buffer now only accessible from lanpr_share + /* render_buffer now only accessible from lanpr_share */ } void lanpr_free_everything(Scene *s) diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 271f9227391..f772f310ced 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -30,7 +30,7 @@ #include "lanpr_data_types.h" #include "BLI_mempool.h" #include "BLI_utildefines.h" -//#include "GPU_framebuffer.h" +/* #include "GPU_framebuffer.h" */ #include "GPU_batch.h" #include "GPU_framebuffer.h" #include "GPU_shader.h" @@ -104,9 +104,9 @@ typedef struct LANPR_SharedResource { int init_complete; SpinLock render_flag_lock; - int during_render; // get/set using access funcion which uses render_flag_lock to lock. - // this prevents duplicate too much resource. (no render preview in viewport - // while rendering) + int during_render; /* get/set using access funcion which uses render_flag_lock to lock. */ + /* this prevents duplicate too much resource. (no render preview in viewport */ + /* while rendering) */ } LANPR_SharedResource; @@ -181,7 +181,7 @@ typedef struct LANPR_PrivateData { DRWShadingGroup *debug_shgrp; - // snake + /* snake */ float normal_clamp; float normal_strength; @@ -191,18 +191,18 @@ typedef struct LANPR_PrivateData { float zfar; float znear; - int stage; // thinning + int stage; /* thinning */ float *line_result; unsigned char *line_result_8bit; - int width, height; // if not match recreate buffer. + int width, height; /* if not match recreate buffer. */ void **sample_table; ListBase pending_samples; ListBase erased_samples;
[Bf-blender-cvs] [419837b6806] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 419837b6806f87adbc0bfc9420fdce5cef70f325 Author: YimingWu Date: Tue Jun 25 12:15:12 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB419837b6806f87adbc0bfc9420fdce5cef70f325 Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [abecf82b6e6] soc-2019-npr: GPENCIL: removed weights sample. Needs new implementaion.
Commit: abecf82b6e66e1d657baa9c3e74a7cd3dfe35879 Author: YimingWu Date: Tue Jun 25 14:04:41 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBabecf82b6e66e1d657baa9c3e74a7cd3dfe35879 GPENCIL: removed weights sample. Needs new implementaion. === M source/blender/blenkernel/intern/gpencil.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index abcac0c8360..30f0f80fb7e 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1440,6 +1440,8 @@ MDeformVert *stroke_defvert_new_count(int totweight, int count) return dst; } +/* Can't interpolate because not every vert has the same amount of groups attached to it. */ +/* Future solution: add all groups to every vert and set weight to 0 for those are not in. */ static int stroke_march_next_point(bGPDstroke *gps, int next_point_index, float *current, @@ -1482,11 +1484,11 @@ static int stroke_march_next_point(bGPDstroke *gps, copy_v3_v3(result, >x); *pressure = gps->points[next_point_index].pressure; *strength = gps->points[next_point_index].strength; -if (weights) { +/* if (weights) { for (int j = 0; j < gps->dvert->totweight; j++) { weights[j] = gps->dvert[next_point_index].dw[j].weight; } -} +} */ return 0; } @@ -1497,13 +1499,13 @@ static int stroke_march_next_point(bGPDstroke *gps, gps->points[next_point_index - 1].pressure, gps->points[next_point_index].pressure, ratio); *strength = interpf( gps->points[next_point_index - 1].strength, gps->points[next_point_index].strength, ratio); -if (weights) { +/* if (weights) { for (int j = 0; j < gps->dvert->totweight; j++) { weights[j] = interpf(gps->dvert[next_point_index - 1].dw[j].weight, gps->dvert[next_point_index].dw[j].weight, ratio); } -} +} */ return next_point_index; } @@ -1538,21 +1540,21 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) length += len_v3v3(last_coord, this_coord); } - int count = (int)(length / dist) + 2; // preserve some extra in case + int count = (int)(length / dist) + 1; bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points_sampled"); MDeformVert *new_dv = NULL; if (gps->dvert != NULL) { new_dv = stroke_defvert_new_count(gps->dvert->totweight, count); -new_dv->totweight = gps->dvert->totweight; -new_dv->flag = gps->dvert->flag; +/* new_dv->totweight = gps->dvert->totweight; */ +/* new_dv->flag = gps->dvert->flag; */ } int next_point_index = 1; i = 0; float pressure, strength, *weights = NULL; if (new_dv) -weights = MEM_callocN(sizeof(float) * gps->dvert->totweight, +weights = MEM_callocN(sizeof(float) * count, "gp_stroke_point_weights_sampled"); // 1st point is always at the start @@ -1562,12 +1564,14 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) copy_v3_v3(>x, last_coord); new_pt[i].pressure = pt[0].pressure; new_pt[i].strength = pt[0].strength; + i++; + /* if (new_dv) { for (int j = 0; j < new_dv->totweight; j++) { new_dv[i].dw[j].weight = gps->dvert->dw[j].weight; } } - i++; + */ // the rest while ( @@ -1578,19 +1582,21 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) copy_v3_v3(>x, last_coord); new_pt[i].pressure = pressure; new_pt[i].strength = strength; +/* if (new_dv) { for (int j = 0; j < new_dv->totweight; j++) { new_dv[i].dw[j].weight = weights[j]; } } +*/ i++; if (next_point_index == 0) - break; // last point finished + break; /* last point finished */ } gps->points = new_pt; gps->totpoints = i; - MEM_freeN(pt); // original + MEM_freeN(pt); /* original */ if (new_dv) { BKE_gpencil_free_stroke_weights(gps); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ce485104627] soc-2019-npr: LANPR: Added collection tab and put collection specific LANPR settings in it.
Commit: ce485104627fe7be5ffd2df75107eaf14d90cda4 Author: YimingWu Date: Tue Jun 25 16:18:58 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBce485104627fe7be5ffd2df75107eaf14d90cda4 LANPR: Added collection tab and put collection specific LANPR settings in it. === M release/scripts/startup/bl_ui/__init__.py A release/scripts/startup/bl_ui/properties_collection.py M release/scripts/startup/bl_ui/properties_view_layer.py M source/blender/editors/space_buttons/buttons_context.c M source/blender/editors/space_buttons/space_buttons.c M source/blender/makesdna/DNA_space_types.h M source/blender/makesrna/intern/rna_space.c === diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py index 44229b2afdf..b11a6bfcc8f 100644 --- a/release/scripts/startup/bl_ui/__init__.py +++ b/release/scripts/startup/bl_ui/__init__.py @@ -65,6 +65,7 @@ _modules = [ "properties_scene", "properties_texture", "properties_world", +"properties_collection", # Generic Space Modules # diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py new file mode 100644 index 000..73e2ef43bea --- /dev/null +++ b/release/scripts/startup/bl_ui/properties_collection.py @@ -0,0 +1,82 @@ +# # BEGIN GPL LICENSE BLOCK # +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# # END GPL LICENSE BLOCK # + +# +from bpy.types import Panel +from bpy import data + + +class CollectionButtonsPanel: +bl_space_type = 'PROPERTIES' +bl_region_type = 'WINDOW' +bl_context = "collection" +# COMPAT_ENGINES must be defined in each subclass, external engines can add themselves here + +@classmethod +def poll(cls, context): +return (context.engine in cls.COMPAT_ENGINES) + +class COLLECTION_PT_collection_flags(CollectionButtonsPanel, Panel): +bl_label = "Collection Flags" + +def draw(self, context): +layout=self.layout +collection=context.collection +vl = context.view_layer +vlc = vl.active_layer_collection +if vlc.name == 'Master Collection': +row = layout.row() +row.label(text="This is the master collection") +return + +row = layout.row() +col = row.column(align=True) +col.prop(vlc,"hide_viewport") +col.prop(vlc,"holdout") +col.prop(vlc,"indirect_only") +row = layout.row() +col = row.column(align=True) +col.prop(collection,"hide_select") +col.prop(collection,"hide_viewport") +col.prop(collection,"hide_render") + + +class COLLECTION_PT_lanpr_collection(CollectionButtonsPanel, Panel): +bl_label = "Collection LANPR" + +@classmethod +def poll(cls, context): +return context.scene.lanpr.enabled + +def draw(self,context): +layout = self.layout +collection = context.collection +row = layout.row() +row.prop(collection.lanpr,"usage",expand=True) +if collection.lanpr.usage!='INCLUDE': +layout.prop(collection.lanpr,"force") + +classes = ( +COLLECTION_PT_collection_flags, +COLLECTION_PT_lanpr_collection, +) + +if __name__ == "__main__": # only for live edit. +from bpy.utils import register_class +for cls in classes: +register_class(cls) diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py index 2ebe55c65d5..0fb85501235 100644 --- a/release/scripts/startup/bl_ui/properties_view_layer.py +++ b/release/scripts/startup/bl_ui/properties_view_layer.py @@ -82,25 +82,9 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel): col = flow.column() col.prop(view_layer, "use_pass_subsurface_color", text="Subsurface Color") -class VIEWLAYER_PT_lanpr_collecti
[Bf-blender-cvs] [d6eeb656eaf] soc-2019-npr: LANPR: all the if() statements now use {} brackets.
Commit: d6eeb656eaf9a2db53a460b2c00353058ef3ba57 Author: YimingWu Date: Tue Jun 25 17:43:01 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBd6eeb656eaf9a2db53a460b2c00353058ef3ba57 LANPR: all the if() statements now use {} brackets. === M source/blender/blenkernel/intern/gpencil.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c M source/blender/draw/engines/lanpr/lanpr_util.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 8e544703f84..28e16455727 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1457,8 +1457,9 @@ static int stroke_march_next_point(bGPDstroke *gps, float point[3]; bGPDspoint *pt = NULL; - if (!(next_point_index < gps->totpoints)) + if (!(next_point_index < gps->totpoints)) { return -1; + } copy_v3_v3(step_start, current); pt = >points[next_point_index]; @@ -1523,8 +1524,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) bGPDspoint *pt2 = NULL; int i; - if (gps->totpoints < 2 || dist < FLT_EPSILON) + if (gps->totpoints < 2 || dist < FLT_EPSILON) { return false; + } for (i = 0; i < gps->totpoints; i++) { pt[i].flag &= ~GP_SPOINT_TAG_FEATURE; // feature point preservation not implemented yet @@ -1554,8 +1556,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) int next_point_index = 1; i = 0; float pressure, strength, *weights = NULL; - if (new_dv) + if (new_dv) { weights = MEM_callocN(sizeof(float) * count, "gp_stroke_point_weights_sampled"); + } // 1st point is always at the start pt1 = >points[0]; @@ -1590,8 +1593,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) } */ i++; -if (next_point_index == 0) +if (next_point_index == 0) { break; /* last point finished */ +} } gps->points = new_pt; @@ -1619,8 +1623,9 @@ bool BKE_gpencil_stretch_stroke(bGPDstroke *gps, float dist) { bGPDspoint *pt = gps->points, *last_pt, *second_last, *next_pt; - if (gps->totpoints < 2 || dist < FLT_EPSILON) + if (gps->totpoints < 2 || dist < FLT_EPSILON) { return false; + } last_pt = [gps->totpoints - 1]; ; diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 28e8270ccf8..a2cd35dec73 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -54,8 +54,9 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph, printf("NULL LANPR rb!\n"); return; } - if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) + if (scene->lanpr.master_mode != LANPR_MASTER_MODE_SOFTWARE) { return; + } int color_idx = 0; int tot_points = 0; @@ -73,14 +74,15 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph, LANPR_RenderLineChainItem *rlci; for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain *)rlc->item.next) { -if (!rlc->object_ref) +if (!rlc->object_ref) { continue; /* XXX: intersection lines are lost */ - -if (rlc->level > qi_end || rlc->level < qi_begin) +} +if (rlc->level > qi_end || rlc->level < qi_begin) { continue; - -if (ob && >id != rlc->object_ref->id.orig_id) +} +if (ob && >id != rlc->object_ref->id.orig_id) { continue; +} int array_idx = 0; int count = lanpr_count_chain(rlc); @@ -107,8 +109,9 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph) { Scene *scene = DEG_get_evaluated_scene(depsgraph); SceneLANPR *lanpr = >lanpr; - if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) + if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) { return; + } if (!lanpr_share.render_buffer_shared || lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) { lanpr_compute_feature_lines_internal(depsgraph); diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 9b414794ead..fbe062c7e31 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -47,8 +47,10 @@ LANPR_RenderLine *lanpr_get_connected_render_line(LANPR_BoundingArea *ba, for (lip = ba->link
[Bf-blender-cvs] [be138d3380f] soc-2019-npr: LANPR: target GP material selection working
Commit: be138d3380fb99dd96ea06798c2ddaf53f905b1b Author: YimingWu Date: Tue Jun 25 13:44:44 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBbe138d3380fb99dd96ea06798c2ddaf53f905b1b LANPR: target GP material selection working === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 74dc6e9938d..e324d151172 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -40,7 +40,7 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, const float new_pos[ } void lanpr_generate_gpencil_from_chain( -Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end) +Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end, int material_nr) { Scene *scene = DEG_get_evaluated_scene(depsgraph); LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared; @@ -94,6 +94,7 @@ void lanpr_generate_gpencil_from_chain( } BKE_gpencil_stroke_add_points(gps, stroke_data, count, mat); +gps->mat_nr = material_nr; } } diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index 1bd71b7353b..d4ec4cc3075 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -11,7 +11,7 @@ typedef struct LANPR_RenderLineChain LANPR_RenderLineChain; void lanpr_generate_gpencil_from_chain( -Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end); +Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end, int material_nr); void lanpr_update_data_for_external(Depsgraph *depsgraph); diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 1469fafc807..8c50699683e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4309,11 +4309,13 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in if (!gpl) { gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true); } - gpf = BKE_gpencil_frame_addnew(gpl, frame); - BKE_gpencil_free_strokes(gpf); /* force clear now */ + gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); + /* BKE_gpencil_free_strokes(gpf); will be overwritten. need another solution */ + /* Please manually delete those strokes before clicking Update once again. */ lanpr_generate_gpencil_from_chain(dg, ob, gpl, gpf, -flmd->level_begin, flmd->use_multiple_levels?flmd->level_end:flmd->level_begin); +flmd->level_begin, flmd->use_multiple_levels?flmd->level_end:flmd->level_begin, +flmd->material); } } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c10f834b327] soc-2019-npr: GPENCIL: Prevent sampling from crashing. Need a new implementation to calculate acturate segment count.
Commit: c10f834b3278f0e5fbd8c8d37ae0418672d17adf Author: YimingWu Date: Tue Jun 25 14:33:07 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBc10f834b3278f0e5fbd8c8d37ae0418672d17adf GPENCIL: Prevent sampling from crashing. Need a new implementation to calculate acturate segment count. === M source/blender/blenkernel/intern/gpencil.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 30f0f80fb7e..afef9a8424f 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1538,9 +1538,10 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) pt1 = >points[i]; copy_v3_v3(this_coord, >x); length += len_v3v3(last_coord, this_coord); +copy_v3_v3(last_coord, >x); } - int count = (int)(length / dist) + 1; + int count = (int)(length / dist) + 3; /* Head + tail + float point precision tolerance */ bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points_sampled"); MDeformVert *new_dv = NULL; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5a4dd8f7b93] soc-2019-npr: LANPR: make format
Commit: 5a4dd8f7b936bad87101e67082636de1e2bc858e Author: YimingWu Date: Tue Jun 25 16:21:03 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB5a4dd8f7b936bad87101e67082636de1e2bc858e LANPR: make format === M source/blender/blenkernel/intern/gpencil.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_util.h M source/blender/editors/space_buttons/buttons_context.c M source/blender/makesrna/intern/rna_lanpr.c M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/intern/MOD_featureline.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index afef9a8424f..8e544703f84 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1555,8 +1555,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) i = 0; float pressure, strength, *weights = NULL; if (new_dv) -weights = MEM_callocN(sizeof(float) * count, - "gp_stroke_point_weights_sampled"); +weights = MEM_callocN(sizeof(float) * count, "gp_stroke_point_weights_sampled"); // 1st point is always at the start pt1 = >points[0]; @@ -1592,12 +1591,12 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) */ i++; if (next_point_index == 0) - break; /* last point finished */ + break; /* last point finished */ } gps->points = new_pt; gps->totpoints = i; - MEM_freeN(pt); /* original */ + MEM_freeN(pt); /* original */ if (new_dv) { BKE_gpencil_free_stroke_weights(gps); diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index e324d151172..28e8270ccf8 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -39,8 +39,13 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, const float new_pos[ return vert; } -void lanpr_generate_gpencil_from_chain( -Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end, int material_nr) +void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph, + Object *ob, + bGPDlayer *gpl, + bGPDframe *gpf, + int qi_begin, + int qi_end, + int material_nr) { Scene *scene = DEG_get_evaluated_scene(depsgraph); LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared; @@ -69,9 +74,9 @@ void lanpr_generate_gpencil_from_chain( for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain *)rlc->item.next) { if (!rlc->object_ref) - continue; /* XXX: intersection lines are lost */ + continue; /* XXX: intersection lines are lost */ -if (rlc->level>qi_end || rlc->levellevel > qi_end || rlc->level < qi_begin) continue; if (ob && >id != rlc->object_ref->id.orig_id) @@ -88,8 +93,8 @@ void lanpr_generate_gpencil_from_chain( stroke_data[array_idx] = rlci->gpos[0]; stroke_data[array_idx + 1] = rlci->gpos[1]; stroke_data[array_idx + 2] = rlci->gpos[2]; - stroke_data[array_idx + 3] = 1; /* thickness */ - stroke_data[array_idx + 4] = opatity; /* hardness? */ + stroke_data[array_idx + 3] = 1; /* thickness */ + stroke_data[array_idx + 4] = opatity; /* hardness? */ array_idx += 5; } diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index d4ec4cc3075..ac99975ad06 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -10,8 +10,13 @@ typedef struct LANPR_RenderLineChain LANPR_RenderLineChain; -void lanpr_generate_gpencil_from_chain( -Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, int qi_begin, int qi_end, int material_nr); +void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph, + Object *ob, + bGPDlayer *gpl, +
[Bf-blender-cvs] [47d04c4af46] soc-2019-npr: LANPR: Added collection target and related options.
Commit: 47d04c4af46a2095c42acdf569d6a4472f15e329 Author: YimingWu Date: Tue Jun 25 16:54:47 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB47d04c4af46a2095c42acdf569d6a4472f15e329 LANPR: Added collection target and related options. === M release/scripts/startup/bl_ui/properties_collection.py M source/blender/makesdna/DNA_collection_types.h M source/blender/makesrna/intern/rna_collection.c === diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py index 73e2ef43bea..e3110155ae2 100644 --- a/release/scripts/startup/bl_ui/properties_collection.py +++ b/release/scripts/startup/bl_ui/properties_collection.py @@ -66,10 +66,27 @@ class COLLECTION_PT_lanpr_collection(CollectionButtonsPanel, Panel): def draw(self,context): layout = self.layout collection = context.collection +lanpr = collection.lanpr row = layout.row() -row.prop(collection.lanpr,"usage",expand=True) -if collection.lanpr.usage!='INCLUDE': -layout.prop(collection.lanpr,"force") +row.prop(lanpr,"usage",expand=True) +if lanpr.usage!='INCLUDE': +layout.prop(lanpr,"force") +else: +row = layout.row() +row.prop(lanpr,"target") + +if lanpr.target: +row = layout.row(align=True) +row.prop(lanpr,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', icon_only=True) +row.prop(lanpr,'level_begin') +if lanpr.use_multiple_levels: +row.prop(lanpr,'level_end') +row = layout.row() +row.prop(lanpr,'replace', text='Replace existing frames') +row = layout.row() +row.prop(lanpr,'layer') +row.prop(lanpr,'material') + classes = ( COLLECTION_PT_collection_flags, diff --git a/source/blender/makesdna/DNA_collection_types.h b/source/blender/makesdna/DNA_collection_types.h index 78c9b991863..db255ad9a99 100644 --- a/source/blender/makesdna/DNA_collection_types.h +++ b/source/blender/makesdna/DNA_collection_types.h @@ -46,7 +46,16 @@ typedef struct CollectionChild { typedef struct CollectionLANPR { short usage; short force; /* force objects with LANPR modifier follow the rule */ + char _pad[4]; + + struct Object *target; + int replace; + int layer; + int material; + int use_multiple_levels; + int level_begin; + int level_end; } CollectionLANPR; /* CollectionLANPR->mode */ diff --git a/source/blender/makesrna/intern/rna_collection.c b/source/blender/makesrna/intern/rna_collection.c index 2141f58ff53..6b749bece03 100644 --- a/source/blender/makesrna/intern/rna_collection.c +++ b/source/blender/makesrna/intern/rna_collection.c @@ -389,6 +389,39 @@ static void rna_def_collection_lanpr(BlenderRNA *brna, StructRNA *srna) RNA_def_property_boolean_default(prop, 0); RNA_def_property_ui_text( prop, "Force", "Force object who has LANPR modifiers to follow the rule"); + + prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "target"); + RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke result"); + RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_GPencil_object_poll"); + RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); + + prop = RNA_def_property(srna, "replace", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_ui_text(prop, "Replace", "Replace existing GP frames"); + + prop = RNA_def_property(srna, "layer", PROP_INT, PROP_NONE); + RNA_def_property_range(prop, 0, 100); + RNA_def_property_ui_range(prop, 0, 100, 1, -1); + RNA_def_property_ui_text(prop, "Layer", "GPencil layer to put the results into"); + + prop = RNA_def_property(srna, "material", PROP_INT, PROP_NONE); + RNA_def_property_range(prop, 0, 100); + RNA_def_property_ui_range(prop, 0, 100, 1, -1); + RNA_def_property_ui_text(prop, "Material", "GPencil material to use to generate the results"); + + prop = RNA_def_property(srna, "use_multiple_levels", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "use_multiple_levels", 0); + RNA_def_property_ui_text(prop, "Multiple", "Use multiple occlusion levels"); + + prop = RNA_def_property(srna, "level_begin", PROP_INT, PROP_NONE); + RNA_def_property_range(prop, 0, 255); + RNA_def_property_ui_range(prop, 0, 255, 1, -1); + RNA_def_property_ui_text(prop, "Level", "Occlusion
[Bf-blender-cvs] [d0ea6e306cd] soc-2019-npr: LANPR: filter GP targets only.
Commit: d0ea6e306cd601c994d25d0942f372e5e17200f3 Author: YimingWu Date: Tue Jun 25 13:24:35 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBd0ea6e306cd601c994d25d0942f372e5e17200f3 LANPR: filter GP targets only. === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/makesrna/intern/rna_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index e2416de1410..ac661430d74 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1682,13 +1682,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): row.prop(md,'enable_material',toggle=True) row.prop(md,'enable_intersection',toggle=True) row.prop(md,'enable_modifier_mark',toggle=True) -layout.label(text='Result GP:') -layout.prop(md,'target') -layout.prop(md,'replace', text='Replace existing frames') - -row = layout.row() -row.prop(md,'layer') -row.prop(md,'material') row = layout.row(align=True) row.prop(md,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', icon_only=True) @@ -1696,6 +1689,16 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): if md.use_multiple_levels: row.prop(md,'level_end') +layout.label(text='Result GP:') +layout.prop(md,'target') +if not md.target: +layout.label(text="You have to specify a target GP Object") +else: +layout.prop(md,'replace', text='Replace existing frames') +row = layout.row() +row.prop(md,'layer') +row.prop(md,'material') + class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): bl_label = "Modifiers" diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index acc9166..03c9dea9db9 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -6051,6 +6051,7 @@ static void rna_def_modifier_featureline(BlenderRNA *brna) prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "target"); RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke result"); + RNA_def_property_pointer_funcs(prop,NULL,NULL,NULL,"rna_GPencil_object_poll"); RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update"); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c0aae838aba] soc-2019-npr: LANPR: red-out modifier name when target is not set.
Commit: c0aae838aba186b0fe41b112be307fa1cf113008 Author: YimingWu Date: Tue Jun 25 13:25:36 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBc0aae838aba186b0fe41b112be307fa1cf113008 LANPR: red-out modifier name when target is not set. === M source/blender/modifiers/intern/MOD_featureline.c === diff --git a/source/blender/modifiers/intern/MOD_featureline.c b/source/blender/modifiers/intern/MOD_featureline.c index b844eb9ae19..a9019062482 100644 --- a/source/blender/modifiers/intern/MOD_featureline.c +++ b/source/blender/modifiers/intern/MOD_featureline.c @@ -95,6 +95,13 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, walk(userData, ob, >target, IDWALK_NOP); } +static bool isDisabled(const struct Scene *scene, struct ModifierData *md, bool userRenderParams){ + FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; + if(!flmd->target) +return true; + return false; +} + ModifierTypeInfo modifierType_FeatureLine = { /* name */ "Feature Line", /* structName */ "FeatureLineModifierData", @@ -112,7 +119,7 @@ ModifierTypeInfo modifierType_FeatureLine = { /* initData */ initData, /* requiredDataMask */ requiredDataMask, /* freeData */ freeData, -/* isDisabled */ NULL, +/* isDisabled */ isDisabled, /* updateDepsgraph */ NULL, /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [08f6566dbfc] soc-2019-npr: LANPR: Default values now in versioning_280.c
Commit: 08f6566dbfc190803ddb93783e12218e4c6df7e0 Author: YimingWu Date: Wed Jun 19 18:17:20 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB08f6566dbfc190803ddb93783e12218e4c6df7e0 LANPR: Default values now in versioning_280.c === M source/blender/blenloader/intern/versioning_280.c === diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 65ab20af831..93f17a0eb02 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -3519,6 +3519,31 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) do_versions_seq_alloc_transform_and_crop(>ed->seqbase); } } +for (Scene *sce = bmain->scenes.first; sce; sce = sce->id.next) { +sce->lanpr.crease_threshold = 0.7; + +sce->lanpr.line_thickness = 1.5; +sce->lanpr.depth_clamp = 0.001; +sce->lanpr.depth_strength = 800; +sce->lanpr.normal_clamp = 2; +sce->lanpr.normal_strength = 10; + +sce->lanpr.enable_intersections = 1; + +sce->lanpr.background_color[0] = 0; +sce->lanpr.background_color[1] = 0; +sce->lanpr.background_color[2] = 0; +sce->lanpr.background_color[3] = 1; + +sce->lanpr.line_color[0] = 1; +sce->lanpr.line_color[1] = 1; +sce->lanpr.line_color[2] = 1; +sce->lanpr.line_color[3] = 1; + +sce->lanpr.enable_intersections = 1; +sce->lanpr.enable_chaining = 1; +sce->lanpr.chaining_threshold = 0.01; +} } { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b165d0a4141] soc-2019-npr: LANPR: Removed "Tip Extend" data and properties. GP Modifiers will handle this.
Commit: b165d0a41418e2a638459f0f0c28a21a65d0b9f3 Author: YimingWu Date: Wed Jun 19 15:20:36 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBb165d0a41418e2a638459f0f0c28a21a65d0b9f3 LANPR: Removed "Tip Extend" data and properties. GP Modifiers will handle this. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 1ce3101cf83..c22fb320e50 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -1014,7 +1014,7 @@ class RENDER_PT_lanpr_snake_settings(RenderButtonsPanel, Panel): layout.prop(lanpr,"extend_length") class RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel): -bl_label = "Chain Styles" +bl_label = "Chaining Options" bl_parent_id = "RENDER_PT_lanpr" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} @@ -1047,12 +1047,6 @@ class RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel): col.prop(lanpr,"taper_left_distance") col.prop(lanpr,"taper_left_strength") -layout.label(text="Tip Extend:") -layout.prop(lanpr, "enable_tip_extend", expand = True) -if lanpr.enable_tip_extend == "ENABLED": -layout.label(text="---INOP---") -layout.prop(lanpr,"extend_length") - classes = ( RENDER_PT_context, diff --git a/source/blender/makesdna/DNA_lanpr_types.h b/source/blender/makesdna/DNA_lanpr_types.h index 3f43f1250cb..b08b55298f3 100644 --- a/source/blender/makesdna/DNA_lanpr_types.h +++ b/source/blender/makesdna/DNA_lanpr_types.h @@ -50,9 +50,6 @@ struct Collection; #define LANPR_USE_DIFFERENT_TAPER 0 #define LANPR_USE_SAME_TAPER 1 -#define LANPR_DISABLE_TIP_EXTEND 0 -#define LANPR_ENABLE_TIP_EXTEND 1 - #define LANPR_NORMAL_DONT_CARE 0 #define LANPR_NORMAL_DIRECTIONAL 1 #define LANPR_NORMAL_POINT 2 diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index ef0e864b7a2..c05ed05ff77 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1660,9 +1660,6 @@ typedef struct SceneLANPR { float taper_right_distance; float taper_right_strength; - int enable_tip_extend; - float extend_length; - int snake_sensitivity; /* shared */ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 34c8eed211f..d6620a03cd8 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7177,15 +7177,6 @@ static void rna_def_scene_lanpr(BlenderRNA *brna) "Use same taper value for both sides of the line"}, {0, NULL, 0, NULL, NULL}}; - static const EnumPropertyItem rna_enum_lanpr_enable_tip_extend[] = { - {LANPR_DISABLE_TIP_EXTEND, "DISABLED", 0, "Disable", "Do not extend curve tips"}, - {LANPR_ENABLE_TIP_EXTEND, - "ENABLED", - 0, - "Enable", - "Extend curve tips to a user specified length"}, - {0, NULL, 0, NULL, NULL}}; - srna = RNA_def_struct(brna, "SceneLANPR", NULL); RNA_def_struct_sdna(srna, "SceneLANPR"); RNA_def_struct_ui_text(srna, "Scene LANPR Config", "LANPR global config"); @@ -7341,20 +7332,6 @@ static void rna_def_scene_lanpr(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, NC_SCENE, NULL); - prop = RNA_def_property(srna, "enable_tip_extend", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, rna_enum_lanpr_enable_tip_extend); - RNA_def_property_enum_default(prop, LANPR_DISABLE_TIP_EXTEND); - RNA_def_property_ui_text(prop, "Extend Tips", "Extending tips of curves"); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_update(prop, NC_SCENE, NULL); - - prop = RNA_def_property(srna, "extend_length", PROP_FLOAT, PROP_FACTOR); - RNA_def_property_float_default(prop, 1.0f); - RNA_def_property_ui_text(prop, "Extend Length", "Extend lenght of curves"); - RNA_def_property_ui_range(prop, 0.0f, 100.0f, 0.1, 2); - RNA_def_property_flag(prop, PROP_EDITABLE); - RNA_def_property_update(prop, NC_SCENE, NULL); - prop = RNA_def_property(srna, "crease_threshold", PROP_F
[Bf-blender-cvs] [b5ea252ac33] soc-2019-npr: LANPR: Chaining threshold parameter. Disabled LANPR composition operators.
Commit: b5ea252ac33a59ebd264e03452f403866609aa2e Author: YimingWu Date: Wed Jun 19 16:47:32 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBb5ea252ac33a59ebd264e03452f403866609aa2e LANPR: Chaining threshold parameter. Disabled LANPR composition operators. === M release/scripts/startup/bl_operators/lanpr.py M release/scripts/startup/bl_ui/properties_render.py M source/blender/blenkernel/intern/scene.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c === diff --git a/release/scripts/startup/bl_operators/lanpr.py b/release/scripts/startup/bl_operators/lanpr.py index 3c5b484855e..0cef8d5e904 100644 --- a/release/scripts/startup/bl_operators/lanpr.py +++ b/release/scripts/startup/bl_operators/lanpr.py @@ -234,9 +234,9 @@ class LANPR_render_composited(bpy.types.Operator): return {'FINISHED'} classes=( -LANPR_make_composition_scene, -LANPR_remove_composition_scene, -LANPR_goto_original_scene, -LANPR_goto_composition_scene, -LANPR_render_composited, +#LANPR_make_composition_scene, +#LANPR_remove_composition_scene, +#LANPR_goto_original_scene, +#LANPR_goto_composition_scene, +#LANPR_render_composited, ) \ No newline at end of file diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index c22fb320e50..ab0452556fd 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -1029,6 +1029,7 @@ class RENDER_PT_lanpr_software_chain_styles(RenderButtonsPanel, Panel): layout = self.layout scene = context.scene lanpr = scene.lanpr +layout.prop(lanpr, "chaining_threshold") layout.label(text="Taper:") layout.prop(lanpr, "use_same_taper", expand = True) if lanpr.use_same_taper == "DISABLED": diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index cc0977d715f..eb8eedcb275 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -987,15 +987,19 @@ void BKE_scene_init(Scene *sce) sce->lanpr.enable_intersections = 1; - sce->lanpr.background_color[0] = 0.76; - sce->lanpr.background_color[1] = 0.54; - sce->lanpr.background_color[2] = 0.29; + sce->lanpr.background_color[0] = 0; + sce->lanpr.background_color[1] = 0; + sce->lanpr.background_color[2] = 0; sce->lanpr.background_color[3] = 1; - sce->lanpr.line_color[0] = 0.39; - sce->lanpr.line_color[1] = 0.12; - sce->lanpr.line_color[2] = 0.04; + sce->lanpr.line_color[0] = 1; + sce->lanpr.line_color[1] = 1; + sce->lanpr.line_color[2] = 1; sce->lanpr.line_color[3] = 1; + + sce->lanpr.enable_intersections = 1; + sce->lanpr.enable_chaining = 1; + sce->lanpr.chaining_threshold = 0.01; } Scene *BKE_scene_add(Main *bmain, const char *name) diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 7c4da87b422..5dfad61089f 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -195,7 +195,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain *rlc, } } -void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_threshold) +void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb) { LANPR_RenderLineChain *rlc; LANPR_RenderLineChainItem *rlci; @@ -412,16 +412,6 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_thre } ba = lanpr_get_point_bounding_area(rb, new_rv->fbcoord[0], new_rv->fbcoord[1]); } - -// LANPR_RenderLineChainItem* rlci; -// printf("line:\n"); -// for (rlci = rlc->chain.first; rlci; rlci = rlci->item.next) { -// printf(" %f,%f %d\n", rlci->pos[0],rlci->pos[1], rlci->occlusion); -//} -// printf("\n"); - -// lanpr_reduce_render_line_chain_recursive(rlc,rlc->chain.first, rlc->chain.last, -// dist_threshold); } } @@ -623,7 +613,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) dist = new_len; } } - if (dist < 0.01f && closest_cre) { + if (dist < rb->scene->lanpr.chaining_threshold && closest_cre) { closest_cre->picked = 1; closest_cre->rlc->picked = 1; BLI_remlink(>linked_chains, cr
[Bf-blender-cvs] [6e38e95b964] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 6e38e95b96469dcb5f05db9c055b18189d6607aa Author: YimingWu Date: Wed Jun 19 13:23:43 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB6e38e95b96469dcb5f05db9c055b18189d6607aa Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ca0c24c9df0] soc-2019-npr: LANPR: Manual stroke update functions. (Not working yet)
Commit: ca0c24c9df0a542856c97d26b802ff494e007c96 Author: YimingWu Date: Wed Jun 19 17:41:02 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBca0c24c9df0a542856c97d26b802ff494e007c96 LANPR: Manual stroke update functions. (Not working yet) === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/editors/render/render_intern.h M source/blender/editors/render/render_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 4f37cf04265..e2416de1410 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1669,7 +1669,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col.prop(md, "face_influence") def FEATURE_LINE(self, layout, ob, md): -layout.label(text='Not operational yet') +layout.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Manual Update') layout.label(text='Usage:') row = layout.row() row.prop(md,'usage',expand=True) @@ -1684,7 +1684,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): row.prop(md,'enable_modifier_mark',toggle=True) layout.label(text='Result GP:') layout.prop(md,'target') -layout.prop(md,'replace') +layout.prop(md,'replace', text='Replace existing frames') row = layout.row() row.prop(md,'layer') diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 50abf53bbd2..95cfe3dd2e7 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -292,7 +292,7 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph) return; if (!lanpr_share.render_buffer_shared || lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) { -lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene); +lanpr_compute_feature_lines_internal(depsgraph); } } diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index 0e3903c9f37..5703cc2e52e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -20,7 +20,7 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph); int lanpr_count_chain(LANPR_RenderLineChain *rlc); -int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene); +int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph); void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb); diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 2294af796b1..f588e87a0b3 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -587,8 +587,8 @@ static void lanpr_render_matrices_init(RenderEngine *engine, Depsgraph *depsgrap DRW_view_set_active(view); } -int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene); -LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr); +int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph); +LANPR_RenderBuffer *lanpr_create_render_buffer(); extern DrawEngineType draw_engine_lanpr_type; @@ -628,10 +628,10 @@ static void lanpr_render_to_image(LANPR_Data *vedata, if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE || (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->enable_intersections)) { if (!lanpr_share.render_buffer_shared) - lanpr_create_render_buffer(lanpr); + lanpr_create_render_buffer(); if (lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra || LANPR_GLOBAL_update_tag) { - lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, lanpr, scene); + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph); } } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 2324f50d83d..90e60ebfd53 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -40,6 +40,11 @@ #include "RNA_access.h" #include "RNA_define.h" +#include "BKE_modifier.h" +#include "BKE_gpencil.h" +#include "BKE_gpenc
[Bf-blender-cvs] [dbb151c02b3] soc-2019-npr: LANPR: modified default UI for more logical display.
Commit: dbb151c02b386edaca9fbd0ef8f8361a69394b6a Author: YimingWu Date: Wed Jun 19 15:09:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBdbb151c02b386edaca9fbd0ef8f8361a69394b6a LANPR: modified default UI for more logical display. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index ad8b4b0743b..1ce3101cf83 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -693,8 +693,13 @@ class LANPR_linesets(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): lineset = item if self.layout_type in {'DEFAULT', 'COMPACT'}: -split = layout.split(factor=0.6) -split.label(text="Layer") +split = layout.split(factor=0.4) +t='' +if not lineset.use_multiple_levels: +t='Level %d'%lineset.qi_begin +else: +t='Level %d - %d'%(lineset.qi_begin,lineset.qi_end) +split.label(text=t) row = split.row(align=True) row.prop(lineset, "color", text="", icon_value=icon) row.prop(lineset, "thickness", text="", icon_value=icon) @@ -762,26 +767,15 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): col.operator("scene.lanpr_rebuild_all_commands",icon="FILE_REFRESH", text='') else: col.operator("scene.lanpr_add_line_layer", icon="ADD", text='') - -if active_layer: -layout.label(text= "Normal controlled line weight:") -layout.prop(active_layer,"normal_mode", expand = True) -if active_layer.normal_mode != "DISABLED": -layout.prop(active_layer,"normal_control_object") -layout.prop(active_layer,"normal_effect_inverse", toggle = True) -layout.prop(active_layer,"normal_ramp_begin") -layout.prop(active_layer,"normal_ramp_end") -layout.prop(active_layer,"normal_thickness_begin", slider=True) -layout.prop(active_layer,"normal_thickness_end", slider=True) - else: layout.label(text="Vectorization:") layout.prop(lanpr, "enable_vector_trace", expand = True) class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): -bl_label = "Styles" +bl_label = "Layer Settings" bl_parent_id = "RENDER_PT_lanpr" +bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} @classmethod @@ -798,6 +792,13 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): active_layer = lanpr.layers.active_layer if active_layer and lanpr.master_mode == "DPIX": active_layer = lanpr.layers[0] + +if lanpr.master_mode == "SOFTWARE": +row = layout.row(align=True) +row.prop(active_layer, "use_multiple_levels", icon='GP_MULTIFRAME_EDITING', icon_only=True) +row.prop(active_layer, "qi_begin", text='Level') +if active_layer.use_multiple_levels: +row.prop(active_layer, "qi_end", text='To') row = layout.row(align=True) row.prop(active_layer,"use_same_style") @@ -851,14 +852,10 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): if lanpr.enable_intersections: row.operator("scene.lanpr_calculate", text= "Recalculate") -if lanpr.master_mode == "SOFTWARE": -row = layout.row(align=True) -row.prop(active_layer, "qi_begin") -row.prop(active_layer, "qi_end") - class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel): bl_label = "Including" bl_parent_id = "RENDER_PT_lanpr" +bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL', 'BLENDER_EEVEE'} @classmethod @@ -898,33 +895,48 @@ class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel): class RENDER_PT_lanpr_line_effects(RenderButtonsPanel, Panel): bl_label = "Effects" bl_parent_id = "REN
[Bf-blender-cvs] [4be8461b883] soc-2019-npr: LANPR: make format
Commit: 4be8461b88342d60dac788996656226e4ba7a3f6 Author: YimingWu Date: Wed Jun 19 17:42:31 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4be8461b88342d60dac788996656226e4ba7a3f6 LANPR: make format === M intern/cycles/util/util_windows.cpp M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_collection_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_collection.c M source/blender/makesrna/intern/rna_gpencil_modifier.c M source/blender/makesrna/intern/rna_lanpr.c M source/blender/makesrna/intern/rna_modifier.c M source/blender/makesrna/intern/rna_scene.c M source/blender/modifiers/intern/MOD_mybmesh.c === diff --git a/intern/cycles/util/util_windows.cpp b/intern/cycles/util/util_windows.cpp index b8de9c418fe..807a5adc84a 100644 --- a/intern/cycles/util/util_windows.cpp +++ b/intern/cycles/util/util_windows.cpp @@ -15,7 +15,7 @@ */ #ifdef _WIN32 -#include +# include #endif #include "util_windows.h" diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 90e60ebfd53..756f6832eff 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3841,18 +3841,38 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) lanpr_calculate_normal_object_vector(ll, normal_object_direction); DRW_shgroup_uniform_vec4(rb->ChainShgrp, "color", ll->color, 1); -DRW_shgroup_uniform_vec4(rb->ChainShgrp, "crease_color", ll->use_same_style?ll->color:ll->crease_color, 1); -DRW_shgroup_uniform_vec4(rb->ChainShgrp, "material_color", ll->use_same_style?ll->color:ll->material_color, 1); -DRW_shgroup_uniform_vec4(rb->ChainShgrp, "edge_mark_color", ll->use_same_style?ll->color:ll->edge_mark_color, 1); -DRW_shgroup_uniform_vec4(rb->ChainShgrp, "intersection_color", ll->use_same_style?ll->color:ll->intersection_color, 1); +DRW_shgroup_uniform_vec4( +rb->ChainShgrp, "crease_color", ll->use_same_style ? ll->color : ll->crease_color, 1); +DRW_shgroup_uniform_vec4(rb->ChainShgrp, + "material_color", + ll->use_same_style ? ll->color : ll->material_color, + 1); +DRW_shgroup_uniform_vec4(rb->ChainShgrp, + "edge_mark_color", + ll->use_same_style ? ll->color : ll->edge_mark_color, + 1); +DRW_shgroup_uniform_vec4(rb->ChainShgrp, + "intersection_color", + ll->use_same_style ? ll->color : ll->intersection_color, + 1); DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness", >thickness, 1); -DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness_crease", ll->use_same_style?>thickness:>thickness_crease, 1); -DRW_shgroup_uniform_float( -rb->ChainShgrp, "thickness_material", ll->use_same_style?>thickness:>thickness_material, 1); -DRW_shgroup_uniform_float( -rb->ChainShgrp, "thickness_edge_mark", ll->use_same_style?>thickness:>thickness_edge_mark, 1); -DRW_shgroup_uniform_float( -rb->ChainShgrp, "thickness_intersection", ll->use_same_style?>thickness:>thickness_intersection, 1); +DRW_shgroup_uniform_float(rb->ChainShgrp, + "thickness_crease", + ll->use_same_style ? >thickness : >thickness_crease, + 1); +DRW_shgroup_uniform_float(rb->ChainShgrp, + "thickness_material", + ll->use_same_style ? >thickness : >thickness_material, + 1); +DRW_shgroup_uniform_float(rb->ChainShgrp, + "thickness_edge_mark", + ll->use_same_style ? >thickness : >thickness_edge_mark, + 1); +DRW_shgroup_uniform_float(rb->ChainShgrp, + "thickness_intersection", + ll->use_same_style ? >thickness : +
[Bf-blender-cvs] [fd803aba5eb] soc-2019-npr: GPENCIL: use copy_v3_v3 for gp points.
Commit: fd803aba5eb36807a8fa7053c5d11b2f49f13608 Author: YimingWu Date: Mon Jun 24 08:35:30 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBfd803aba5eb36807a8fa7053c5d11b2f49f13608 GPENCIL: use copy_v3_v3 for gp points. === M source/blender/blenkernel/intern/gpencil.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 9acd9d3b447..83ed203c109 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1444,32 +1444,23 @@ static int stroke_march_next_point(bGPDstroke *gps, return -1; copy_v3_v3(step_start, current); - - point[0] = gps->points[next_point_index].x; - point[1] = gps->points[next_point_index].y; - point[2] = gps->points[next_point_index].z; + copy_v3_v3(point,>points[next_point_index]); remaining_till_next = len_v3v3(point, step_start); while (remaining_till_next < remaining_march) { remaining_march -= remaining_till_next; -point[0] = gps->points[next_point_index].x; -point[1] = gps->points[next_point_index].y; -point[2] = gps->points[next_point_index].z; +copy_v3_v3(point,>points[next_point_index]); copy_v3_v3(step_start, point); next_point_index++; if (!(next_point_index < gps->totpoints)) { next_point_index = gps->totpoints - 1; break; } -point[0] = gps->points[next_point_index].x; -point[1] = gps->points[next_point_index].y; -point[2] = gps->points[next_point_index].z; +copy_v3_v3(point,>points[next_point_index]); remaining_till_next = len_v3v3(point, step_start); } if (remaining_till_next < remaining_march) { -result[0] = gps->points[next_point_index].x; -result[1] = gps->points[next_point_index].y; -result[2] = gps->points[next_point_index].z; +copy_v3_v3(result,>points[next_point_index]); *pressure = gps->points[next_point_index].pressure; *strength = gps->points[next_point_index].strength; return 0; @@ -1504,13 +1495,9 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) float length = 0.0f; float last_coord[3], this_coord[3]; - last_coord[0] = pt[0].x; - last_coord[1] = pt[0].y; - last_coord[2] = pt[0].z; + copy_v3_v3(last_coord,[0]); for (i = 1; i < gps->totpoints; i++) { -this_coord[0] = pt[i].x; -this_coord[1] = pt[i].y; -this_coord[2] = pt[i].z; +copy_v3_v3(this_coord,[i]); length += len_v3v3(last_coord, this_coord); } @@ -1521,21 +1508,15 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) int next_point_index = 1; i = 0; float pressure, strength; - last_coord[0] = pt[0].x; - last_coord[1] = pt[0].y; - last_coord[2] = pt[0].z; + copy_v3_v3(last_coord,[0]); // 1st point - new_pt[i].x = last_coord[0]; - new_pt[i].y = last_coord[1]; - new_pt[i].z = last_coord[2]; + copy_v3_v3(_pt[i],last_coord); new_pt[i].pressure = pt[0].pressure; new_pt[i].strength = pt[0].strength; i++; while ((next_point_index = stroke_march_next_point( gps, next_point_index, last_coord, dist, last_coord, , )) > -1) { -new_pt[i].x = last_coord[0]; -new_pt[i].y = last_coord[1]; -new_pt[i].z = last_coord[2]; +copy_v3_v3(_pt[i],last_coord); new_pt[i].pressure = pressure; new_pt[i].strength = strength; i++; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [7799374520e] soc-2019-npr: LANPR: Fixed modifier read pointer error by providing foreachObjectLink() callback.
Commit: 7799374520e1179d9b3614f4e5486da23bb52a73 Author: YimingWu Date: Sun Jun 23 16:11:21 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB7799374520e1179d9b3614f4e5486da23bb52a73 LANPR: Fixed modifier read pointer error by providing foreachObjectLink() callback. === M source/blender/blenloader/intern/readfile.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/intern/MOD_featureline.c === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f49f69f1aba..f08e789b695 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5798,6 +5798,11 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) } } } +else if (md->type == eModifierType_FeatureLine) { + FeatureLineModifierData *flmd= (FeatureLineModifierData *)md; + + //flmd->target = newdataadr(fd, flmd->target); +} } } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 79e675d67d0..16248a8e8c1 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4040,8 +4040,8 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph) if (lanpr->enable_chaining) { lanpr_NO_THREAD_chain_feature_lines(rb); // should use user_adjustable value -//lanpr_split_chains_for_fixed_occlusion(rb); -//anpr_connect_chains_image_space(rb); +lanpr_split_chains_for_fixed_occlusion(rb); +lanpr_connect_chains_image_space(rb); } rb->cached_for_frame = rb->scene->r.cfra; diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ac51cd23820..d4733b33fe1 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -6049,6 +6049,7 @@ static void rna_def_modifier_featureline(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Modifier_update"); prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); + RNA_def_property_pointer_sdna(prop, NULL, "target"); RNA_def_property_ui_text(prop, "Target", "GPencil object to put the stroke result"); RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update"); diff --git a/source/blender/modifiers/intern/MOD_featureline.c b/source/blender/modifiers/intern/MOD_featureline.c index 9377f55ab49..a0270aca8ef 100644 --- a/source/blender/modifiers/intern/MOD_featureline.c +++ b/source/blender/modifiers/intern/MOD_featureline.c @@ -40,6 +40,7 @@ #include "BKE_modifier.h" #include "BKE_particle.h" #include "BKE_scene.h" +#include "BKE_library_query.h" #include "DEG_depsgraph_query.h" @@ -87,6 +88,13 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes return mesh; } +static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) +{ + FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; + + walk(userData, ob, >target, IDWALK_NOP); +} + ModifierTypeInfo modifierType_FeatureLine = { /* name */ "Feature Line", /* structName */ "FeatureLineModifierData", @@ -108,7 +116,7 @@ ModifierTypeInfo modifierType_FeatureLine = { /* updateDepsgraph */ NULL, /* dependsOnTime */ dependsOnTime, /* dependsOnNormals */ NULL, -/* foreachObjectLink */ NULL, +/* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, /* foreachTexLink */ NULL, /* freeRuntimeData */ NULL, ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [332423a7caa] soc-2019-npr: LANPR: two step chaining, need a toggle for switching 2d/3d space priority.
Commit: 332423a7caa01ed0988f63546009054e4a4f753e Author: YimingWu Date: Sun Jun 23 18:00:03 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB332423a7caa01ed0988f63546009054e4a4f753e LANPR: two step chaining, need a toggle for switching 2d/3d space priority. === M source/blender/blenkernel/intern/gpencil.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 865a01d64c2..0295494624a 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1513,7 +1513,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) length += len_v3v3(last_coord, this_coord); } - int count = (int)(length / dist) + 3; // preserve some extra in case + int count = (int)(length / dist) + 10; // preserve some extra in case bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points_sampled"); diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 849b161c8dc..4ed3d873c20 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -525,7 +525,7 @@ void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb) rlci->normal, rlci->line_type, fixed_occ); - +new_rlc->object_ref = rlc->object_ref; rlc = new_rlc; fixed_occ = rlci->occlusion; } @@ -569,7 +569,7 @@ void lanpr_connect_two_chains(LANPR_RenderBuffer *rb, // this only does head-tail connection. // overlapping / tiny isolated segment / loop reduction not implemented here yet. -void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) +void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int do_geometry_space) { LANPR_RenderLineChain *rlc, *new_rlc; LANPR_RenderLineChainItem *rlci, *next_rlci; @@ -596,7 +596,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) rlci = rlc->chain.last; while (ba = lanpr_get_end_point_bounding_area(rb, rlci)) { - dist = 100.0f; + dist = do_geometry_space?rb->scene->lanpr.chaining_threshold:100.0f; closest_cre = NULL; if (!ba->linked_chains.first) break; @@ -610,7 +610,9 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) BLI_remlink(>linked_chains, cre); continue; } -float new_len = len_v2v2(cre->rlci->pos, rlci->pos); +float new_len = do_geometry_space? +len_v3v3(cre->rlci->gpos,rlci->gpos): +len_v2v2(cre->rlci->pos, rlci->pos); if (new_len < dist) { closest_cre = cre; dist = new_len; @@ -636,7 +638,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) rlci = rlc->chain.first; while (ba = lanpr_get_end_point_bounding_area(rb, rlci)) { - dist = 100.0f; + dist = do_geometry_space?rb->scene->lanpr.chaining_threshold:100.0f; closest_cre = NULL; if (!ba->linked_chains.first) break; @@ -649,7 +651,9 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) BLI_remlink(>linked_chains, cre); continue; } -float new_len = len_v2v2(cre->rlci->pos, rlci->pos); +float new_len = do_geometry_space? +len_v3v3(cre->rlci->gpos,rlci->gpos): +len_v2v2(cre->rlci->pos, rlci->pos); if (new_len < dist) { closest_cre = cre; dist = new_len; diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 16248a8e8c1..714bf2c8d34 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3748,7 +3748,7 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList *txl, void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb); void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb); -void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb); +void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int do_geometry_space); void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float *normal_object_direction) { @@ -4041,7 +4041,8 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph) if (lanpr->enable_chaining) { lanpr_NO_THREAD_chain_feature_lines(rb); // shoul
[Bf-blender-cvs] [c2e7ef36d95] soc-2019-npr: LANPR: make format
Commit: c2e7ef36d95c9175897f5a6577f95278cb84264d Author: YimingWu Date: Sun Jun 23 18:01:07 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBc2e7ef36d95c9175897f5a6577f95278cb84264d LANPR: make format === M source/blender/blenkernel/BKE_gpencil.h M source/blender/blenkernel/intern/gpencil.c M source/blender/blenloader/intern/readfile.c M source/blender/blenloader/intern/versioning_280.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/modifiers/intern/MOD_mybmesh.c === diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index 5b89c8bbadf..25d44ffca55 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -135,7 +135,9 @@ struct bGPDframe *BKE_gpencil_layer_getframe(struct bGPDlayer *gpl, struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int cframe); bool BKE_gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf); -struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata* gpd, int index, int first_if_not_found); +struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata *gpd, + int index, + int first_if_not_found); struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd); void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active); diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 0295494624a..9acd9d3b447 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -984,9 +984,10 @@ bGPDlayer *BKE_gpencil_layer_getactive(bGPdata *gpd) return NULL; } -bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int index, int first_if_not_found){ +bGPDlayer *BKE_gpencil_layer_get_index(bGPdata *gpd, int index, int first_if_not_found) +{ bGPDlayer *gpl; - int i=0; + int i = 0; /* error checking */ if (ELEM(NULL, gpd, gpd->layers.first)) { @@ -995,14 +996,14 @@ bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int index, int first_if_not /* loop over layers until found (assume only one active) */ for (gpl = gpd->layers.first; gpl; gpl = gpl->next) { -if (i==index) { +if (i == index) { return gpl; } i++; } /* no such layer */ - if(first_if_not_found){ + if (first_if_not_found) { return gpd->layers.first; } return NULL; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f08e789b695..b22286b978d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5799,9 +5799,9 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb) } } else if (md->type == eModifierType_FeatureLine) { - FeatureLineModifierData *flmd= (FeatureLineModifierData *)md; + FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; - //flmd->target = newdataadr(fd, flmd->target); + // flmd->target = newdataadr(fd, flmd->target); } } } diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 93f17a0eb02..5d584cc81f9 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -3520,29 +3520,29 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) } } for (Scene *sce = bmain->scenes.first; sce; sce = sce->id.next) { -sce->lanpr.crease_threshold = 0.7; + sce->lanpr.crease_threshold = 0.7; -sce->lanpr.line_thickness = 1.5; -sce->lanpr.depth_clamp = 0.001; -sce->lanpr.depth_strength = 800; -sce->lanpr.normal_clamp = 2; -sce->lanpr.normal_strength = 10; + sce->lanpr.line_thickness = 1.5; + sce->lanpr.depth_clamp = 0.001; + sce->lanpr.depth_strength = 800; + sce->lanpr.normal_clamp = 2; + sce->lanpr.normal_strength = 10; -sce->lanpr.enable_intersections = 1; + sce->lanpr.enable_intersections = 1; -sce->lanpr.background_color[0] = 0; -sce->lanpr.background_color[1] = 0; -sce->lanpr.background_color[2] = 0; -sce->lanpr.background_color[3] = 1; + sce->lanpr.background_color[0] = 0; + sce->lanpr.background_color[1] = 0; + sce->lanpr.background_color[2] = 0; + sce->lanpr.back
[Bf-blender-cvs] [f30e4cd2362] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: f30e4cd2362e9c581fb1725ac89aae1f5e173abe Author: YimingWu Date: Sat Jun 22 16:20:07 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf30e4cd2362e9c581fb1725ac89aae1f5e173abe Merge branch 'master' into soc-2019-npr === === diff --cc source/blender/draw/CMakeLists.txt index 0c14d73494e,8631a9f556b..f50cb8be979 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@@ -260,21 -249,7 +260,22 @@@ data_to_c_simple(engines/workbench/shad data_to_c_simple(engines/workbench/shaders/workbench_volume_frag.glsl SRC) data_to_c_simple(engines/workbench/shaders/workbench_world_light_lib.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_edge_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_software_chain_geom.glsl SRC) + + + data_to_c_simple(modes/shaders/common_colormanagement_lib.glsl SRC) data_to_c_simple(modes/shaders/common_globals_lib.glsl SRC) data_to_c_simple(modes/shaders/common_hair_lib.glsl SRC) data_to_c_simple(modes/shaders/common_hair_refine_vert.glsl SRC) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [1d532325bd1] soc-2019-npr: LANPR: feature line modifier manual update
Commit: 1d532325bd160cfb08f8652e0c59e817583fc0cb Author: YimingWu Date: Sun Jun 23 14:28:29 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB1d532325bd160cfb08f8652e0c59e817583fc0cb LANPR: feature line modifier manual update === M source/blender/blenkernel/BKE_gpencil.h M source/blender/blenkernel/intern/gpencil.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index 8fc513d8a14..5b89c8bbadf 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -135,6 +135,8 @@ struct bGPDframe *BKE_gpencil_layer_getframe(struct bGPDlayer *gpl, struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int cframe); bool BKE_gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf); +struct bGPDlayer *BKE_gpencil_layer_get_index(struct bGPdata* gpd, int index, int first_if_not_found); + struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd); void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active); void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl); diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 8f900d21873..865a01d64c2 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -984,6 +984,30 @@ bGPDlayer *BKE_gpencil_layer_getactive(bGPdata *gpd) return NULL; } +bGPDlayer *BKE_gpencil_layer_get_index(bGPdata* gpd, int index, int first_if_not_found){ + bGPDlayer *gpl; + int i=0; + + /* error checking */ + if (ELEM(NULL, gpd, gpd->layers.first)) { +return NULL; + } + + /* loop over layers until found (assume only one active) */ + for (gpl = gpd->layers.first; gpl; gpl = gpl->next) { +if (i==index) { + return gpl; +} +i++; + } + + /* no such layer */ + if(first_if_not_found){ +return gpd->layers.first; + } + return NULL; +} + /* set the active gp-layer */ void BKE_gpencil_layer_setactive(bGPdata *gpd, bGPDlayer *active) { diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 756f6832eff..cc139152a17 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4261,32 +4261,49 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op) return OPERATOR_FINISHED; } -int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) -{ - Scene *scene = CTX_data_scene(C); - SceneLANPR *lanpr = >lanpr; + +void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, int frame){ Object *ob; Object *gpobj; ModifierData *md; bGPdata *gpd; bGPDlayer *gpl; bGPDframe *gpf; + CollectionObject* co; + CollectionChild* cc; - return; - // XXX this iteration will not work. try to get an object list. - for (ob = scene->collection->objects.first; ob; ob = ob->id.next) { -// TODO: Object visibility in render and viewport. + for(co = col->gobject.first;co;co=co->next){ +ob = co->ob; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_FeatureLine) { -FeatureLineModifierData *flmd = (FeatureLineModifierData *)flmd; +FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; if (flmd->target && flmd->target->type == OB_GPENCIL) { gpobj = flmd->target; gpd = gpobj->data; - // add strokes + gpl = BKE_gpencil_layer_get_index(gpd,flmd->layer,1); + if(!gpl){ +gpl = BKE_gpencil_layer_addnew(gpd,"lanpr_layer",true); + } + gpf = BKE_gpencil_frame_addnew(gpl,frame); + // add strokes, currently only once because object selection is broken now + lanpr_generate_gpencil_from_chain(md, dg, ob, gpl, gpf); + return; // immediately } } } } + for(cc=col->children.first;cc;cc=cc->next){ +lanpr_update_gp_strokes_recursive(dg, cc->collection,frame); + } +} +int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) +{ + Scene *scene = CTX_data_scene(C); + Depsgraph* dg = CTX_data_depsgraph(C); + SceneLANPR *lanpr = >lanpr; + int frame = scene->r.cfra; + + lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame); return OPERATOR_FINISHED; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dc61580638f] soc-2019-npr: LANPR: modifier controlled stroke generation is working. (only manual)
Commit: dc61580638ff5c9a3a91eaa03ffad56f01efc4e1 Author: YimingWu Date: Sun Jun 23 15:30:16 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBdc61580638ff5c9a3a91eaa03ffad56f01efc4e1 LANPR: modifier controlled stroke generation is working. (only manual) === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 95cfe3dd2e7..f8b844b58ba 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -264,6 +264,10 @@ void lanpr_generate_gpencil_from_chain( LANPR_RenderLineChainItem *rlci; for (rlc = rb->chains.first; rlc; rlc = (LANPR_RenderLineChain *)rlc->item.next) { +if(!rlc->object_ref) continue; //XXX: intersection lines are lost + +if(ob && ob!=rlc->object_ref->id.orig_id) continue; + int array_idx = 0; int count = lanpr_count_chain(rlc); bGPDstroke *gps = BKE_gpencil_add_stroke(gpf, color_idx, count, thickness); diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 5dfad61089f..849b161c8dc 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -214,6 +214,8 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb) rlc = lanpr_create_render_line_chain(rb); +rlc->object_ref = rl->object_ref; // can only be the same object in a chain. + int r1, r2, c1, c2, row, col; LANPR_RenderLine *new_rl = rl; LANPR_RenderVert *new_rv; @@ -600,6 +602,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb) break; for (cre = ba->linked_chains.first; cre; cre = next_cre) { next_cre = (LANPR_ChainRegisterEntry *)cre->item.next; +if (cre->rlc->object_ref!=rlc) continue; if (cre->rlc == rlc || ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion) continue; diff --git a/source/blender/draw/engines/lanpr/lanpr_data_types.h b/source/blender/draw/engines/lanpr/lanpr_data_types.h index 4be69b0c156..7feee82b020 100644 --- a/source/blender/draw/engines/lanpr/lanpr_data_types.h +++ b/source/blender/draw/engines/lanpr/lanpr_data_types.h @@ -113,7 +113,10 @@ typedef struct LANPR_RenderLine { // *MaterialRef; char min_occ; char flags; // also for line type determination on chainning + + // still need this entry because culled lines will not add to object reln node struct Object *object_ref; + int edge_idx; // for gpencil stroke modifier } LANPR_RenderLine; @@ -123,6 +126,7 @@ typedef struct LANPR_RenderLineChain { // int SegmentCount; // we count before draw cmd. float length; // calculated before draw cmd. char picked; // used when re-connecting + struct Object* object_ref; } LANPR_RenderLineChain; typedef struct LANPR_RenderLineChainItem { diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index cc139152a17..79e675d67d0 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -1464,10 +1464,6 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) if (rt->v[2]->fbcoord[3] < 0) In3 = 1; - rt->rl[0]->object_ref = o; - rt->rl[1]->object_ref = o; - rt->rl[2]->object_ref = o; - if (v_count > 60) { veln->element_count = v_count; veln = lanpr_new_cull_point_space64(rb); @@ -1542,6 +1538,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) rl->r = [0]; rl->tl = rt1; rt1->rl[1] = rl; +rl->object_ref = o; rl = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLine)); rls = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLineSegment)); @@ -1552,6 +1549,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) rl->tl = rt->rl[0]->tl == rt ? rt1 : rt->rl[0]->tl; rl->tr = rt->rl[0]->tr == rt ? rt1 : rt->rl[0]->tr; rt1->rl[0] = rl; +rl->object_ref = o; rl = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLine)); rls = mem_static_aquire(>render_data_pool, sizeof(LANPR_RenderLineSegment)); @@ -1562,6 +1560,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) rl->tl = rt->rl[2]->tl
[Bf-blender-cvs] [45074ae36f3] soc-2019-npr: LANPR: use "master style" instead of following contour style.
Commit: 45074ae36f38c3eeb8d0a0516f214322f6a93a4b Author: YimingWu Date: Mon Jun 24 09:23:50 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB45074ae36f38c3eeb8d0a0516f214322f6a93a4b LANPR: use "master style" instead of following contour style. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index ab0452556fd..75412dd46c8 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -813,7 +813,7 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): row.prop(active_layer, "enable_material_seperate", text="Material", toggle=True) row.prop(active_layer, "enable_intersection", text="Intersection", toggle=True) else: -layout.operator("scene.lanpr_enable_all_line_types",text='Set All') +row.prop(active_layer, "thickness", text="") split = layout.split(factor=0.3) col = split.column() col.prop(active_layer, "enable_contour", text="Contour", toggle=True) @@ -824,25 +824,25 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): col = split.column() row = col.row(align = True) #row.enabled = active_layer.enable_contour this is always enabled now -row.prop(active_layer, "color", text="") -row.prop(active_layer, "thickness", text="") +row.prop(active_layer, "contour_color", text="") +row.prop(active_layer, "thickness_contour", text="", slider=True) row = col.row(align = True) row.enabled = active_layer.enable_crease row.prop(active_layer, "crease_color", text="") -row.prop(active_layer, "thickness_crease", text="") +row.prop(active_layer, "thickness_crease", text="", slider=True) row = col.row(align = True) row.enabled = active_layer.enable_edge_mark -row.prop(active_layer, "crease_color", text="") -row.prop(active_layer, "thickness_edge_mark", text="") +row.prop(active_layer, "edge_mark_color", text="") +row.prop(active_layer, "thickness_edge_mark", text="", slider=True) row = col.row(align = True) row.enabled = active_layer.enable_material_seperate row.prop(active_layer, "material_color", text="") -row.prop(active_layer, "thickness_material", text="") +row.prop(active_layer, "thickness_material", text="", slider=True) row = col.row(align = True) if lanpr.enable_intersections: row.enabled = active_layer.enable_intersection row.prop(active_layer, "intersection_color", text="") -row.prop(active_layer, "thickness_intersection", text="") +row.prop(active_layer, "thickness_intersection", text="", slider=True) else: row.label(text= "Intersection Calculation Disabled") diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index f588e87a0b3..2c4ac186aa5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -311,14 +311,14 @@ static void lanpr_cache_init(void *vedata) stl->g_data->dpix_preview_shgrp, "edge_mask_tex", >dpix_in_edge_mask); DRW_shgroup_uniform_vec4( stl->g_data->dpix_preview_shgrp, "viewport", stl->g_data->dpix_viewport, 1); -DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "color", ll->color, 1); -DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "crease_color", ll->crease_color, 1); +DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "color", ll->use_same_style?ll->color:ll->contour_color, 1); +DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp, "crease_color", ll->use_same_
[Bf-blender-cvs] [f29cf28bab4] soc-2019-npr: LANPR: Fix pointer mistakes.
Commit: f29cf28bab4349e98f15d06f1b4ff370d003e72a Author: YimingWu Date: Mon Jun 24 16:15:39 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf29cf28bab4349e98f15d06f1b4ff370d003e72a LANPR: Fix pointer mistakes. === M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 32e0501c2b8..3cd915b9713 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -235,9 +235,8 @@ void lanpr_generate_gpencil_geometry( } void lanpr_generate_gpencil_from_chain( -GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) +Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) { - StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; Scene *scene = DEG_get_evaluated_scene(depsgraph); LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared; @@ -267,7 +266,7 @@ void lanpr_generate_gpencil_from_chain( if (!rlc->object_ref) continue; // XXX: intersection lines are lost -if (ob && ob != rlc->object_ref->id.orig_id) +if (ob && >id != rlc->object_ref->id.orig_id) continue; int array_idx = 0; diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h index 5703cc2e52e..82168e71942 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.h +++ b/source/blender/draw/engines/lanpr/lanpr_access.h @@ -14,7 +14,7 @@ void lanpr_generate_gpencil_geometry( GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf); void lanpr_generate_gpencil_from_chain( -GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf); +Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf); void lanpr_update_data_for_external(Depsgraph *depsgraph); diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 1e712ac72cf..efbd92413d0 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -602,7 +602,7 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int do_geometry_sp break; for (cre = ba->linked_chains.first; cre; cre = next_cre) { next_cre = (LANPR_ChainRegisterEntry *)cre->item.next; -if (cre->rlc->object_ref != rlc) +if (cre->rlc->object_ref != rlc->object_ref) continue; if (cre->rlc == rlc || ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion) @@ -644,6 +644,8 @@ void lanpr_connect_chains_image_space(LANPR_RenderBuffer *rb, int do_geometry_sp break; for (cre = ba->linked_chains.first; cre; cre = next_cre) { next_cre = (LANPR_ChainRegisterEntry *)cre->item.next; +if (cre->rlc->object_ref != rlc->object_ref) + continue; if (cre->rlc == rlc || ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion) continue; diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index be786b5829a..602a6fab6cc 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4312,7 +4312,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in gpf = BKE_gpencil_frame_addnew(gpl, frame); BKE_gpencil_free_strokes(gpf); // force clear now - lanpr_generate_gpencil_from_chain(md, dg, ob, gpl, gpf); + lanpr_generate_gpencil_from_chain(dg, ob, gpl, gpf); } } } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c index c3d4f930c88..c17b9c0d73d 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c @@ -84,7 +84,7 @@ static void copyData(const GpencilModifierData *md, GpencilModifierData *target) static void deformStroke( GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) { - lanpr_generate_gpencil_from_chain(md, depsgraph, ob, gpl, gpf); + lanpr_generate_gpencil_from_chain(depsgraph, ob, gpl, gpf); } static void bak
[Bf-blender-cvs] [6e1be5b09e8] soc-2019-npr: LANPR: removed GP Stroke modifier, Object modifier now only create visible strokes and follow level values.
Commit: 6e1be5b09e8d2b84399451aee6a88ae1a1a07c65 Author: YimingWu Date: Mon Jun 24 16:49:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB6e1be5b09e8d2b84399451aee6a88ae1a1a07c65 LANPR: removed GP Stroke modifier, Object modifier now only create visible strokes and follow level values. === M source/blender/blenkernel/BKE_gpencil_modifier.h M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/gpencil_modifiers/CMakeLists.txt M source/blender/gpencil_modifiers/MOD_gpencil_modifiertypes.h M source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c D source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/intern/rna_gpencil_modifier.c M source/blender/makesrna/intern/rna_modifier.c === diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h index d616c74520a..bb0db5d44a3 100644 --- a/source/blender/blenkernel/BKE_gpencil_modifier.h +++ b/source/blender/blenkernel/BKE_gpencil_modifier.h @@ -53,7 +53,7 @@ struct bGPDstroke; typedef enum { /* Should not be used, only for None modifier type */ - eGpencilModifierTypeType_None, + Type_None, /* grease pencil modifiers */ eGpencilModifierTypeType_Gpencil, diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 3cd915b9713..d1873e77b11 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -39,203 +39,8 @@ static BMVert *split_edge_and_move(BMesh *bm, BMEdge *edge, const float new_pos[ return vert; } -void lanpr_generate_gpencil_geometry( -GpencilModifierData *md, Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf) -{ - StrokeGpencilModifierData *gpmd = (StrokeGpencilModifierData *)md; - Scene *scene = DEG_get_evaluated_scene(depsgraph); - LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared; - - if (gpmd->object == NULL) { -printf("NULL object!\n"); -return; - } - - if (rb == NULL) { -printf("NULL LANPR rb!\n"); -return; - } - - int color_idx = 0; - int tot_points = 0; - short thickness = 1; - - float mat[4][4]; - - unit_m4(mat); - - BMesh *bm; - - bm = BKE_mesh_to_bmesh_ex(gpmd->object->data, -&(struct BMeshCreateParams){0}, -&(struct BMeshFromMeshParams){ -.calc_face_normal = true, -.cd_mask_extra = CD_MASK_ORIGINDEX, -}); - - // Split countour lines at occlution points and deselect occluded segment - LANPR_RenderLine *rl; - LANPR_RenderLineSegment *rls, *irls; - for (rl = rb->all_render_lines.first; rl; rl = (LANPR_RenderLine *)rl->item.next) { -BMEdge *e = BM_edge_at_index_find(bm, rl->edge_idx); -BMVert *v1 = e->v1; // Segment goes from v1 to v2 -BMVert *v2 = e->v2; - -BMVert *cur_vert = v1; -for (rls = rl->segments.first; rls; rls = (LANPR_RenderLineSegment *)rls->item.next) { - irls = (LANPR_RenderLineSegment *)rls->item.next; - - if (rls->occlusion != 0) { -BM_elem_flag_disable(cur_vert, BM_ELEM_SELECT); - } - - if (!irls) { -break; - } - - // safety reasons - CLAMP(rls->at, 0, 1); - CLAMP(irls->at, 0, 1); - - if (irls->at == 1.0f) { -if (irls->occlusion != 0) { - BM_elem_flag_disable(v2, BM_ELEM_SELECT); -} -break; - } - - float split_pos[3]; - - interp_v3_v3v3(split_pos, v1->co, v2->co, irls->at); - - cur_vert = split_edge_and_move(bm, e, split_pos); - - e = BM_edge_exists(cur_vert, v2); -} - } - - // Chain together strokes - BMVert *vert; - BMIter iter; - - BM_ITER_MESH (vert, , bm, BM_VERTS_OF_MESH) { - -// Have we already used this vert? -// if(!BM_elem_flag_test(vert, BM_ELEM_SELECT)){ -// continue; -//} - -BMVert *prepend_vert = NULL; -BMVert *next_vert = vert; -// Chain together the C verts and export them as GP strokes (chain in object space) -BMVert *edge_vert; -BMEdge *e; -BMIter iter_e; - -LinkNodePair chain = {NULL, NULL}; - -int connected_c_verts; - -while (next_vert != NULL) { - - connected_c_verts = 0; - vert = next_vert; - - BLI_linklist_append(, vert); -
[Bf-blender-cvs] [e3f606fa65c] soc-2019-npr: Merge remote-tracking branch 'origin/soc-2019-npr' into soc-2019-npr
Commit: e3f606fa65c9e8439cff468841aeed60dfade698 Author: YimingWu Date: Mon Jun 24 16:51:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBe3f606fa65c9e8439cff468841aeed60dfade698 Merge remote-tracking branch 'origin/soc-2019-npr' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5c7577f05b9] soc-2019-npr: LANPR: fix error in GPencilModifierType. allocate for GPencil weights.
Commit: 5c7577f05b9205ed0c12857f6288762919983e3e Author: YimingWu Date: Mon Jun 24 17:15:35 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB5c7577f05b9205ed0c12857f6288762919983e3e LANPR: fix error in GPencilModifierType. allocate for GPencil weights. === M source/blender/blenkernel/BKE_gpencil_modifier.h M source/blender/blenkernel/intern/gpencil.c === diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h index bb0db5d44a3..d616c74520a 100644 --- a/source/blender/blenkernel/BKE_gpencil_modifier.h +++ b/source/blender/blenkernel/BKE_gpencil_modifier.h @@ -53,7 +53,7 @@ struct bGPDstroke; typedef enum { /* Should not be used, only for None modifier type */ - Type_None, + eGpencilModifierTypeType_None, /* grease pencil modifiers */ eGpencilModifierTypeType_Gpencil, diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 40567ce7b9b..c6174ff0474 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1427,13 +1427,15 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps) /* ** */ +/* weight not working yet! */ static int stroke_march_next_point(bGPDstroke *gps, int next_point_index, float *current, float dist, float *result, float *pressure, - float *strength) + float *strength, + float* weight) { float remaining_till_next = 0.0f; float remaining_march = dist; @@ -1463,6 +1465,7 @@ static int stroke_march_next_point(bGPDstroke *gps, copy_v3_v3(result, >points[next_point_index]); *pressure = gps->points[next_point_index].pressure; *strength = gps->points[next_point_index].strength; +*weight = gps->dvert[next_point_index].dw->weight; return 0; } else { @@ -1484,6 +1487,7 @@ static int stroke_march_next_point(bGPDstroke *gps, bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) { bGPDspoint *pt = gps->points; + MDeformVert* dv = gps->dvert; int i; if (gps->totpoints < 2 || dist < FLT_EPSILON) @@ -1501,13 +1505,17 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) length += len_v3v3(last_coord, this_coord); } - int count = (int)(length / dist) + 10; // preserve some extra in case + int count = (int)(length / dist) + 2; // preserve some extra in case bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points_sampled"); + MDeformVert* new_dv; + if (gps->dvert != NULL) { +new_dv = MEM_callocN(gps->dvert, sizeof(*gps->dvert) * count); + } int next_point_index = 1; i = 0; - float pressure, strength; + float pressure, strength, weight; copy_v3_v3(last_coord, [0]); // 1st point copy_v3_v3(_pt[i], last_coord); @@ -1515,7 +1523,7 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) new_pt[i].strength = pt[0].strength; i++; while ((next_point_index = stroke_march_next_point( - gps, next_point_index, last_coord, dist, last_coord, , )) > -1) { + gps, next_point_index, last_coord, dist, last_coord, , , )) > -1) { copy_v3_v3(_pt[i], last_coord); new_pt[i].pressure = pressure; new_pt[i].strength = strength; @@ -1525,10 +1533,12 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) } gps->points = new_pt; + gps->dvert = new_dv; gps->totpoints = i; MEM_freeN(pt); // original + MEM_freeN(dv); gps->flag |= GP_STROKE_RECALC_GEOMETRY; gps->tot_triangles = 0; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [794da0fa14a] soc-2019-npr: GPENCIL: Sample function now handles weights as well.
Commit: 794da0fa14a336c455b341806614ce887361675b Author: YimingWu Date: Mon Jun 24 19:16:18 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB794da0fa14a336c455b341806614ce887361675b GPENCIL: Sample function now handles weights as well. === M source/blender/blenkernel/intern/gpencil.c === diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index c6174ff0474..e448b15fe86 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -1427,7 +1427,19 @@ void BKE_gpencil_dvert_ensure(bGPDstroke *gps) /* ** */ -/* weight not working yet! */ +MDeformVert* stroke_defvert_new_count(int totweight, int count) +{ + int i; + + MDeformVert* dst = MEM_mallocN(count * sizeof(MDeformVert),"new_deformVert"); + + for (i = 0; i < count; i++) { + dst[i].dw = MEM_mallocN(sizeof(MDeformWeight) * totweight, "new_deformWeight"); + } + + return dst; +} + static int stroke_march_next_point(bGPDstroke *gps, int next_point_index, float *current, @@ -1435,7 +1447,7 @@ static int stroke_march_next_point(bGPDstroke *gps, float *result, float *pressure, float *strength, - float* weight) + float* weights) { float remaining_till_next = 0.0f; float remaining_march = dist; @@ -1465,7 +1477,12 @@ static int stroke_march_next_point(bGPDstroke *gps, copy_v3_v3(result, >points[next_point_index]); *pressure = gps->points[next_point_index].pressure; *strength = gps->points[next_point_index].strength; -*weight = gps->dvert[next_point_index].dw->weight; +if(weights){ + for(int j=0;jdvert->totweight;j++){ +weights[j] = gps->dvert[next_point_index].dw[j].weight; + } +} + return 0; } else { @@ -1475,6 +1492,13 @@ static int stroke_march_next_point(bGPDstroke *gps, gps->points[next_point_index - 1].pressure, gps->points[next_point_index].pressure, ratio); *strength = interpf( gps->points[next_point_index - 1].strength, gps->points[next_point_index].strength, ratio); +if(weights){ + for(int j=0;jdvert->totweight;j++){ +weights[j] = interpf( +gps->dvert[next_point_index - 1].dw[j].weight, gps->dvert[next_point_index].dw[j].weight, ratio); + } +} + return next_point_index; } } @@ -1508,37 +1532,56 @@ bool BKE_gpencil_sample_stroke(bGPDstroke *gps, float dist) int count = (int)(length / dist) + 2; // preserve some extra in case bGPDspoint *new_pt = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points_sampled"); - MDeformVert* new_dv; + MDeformVert* new_dv=NULL; if (gps->dvert != NULL) { -new_dv = MEM_callocN(gps->dvert, sizeof(*gps->dvert) * count); +new_dv = stroke_defvert_new_count(gps->dvert->totweight, count); +new_dv->totweight = gps->dvert->totweight; +new_dv->flag = gps->dvert->flag; } int next_point_index = 1; i = 0; - float pressure, strength, weight; + float pressure, strength, *weights=NULL; + if(new_dv) +weights = MEM_callocN(sizeof(float)*gps->dvert->totweight,"gp_stroke_point_weights_sampled"); + + // 1st point is always at the start copy_v3_v3(last_coord, [0]); - // 1st point copy_v3_v3(_pt[i], last_coord); new_pt[i].pressure = pt[0].pressure; new_pt[i].strength = pt[0].strength; + if(new_dv){ +for(int j=0;jtotweight;j++){ + new_dv[i].dw[j].weight = gps->dvert->dw[j].weight; +} + } i++; + + // the rest while ((next_point_index = stroke_march_next_point( - gps, next_point_index, last_coord, dist, last_coord, , , )) > -1) { + gps, next_point_index, last_coord, dist, last_coord, , , weights)) > -1) { copy_v3_v3(_pt[i], last_coord); new_pt[i].pressure = pressure; new_pt[i].strength = strength; +if(new_dv){ + for(int j=0;jtotweight;j++){ +new_dv[i].dw[j].weight = weights[j]; + } +} i++; if (next_point_index == 0) break; // last point finished } - + gps->points = new_pt; - gps->dvert = new_dv; - gps->totpoints = i; - MEM_freeN(pt); // original - MEM_freeN(dv); + + if(new_dv){ +BKE_gpencil_free_stroke_weights(gps); +gps->dvert = new_dv; +MEM_freeN(weights); + } gps->flag |= GP_STROKE_RECALC_GEOMETRY; gps->tot_triangles = 0; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [1243299bee0] soc-2019-npr: LANPR: Added collection properties.
Commit: 1243299bee0be7225c673aaad55f93f4ab1d5d40 Author: YimingWu Date: Tue Jun 18 18:28:36 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB1243299bee0be7225c673aaad55f93f4ab1d5d40 LANPR: Added collection properties. === M release/scripts/startup/bl_ui/properties_view_layer.py M source/blender/makesdna/DNA_collection_types.h M source/blender/makesrna/intern/rna_collection.c === diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py index 121b8f2f401..2ebe55c65d5 100644 --- a/release/scripts/startup/bl_ui/properties_view_layer.py +++ b/release/scripts/startup/bl_ui/properties_view_layer.py @@ -82,10 +82,25 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel): col = flow.column() col.prop(view_layer, "use_pass_subsurface_color", text="Subsurface Color") +class VIEWLAYER_PT_lanpr_collection(ViewLayerButtonsPanel, Panel): +bl_label = "Collection LANPR" + +@classmethod +def poll(cls, context): +return context.scene.lanpr.enabled + +def draw(self,context): +layout = self.layout +collection = context.collection +row = layout.row() +row.prop(collection.lanpr,"usage",expand=True) +if collection.lanpr.usage!='INCLUDE': +layout.prop(collection.lanpr,"force") classes = ( VIEWLAYER_PT_layer, VIEWLAYER_PT_eevee_layer_passes, +VIEWLAYER_PT_lanpr_collection, ) if __name__ == "__main__": # only for live edit. diff --git a/source/blender/makesdna/DNA_collection_types.h b/source/blender/makesdna/DNA_collection_types.h index c7f3ef4156d..9b72217a37a 100644 --- a/source/blender/makesdna/DNA_collection_types.h +++ b/source/blender/makesdna/DNA_collection_types.h @@ -43,6 +43,19 @@ typedef struct CollectionChild { struct Collection *collection; } CollectionChild; +typedef struct CollectionLANPR{ + short usage; + short force;/* force objects with LANPR modifier follow the rule */ + char _pad[4]; +}CollectionLANPR; + +/* CollectionLANPR->mode */ +enum { + COLLECTION_LANPR_INCLUDE = 0, + COLLECTION_LANPR_OCCLUSION_ONLY = 1, + COLLECTION_LANPR_EXCLUDE = 2, +}; + typedef struct Collection { ID id; @@ -59,6 +72,9 @@ typedef struct Collection { short flag; char _pad[6]; + /** LANPR engine specific */ + CollectionLANPR lanpr; + /* Runtime. Cache of objects in this collection and all its * children. This is created on demand when e.g. some physics * simulation needs it, we don't want to have it for every diff --git a/source/blender/makesrna/intern/rna_collection.c b/source/blender/makesrna/intern/rna_collection.c index 5a37c4c0e6f..7bd55f58a64 100644 --- a/source/blender/makesrna/intern/rna_collection.c +++ b/source/blender/makesrna/intern/rna_collection.c @@ -365,6 +365,32 @@ static void rna_def_collection_children(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); } +static void rna_def_collection_lanpr(BlenderRNA *brna,StructRNA *srna) +{ + PropertyRNA *prop; + + static const EnumPropertyItem rna_collection_lanpr_usage[] = { +{0, "INCLUDE", 0, "Include", "Include the collection into LANPR calculation"}, +{1, "OCCLUSION_ONLY", 0, "Occlusion Only", "Only use the collction to produce occlusion"}, +{2, "EXCLUDE", 0, "Exclude", "Don't use this collection in LANPR"}, +{0, NULL, 0, NULL, NULL}}; + + srna = RNA_def_struct(brna, "CollectionLANPR", NULL); + RNA_def_struct_sdna(srna, "CollectionLANPR"); + RNA_def_struct_ui_text(srna, "Collection LANPR Usage", "LANPR usage for this collection"); + + prop = RNA_def_property(srna, "usage", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, rna_collection_lanpr_usage); + RNA_def_property_enum_default(prop, 0); + RNA_def_property_ui_text(prop, "Usage", "How to use this collection in LANPR"); + RNA_def_property_update(prop, NC_SCENE, NULL); + + prop = RNA_def_property(srna, "force", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_default(prop, 0); + RNA_def_property_ui_text(prop, "Force", "Force object who has LANPR modifiers to follow the rule"); + +} + void RNA_def_collections(BlenderRNA *brna) { StructRNA *srna; @@ -457,6 +483,11 @@ void RNA_def_collections(BlenderRNA *brna) RNA_def_property_ui_icon(prop, ICON_RESTRICT_RENDER_OFF, -1); RNA_def_property_ui_text(prop, "Disable in Renders", "Globally disable in renders"); RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, "rna_Collectio
[Bf-blender-cvs] [7cb674d5211] soc-2019-npr: LANPR: make format
Commit: 7cb674d5211c5f5fa04e9aa618dbb562ff812e48 Author: YimingWu Date: Mon Jun 17 15:08:06 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB7cb674d5211c5f5fa04e9aa618dbb562ff812e48 LANPR: make format === M intern/ghost/intern/GHOST_ContextCGL.mm M intern/ghost/intern/GHOST_SystemCocoa.mm M source/blender/blenkernel/intern/scene.c M source/blender/draw/engines/lanpr/lanpr_access.c M source/blender/draw/engines/lanpr/lanpr_access.h M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_data_types.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_snake.c M source/blender/draw/intern/draw_manager.c M source/blender/gpencil_modifiers/intern/MOD_gpencilbackbonestretch.c M source/blender/gpencil_modifiers/intern/MOD_gpencilstroke.c M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/intern/MOD_featureline.c === diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm b/intern/ghost/intern/GHOST_ContextCGL.mm index 12c340ffe97..0fca41306a6 100644 --- a/intern/ghost/intern/GHOST_ContextCGL.mm +++ b/intern/ghost/intern/GHOST_ContextCGL.mm @@ -34,7 +34,8 @@ static void ghost_fatal_error_dialog(const char *msg) { - @autoreleasepool { + @autoreleasepool + { NSString *message = [NSString stringWithFormat:@"Error opening window:\n%s", msg]; NSAlert *alert = [[NSAlert alloc] init]; @@ -337,7 +338,8 @@ static const OSType METAL_CORE_VIDEO_PIXEL_FORMAT = kCVPixelFormatType_32BGRA; void GHOST_ContextCGL::metalInit() { - @autoreleasepool { + @autoreleasepool + { id device = m_metalLayer.device; // Create a command queue for blit/present operation @@ -532,7 +534,8 @@ void GHOST_ContextCGL::metalUpdateFramebuffer() void GHOST_ContextCGL::metalSwapBuffers() { - @autoreleasepool { + @autoreleasepool + { updateDrawingContext(); glFlush(); diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index 376ebfa2a21..80a521a7ca5 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -1358,7 +1358,8 @@ bool GHOST_SystemCocoa::handleOpenDocumentRequest(void *filepathStr) // Check open windows if some changes are not saved if (m_windowManager->getAnyModifiedState()) { -@autoreleasepool { +@autoreleasepool +{ NSAlert *alert = [[NSAlert alloc] init]; NSString *title = [NSString stringWithFormat:@"Opening %@", [filepath lastPathComponent]]; NSString *text = @"Current document has not been saved.\nDo you really want to proceed?"; diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index fdbc7883dd1..605dca003db 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -338,8 +338,7 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons /* lanpr data */ - lanpr_copy_data(sce_src,sce_dst); - + lanpr_copy_data(sce_src, sce_dst); } Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index fb3b34d7b35..50abf53bbd2 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -290,44 +290,46 @@ void lanpr_update_data_for_external(Depsgraph *depsgraph) SceneLANPR *lanpr = >lanpr; if (lanpr->master_mode != LANPR_MASTER_MODE_SOFTWARE) return; - if (!lanpr_share.render_buffer_shared || lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) { + if (!lanpr_share.render_buffer_shared || + lanpr_share.render_buffer_shared->cached_for_frame != scene->r.cfra) { lanpr_compute_feature_lines_internal(depsgraph, lanpr, scene); } } -void lanpr_copy_data(Scene* from, Scene* to){ - SceneLANPR *lanpr= >lanpr; - LANPR_RenderBuffer* rb = lanpr_share.render_buffer_shared, *new_rb; - LANPR_LineLayer* ll,*new_ll; - LANPR_LineLayerComponent* llc,*new_llc; +void lanpr_copy_data(Scene *from, Scene *to) +{ + SceneLANPR *lanpr = >lanpr; + LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared, *new_rb; + LANPR_LineLayer *ll, *new_ll; + LANPR_LineLayerComponent *llc, *new_llc; list_handle_empty(>lanpr.line_layers); - for (ll = lanpr->line_layers.first;ll;ll=ll->next){ -new_ll = MEM_callocN(sizeof(L
[Bf-blender-cvs] [915a928067a] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 915a928067a89923fab144ca4a7ca2e75337a5e8 Author: YimingWu Date: Mon Jun 17 14:58:39 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB915a928067a89923fab144ca4a7ca2e75337a5e8 Merge branch 'master' into soc-2019-npr === === diff --cc source/blender/makesrna/intern/rna_scene.c index a126b880ea4,408282c5201..86ca1e21bb3 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -7123,290 -7071,9 +7123,290 @@@ static void rna_def_scene_eevee(Blender "internal render buffers"); RNA_def_property_range(prop, 0.0f, 50.0f); RNA_def_property_ui_range(prop, 0.0f, 10.0f, 1, 2); - RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC); + RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY); } +static void rna_def_scene_lanpr(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static const EnumPropertyItem DEBUG_rna_enum_lanpr_reload[] = { + {0, "IDLE", 0, "Idle", "Idle"}, + {1, "RELOAD", 0, "RELOAD", "Force reload the scene"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem rna_enum_lanpr_master_mode[] = { + {LANPR_MASTER_MODE_SOFTWARE, "SOFTWARE", 0, "Software", "Software edge calculation"}, + {LANPR_MASTER_MODE_DPIX, "DPIX", 0, "DPIX", "DPIX GPU edge calculation"}, + {LANPR_MASTER_MODE_SNAKE, "SNAKE", 0, "Snake", "Image filter and GPU tracing method"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem rna_enum_lanpr_enable_post_processing[] = { + {LANPR_POST_PROCESSING_DISABLED, + "DISABLED", + 0, + "Disabled", + "LANPR does not compute anything"}, + {LANPR_POST_PROCESSING_ENABLED, + "ENABLED", + 0, + "Enabled", + "LANPR will compute feature lines in image post processing"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem rna_enum_lanpr_display_thinning_result[] = { + {LANPR_POST_PROCESSING_DISABLED, + "DISABLED", + 0, + "Edge Detection", + "Display edge detector result"}, + {LANPR_POST_PROCESSING_ENABLED, + "ENABLED", + 0, + "Thinning", + "Apply thinning filters for vector usage"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem rna_enum_lanpr_use_same_taper[] = { + {LANPR_USE_DIFFERENT_TAPER, "DISABLED", 0, "Different", "Use different taper value"}, + {LANPR_USE_SAME_TAPER, + "ENABLED", + 0, + "Same", + "Use same taper value for both sides of the line"}, + {0, NULL, 0, NULL, NULL}}; + + static const EnumPropertyItem rna_enum_lanpr_enable_tip_extend[] = { + {LANPR_DISABLE_TIP_EXTEND, "DISABLED", 0, "Disable", "Do not extend curve tips"}, + {LANPR_ENABLE_TIP_EXTEND, + "ENABLED", + 0, + "Enable", + "Extend curve tips to a user specified length"}, + {0, NULL, 0, NULL, NULL}}; + + srna = RNA_def_struct(brna, "SceneLANPR", NULL); + RNA_def_struct_sdna(srna, "SceneLANPR"); + RNA_def_struct_ui_text(srna, "Scene LANPR Config", "LANPR global config"); + + prop = RNA_def_property(srna, "reloaded", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, DEBUG_rna_enum_lanpr_reload); + RNA_def_property_enum_default(prop, 0); + RNA_def_property_ui_text(prop, "Reload", "Reload the scene"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_update(prop, NC_SCENE, NULL); + + prop = RNA_def_property(srna, "master_mode", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, rna_enum_lanpr_master_mode); + RNA_def_property_enum_default(prop, LANPR_MASTER_MODE_DPIX); + RNA_def_property_ui_text(prop, "Master Mode", "Choose calculation mode for NPR Line"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_update(prop, NC_SCENE, NULL); + + prop = RNA_def_property(srna, "enable_vector_trace", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, rna_enum_lanpr_enable_post_processing); + RNA_def_property_enum_default(prop, LANPR_POST_PROCESSING_DISABLED); + RNA_def_property_ui_text( + prop, "Enable Post Processing", "Draw image post processing line or not"); + RNA_def_property
[Bf-blender-cvs] [fe71389950a] soc-2019-npr: LANPR: Object modifier for line selection (not functional yet)
Commit: fe71389950aa611aac12cc88bdc965363dbcdc7d Author: YimingWu Date: Mon Jun 17 14:50:34 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBfe71389950aa611aac12cc88bdc965363dbcdc7d LANPR: Object modifier for line selection (not functional yet) === M release/datafiles/locale M release/scripts/addons M release/scripts/addons_contrib M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/makesdna/DNA_modifier_types.h M source/blender/makesrna/RNA_access.h M source/blender/makesrna/intern/rna_modifier.c M source/blender/modifiers/CMakeLists.txt M source/blender/modifiers/MOD_modifiertypes.h A source/blender/modifiers/intern/MOD_featureline.c M source/blender/modifiers/intern/MOD_util.c M source/tools === diff --git a/release/datafiles/locale b/release/datafiles/locale index 469c949d1ca..ad82c4ce43e 16 --- a/release/datafiles/locale +++ b/release/datafiles/locale @@ -1 +1 @@ -Subproject commit 469c949d1ca882be19daa128842f813b72a944d8 +Subproject commit ad82c4ce43ef2801ef51e75af1f9702992478b02 diff --git a/release/scripts/addons b/release/scripts/addons index c88411ff777..8e6f485cf5b 16 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611 +Subproject commit 8e6f485cf5b160c425d7da7c743879b20f3d6a96 diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib index 310578043de..7077ff07384 16 --- a/release/scripts/addons_contrib +++ b/release/scripts/addons_contrib @@ -1 +1 @@ -Subproject commit 310578043dec1aae382eb6a447ae1d103792d7e6 +Subproject commit 7077ff07384491d1f7630484995557f1c7302dae diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 687d41a4d44..3f215ab7f31 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1666,6 +1666,33 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col.prop(md, "thresh", text="Threshold") col.prop(md, "face_influence") +def FEATURE_LINE(self, layout, ob, md): +layout.label(text='Not operational yet') +layout.label(text='Usage:') +row = layout.row() +row.prop(md,'usage',expand=True) +if md.usage == 'INCLUDE': +layout.label(text='Enable Types:') +row = layout.row(align=True) +row.prop(md,'enable_contour',toggle=True) +row.prop(md,'enable_crease',toggle=True) +row.prop(md,'enable_mark',toggle=True) +row.prop(md,'enable_material',toggle=True) +row.prop(md,'enable_intersection',toggle=True) +row.prop(md,'enable_modifier_mark',toggle=True) +layout.label(text='Result GP:') +layout.prop(md,'target') +layout.prop(md,'replace') + +row = layout.row() +row.prop(md,'layer') +row.prop(md,'material') + +row = layout.row(align=True) +row.prop(md,'use_multiple_levels', icon='GP_MULTIFRAME_EDITING', icon_only=True) +row.prop(md,'level_begin') +if md.use_multiple_levels: +row.prop(md,'level_end') class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): bl_label = "Modifiers" diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 54d4a6a7af4..0167e9bbafe 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -89,6 +89,7 @@ typedef enum ModifierType { eModifierType_SurfaceDeform = 53, eModifierType_WeightedNormal = 54, eModifierType_MyBMesh = 55, + eModifierType_FeatureLine = 56, NUM_MODIFIER_TYPES, } ModifierType; @@ -1967,4 +1968,44 @@ enum { MOD_MYBMESH_OPTI = (1 << 7), }; +typedef struct FeatureLineModifierData { + ModifierData modifier; + + int usage; + int types; //eFeatureLine_TypeFlag + + struct Object *target; + int replace; + int layer; + int material; + + int use_multiple_levels; + int level_begin; + int level_end; + +} FeatureLineModifierData; + +enum eFeatureLine_Usage { + MOD_FEATURE_LINE_INCLUDE = 0, + MOD_FEATURE_LINE_OCCLUSION_ONLY = (1<<0), + MOD_FEATURE_LINE_EXCLUDE = (1<<1), +}; + +enum eFeatureLine_TypeFlag { + MOD_FEATURE_LINE_NONE = (1<<0), + MOD_FEATURE_LINE_CONTOUR = (1<<1), + MOD_FEATURE_LINE_CREASE = (1<<2), + MOD_FEATURE_LINE_MARK = (1<<3), + MOD_FEATURE_LINE_MATERIAL = (1<<4), + MOD_FEATURE_LINE_INTERSECTION = (1<<5), + MOD_FEATURE_LINE_MODIFIER_MARK = (1<<6) +};
[Bf-blender-cvs] [abf50bc1db2] soc-2019-npr: Merge branch 'master' into soc-2018-npr
Commit: abf50bc1db2f2e703dd8a1a602b3fe6dd05a304c Author: YimingWu Date: Sat May 18 19:41:40 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBabf50bc1db2f2e703dd8a1a602b3fe6dd05a304c Merge branch 'master' into soc-2018-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5b6b741ec00] soc-2019-npr: Disable rendering of the orginal scene in the script.
Commit: 5b6b741ec00ad27ea8f935b5d6f8573ad3e41c0f Author: YimingWu Date: Sat May 18 21:01:29 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB5b6b741ec00ad27ea8f935b5d6f8573ad3e41c0f Disable rendering of the orginal scene in the script. === M release/scripts/startup/bl_operators/lanpr.py === diff --git a/release/scripts/startup/bl_operators/lanpr.py b/release/scripts/startup/bl_operators/lanpr.py index 6e89542a08a..3c5b484855e 100644 --- a/release/scripts/startup/bl_operators/lanpr.py +++ b/release/scripts/startup/bl_operators/lanpr.py @@ -221,7 +221,8 @@ class LANPR_render_composited(bpy.types.Operator): while True : -lanpr_render_backdrop_first(bpy.context.scene) +#Seems that backdrop is now rendered ever time? +#lanpr_render_backdrop_first(bpy.context.scene) lanpr_render_this_scene_next(bpy.context.scene) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [a640228d922] soc-2019-npr: Added support structure for material controlled line style.
Commit: a640228d92273154acc644d525b095b5318c248b Author: YimingWu Date: Sun May 19 14:37:03 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBa640228d92273154acc644d525b095b5318c248b Added support structure for material controlled line style. Also with a primitive UI. === A bvhtree A mesh M release/scripts/startup/bl_ui/properties_material.py M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/makesdna/DNA_material_types.h M source/blender/makesrna/intern/rna_material.c A v A x === diff --git a/bvhtree b/bvhtree new file mode 100644 index 000..e69de29bb2d diff --git a/mesh b/mesh new file mode 100644 index 000..e69de29bb2d diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index dde67e27f37..f741c7782c9 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -200,6 +200,27 @@ class EEVEE_MATERIAL_PT_volume(MaterialButtonsPanel, Panel): panel_node_draw(layout, mat.node_tree, 'OUTPUT_MATERIAL', "Volume") +class EEVEE_MATERIAL_PT_lines(MaterialButtonsPanel, Panel): +bl_label = "Lines" +bl_context = "material" +COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_LANPR'} + +def draw_header(self, context): +layout = self.layout +mat = context.material +layout.prop(mat, "enable_lines", text="") + +def draw(self, context): +layout = self.layout +mat = context.material + +if mat.enable_lines: +layout.label(text="Transparency") +layout.prop(mat,"mask_layers_count", expand=True) +layout.label(text="Customization") +layout.template_list("LANPR_linesets", "", mat, "line_layers", mat.line_layers, "active_layer_index", rows=1) +else: +layout.prop(mat, "exclude_line_geometry", toggle=True) class EEVEE_MATERIAL_PT_settings(MaterialButtonsPanel, Panel): bl_label = "Settings" @@ -258,6 +279,7 @@ classes = ( EEVEE_MATERIAL_PT_context_material, EEVEE_MATERIAL_PT_surface, EEVEE_MATERIAL_PT_volume, +EEVEE_MATERIAL_PT_lines, EEVEE_MATERIAL_PT_settings, MATERIAL_PT_viewport, MATERIAL_PT_custom_props, diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 7ba0687add5..a1e0fe92afb 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -434,9 +434,9 @@ typedef struct LANPR_RenderElementLinkNode { typedef struct LANPR_RenderLineSegment { nListItem Item; - //real Begin, End; // 0->At[L] 1->At[R] - real at; - u8bit OcclusionLevel;//after + real at; // at==0: leftat==1: right + u8bit OcclusionLevel;// after "at" point + short MaterialMaskMark; // e.g. to determine lines beind a glass window material. }LANPR_RenderLineSegment; typedef struct LANPR_RenderVert { @@ -469,7 +469,7 @@ typedef struct LANPR_RenderLine { struct LANPR_RenderTriangle *TL, *TR; ListBase Segments; //tnsEdge* Edge;//should be edge material - //tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads] + //tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads] struct Materil *MaterialRef; char MinOcclude; char Flags; // also for line type determination on chainning struct Object *ObjectRef; diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h index d65a4896758..58f641fada9 100644 --- a/source/blender/makesdna/DNA_material_types.h +++ b/source/blender/makesdna/DNA_material_types.h @@ -27,6 +27,7 @@ #include "DNA_defs.h" #include "DNA_ID.h" #include "DNA_listBase.h" +#include "DNA_lanpr_types.h" #ifndef MAX_MTEX # define MAX_MTEX 18 @@ -136,6 +137,14 @@ typedef enum eMaterialGPencilStyle_Mode { GP_STYLE_MODE_BOX = 2, /* rectangles */ } eMaterialGPencilStyle_Mode; +typedef enum eMaterialLANPRMaskLayerCount { + LANPR_MASK_NONE = 0, + LANPR_MASK_ONE = 1, + LANPR_MASK_TWO = 2, + LANPR_MASK_THREE = 3, + LANPR_MASK_FOUR =4, +} eMaterialLANPRMaskLayerCount; + typedef struct Material { ID id; /** Animation data (must be immediately after id for utilities to use it). */ @@ -176,6 +185,14 @@ typedef struct Material { short line_priority; short vcol_alpha; + /* lanpr settings */ + charmask_layers_count; + charexclude
[Bf-blender-cvs] [2753611c4e2] soc-2018-npr: Merge branch 'master' into soc-2018-npr
Commit: 2753611c4e2482885021416f1b2af46250fd09dd Author: YimingWu Date: Mon May 6 10:09:12 2019 +0800 Branches: soc-2018-npr https://developer.blender.org/rB2753611c4e2482885021416f1b2af46250fd09dd Merge branch 'master' into soc-2018-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [6b179c7f865] soc-2019-npr: LANPR: Image chaining threshold set higher bound.
Commit: 6b179c7f86536918bb4d58104d517c50a38ac48c Author: YimingWu Date: Wed Jul 3 17:06:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB6b179c7f86536918bb4d58104d517c50a38ac48c LANPR: Image chaining threshold set higher bound. === M source/blender/makesrna/intern/rna_scene.c === diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index ecca0a51fd6..c75b289e434 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7396,8 +7396,8 @@ static void rna_def_scene_lanpr(BlenderRNA *brna) prop, "Image Threshold", "Segments where their image distance between them lower than this will be chained together"); - RNA_def_property_ui_range(prop, 0.0f, 0.1f, 0.001, 4); - RNA_def_property_range(prop, 0.0f, 0.1f); + RNA_def_property_ui_range(prop, 0.0f, 0.3f, 0.001, 4); + RNA_def_property_range(prop, 0.0f, 0.3f); /* here's the collection stuff */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [caa004c6bc3] soc-2019-npr: LANPR: GP update will now delete data in the original frame.
Commit: caa004c6bc3545bee0fcae3eef78e7f6587db2f2 Author: YimingWu Date: Wed Jul 3 14:33:37 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBcaa004c6bc3545bee0fcae3eef78e7f6587db2f2 LANPR: GP update will now delete data in the original frame. === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_gpencil_types.h === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 8d2c201aaa4..bb4586e6e3a 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -1708,7 +1708,8 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): row.label(text = "Target GP has self transformations.") row = layout.row() row.operator("lanpr.reset_object_transfromations").obj=md.target.name -layout.prop(md,'replace', text='Replace existing frames') +#remove this for now. +#layout.prop(md,'replace', text='Replace existing frames') row = layout.row() row.prop(md,'layer') row.prop(md,'material') diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 5d03c482297..e13c3f81fbd 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4517,6 +4517,27 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op) return OPERATOR_FINISHED; } +void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame) +{ + DEG_OBJECT_ITER_BEGIN (dg, + o, + DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | DEG_ITER_OBJECT_FLAG_VISIBLE | + DEG_ITER_OBJECT_FLAG_DUPLI | DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET) { +if (o->type == OB_GPENCIL) { + bGPdata *gpd = ((Object *)o->id.orig_id)->data; + bGPDlayer *gpl; + for (gpl = gpd->layers.first; gpl; gpl = gpl->next) { +bGPDframe *gpf = BKE_gpencil_layer_find_frame(gpl, frame); +if (!gpf) { + continue; +} +gpf->flag &= ~GP_FRAME_LANPR_CLEARED; + } +} + } + DEG_OBJECT_ITER_END; +} + void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, int frame) { Object *ob; @@ -4541,8 +4562,11 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true); } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); - /* BKE_gpencil_free_strokes(gpf); will be overwritten. need another solution */ - /* Please manually delete those strokes before clicking Update once again. */ + + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { +BKE_gpencil_free_strokes(gpf); +gpf->flag |= GP_FRAME_LANPR_CLEARED; + } lanpr_generate_gpencil_from_chain(dg, ob, @@ -4591,8 +4615,11 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i gpl = BKE_gpencil_layer_addnew(gpd, "lanpr_layer", true); } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); - /* BKE_gpencil_free_strokes(gpf); will be overwritten. need another solution */ - /* Please manually delete those strokes before clicking Update once again. */ + + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { +BKE_gpencil_free_strokes(gpf); +gpf->flag |= GP_FRAME_LANPR_CLEARED; + } lanpr_generate_gpencil_from_chain(dg, NULL, @@ -4613,7 +4640,8 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) SceneLANPR *lanpr = >lanpr; int frame = scene->r.cfra; - if (lanpr_share.render_buffer_shared->cached_for_frame != frame) { + if (!lanpr_share.render_buffer_shared || + lanpr_share.render_buffer_shared->cached_for_frame != frame) { lanpr_compute_feature_lines_internal(dg, 0); } @@ -4623,6 +4651,8 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame); + lanpr_clear_gp_lanpr_flags(dg, frame); + WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED | ND_SPACE_PROPERTIES, NULL); return OPERATOR_FINISHED; diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index dbcacbcdcfe..b2a50598567 100644 --- a/source/blender/makesdna/
[Bf-blender-cvs] [1aa8870b955] soc-2019-npr: Gpencil: Length modifier now handles relative lengths
Commit: 1aa8870b95575d2da3919dff12dc002589d577ec Author: YimingWu Date: Wed Jul 3 15:08:44 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB1aa8870b95575d2da3919dff12dc002589d577ec Gpencil: Length modifier now handles relative lengths === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/blenkernel/BKE_gpencil.h M source/blender/blenkernel/intern/gpencil.c M source/blender/gpencil_modifiers/intern/MOD_gpencillength.c M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesrna/intern/rna_gpencil_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index bb4586e6e3a..81ee8a3dc37 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2340,8 +2340,14 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): col.prop(md, "length") def GP_LENGTH(self, layout, ob, md): -col = layout.column() +sp = layout.split() +col = sp.column() +col.label(text="Absolute:") col.prop(md, "length") + +col = sp.column() +col.label(text="Relative:") +col.prop(md, "percentage") def GP_MULTIPLY(self, layout, ob, md): sp = layout.split(factor = 0.5) diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h index 4f33fdae421..461e03bcd38 100644 --- a/source/blender/blenkernel/BKE_gpencil.h +++ b/source/blender/blenkernel/BKE_gpencil.h @@ -212,6 +212,7 @@ void BKE_gpencil_stroke_2d_flat_ref(const struct bGPDspoint *ref_points, float (*points2d)[2], const float scale, int *r_direction); +float BKE_gpencil_stroke_length(const struct bGPDstroke *gps, bool use_3d); void BKE_gpencil_transform(struct bGPdata *gpd, float mat[4][4]); diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c index 889d73571dd..91aad469f67 100644 --- a/source/blender/blenkernel/intern/gpencil.c +++ b/source/blender/blenkernel/intern/gpencil.c @@ -2376,6 +2376,28 @@ void BKE_gpencil_stroke_2d_flat_ref(const bGPDspoint *ref_points, *r_direction = (int)locy[2]; } +float BKE_gpencil_stroke_length(const bGPDstroke *gps, bool use_3d) +{ + if (!gps->points || gps->totpoints < 2) { +return 0; + } + float *last_pt = >points[0].x; + int i; + bGPDspoint *pt; + float total_length = 0; + for (i = 1; i < gps->totpoints; i++) { +pt = >points[i]; +if (use_3d) { + total_length += len_v3v3(>x, last_pt); +} +else { + total_length += len_v2v2(>x, last_pt); +} +last_pt = >x; + } + return total_length; +} + /** * Trim stroke to the first intersection or loop * \param gps: Stroke data diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c index a3ae26efbbf..25a411908fe 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillength.c @@ -76,7 +76,7 @@ static void copyData(const GpencilModifierData *md, GpencilModifierData *target) BKE_gpencil_modifier_copyData_generic(md, target); } -static void deformStroke(bGPDstroke *gps, float length) +static void stretchOrShrinkStroke(bGPDstroke *gps, float length) { if (length > 0) { BKE_gpencil_stretch_stroke(gps, length); @@ -86,6 +86,20 @@ static void deformStroke(bGPDstroke *gps, float length) } } +static void deformStroke(bGPDstroke *gps, float length, float percentage) +{ + + stretchOrShrinkStroke(gps, length); + + float len = BKE_gpencil_stroke_length(gps, 1); + if (len < FLT_EPSILON) { +return; + } + float length2 = len * percentage; + + stretchOrShrinkStroke(gps, length2); +} + static void bakeModifier(Main *UNUSED(bmain), Depsgraph *depsgraph, GpencilModifierData *md, @@ -99,7 +113,7 @@ static void bakeModifier(Main *UNUSED(bmain), LengthGpencilModifierData *lmd = (LengthGpencilModifierData *)md; bGPDstroke *gps; for (gps = gpf->strokes.first; gps; gps = gps->next) { -deformStroke(gps, lmd->length); +deformStroke(gps, lmd->length, lmd->percentage); } return; } @@ -115,7 +129,7 @@ static void generateStrokes( LengthGpencilModifierData *lmd = (LengthGpencilModifierData *)md; bGPDstroke *gps; for (gps = gpf->strokes.first; gps; gps = gps->next) { -deformSt
[Bf-blender-cvs] [a44d39800b7] soc-2019-npr: Gpencil: Duplication modifier is working now.
Commit: a44d39800b7f8e8341c9fc8564996d29c7795af2 Author: YimingWu Date: Wed Jul 3 16:49:23 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBa44d39800b7f8e8341c9fc8564996d29c7795af2 Gpencil: Duplication modifier is working now. === M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c === diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index d05b83875fc..b90cdf9060e 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -68,7 +68,9 @@ static void initData(GpencilModifierData *md) { - MultiplyGpencilModifierData *gpmd = (MultiplyGpencilModifierData *)md; + MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md; + mmd->distance = 0.5; + mmd->split_angle = 1.0f; } static void copyData(const GpencilModifierData *md, GpencilModifierData *target) @@ -99,8 +101,82 @@ static void splitStroke(bGPDframe *gpf, bGPDstroke *gps, float split_angle) } } -static void duplicateStroke(bGPDstroke *gps, int count, float dist, float offsset) +static void minter_v3_v3v3v3_ref( +float *result, float *left, float *middle, float *right, float *stroke_normal) { + float left_arm[3], right_arm[3], inter1[3], inter2[3]; + float minter[3]; + if (left) { +sub_v3_v3v3(left_arm, middle, left); +cross_v3_v3v3(inter1, stroke_normal, left_arm); + } + if (right) { +sub_v3_v3v3(right_arm, right, middle); +cross_v3_v3v3(inter2, stroke_normal, right_arm); + } + if (!left) { +normalize_v3(inter2); +copy_v3_v3(result, inter2); +return; + } + + if (!right) { +normalize_v3(inter1); +copy_v3_v3(result, inter1); +return; + } + + interp_v3_v3v3(minter, inter1, inter2, 0.5); + normalize_v3(minter); + copy_v3_v3(result, minter); +} + +static void duplicateStroke( +bGPDframe *gpf, bGPDstroke *gps, int count, float dist, float offset, ListBase *results) +{ + int i; + bGPDstroke *new_gps; + float stroke_normal[3]; + float minter[3]; + float target1[3], target2[3]; + bGPDspoint *pt; + float offset_factor; + + BKE_gpencil_stroke_normal(gps, stroke_normal); + if (len_v3(stroke_normal) < FLT_EPSILON) { +add_v3_fl(stroke_normal, 1); +normalize_v3(stroke_normal); + } + + for (i = 0; i < count; i++) { +if (i != 0) { + new_gps = BKE_gpencil_stroke_duplicate(gps); + new_gps->flag |= GP_STROKE_RECALC_GEOMETRY; + BLI_addtail(results, new_gps); +} +else { + new_gps = gps; +} + +pt = new_gps->points; +offset_factor = (float)i / (float)count; + +for (int j = 0; j < new_gps->totpoints; j++) { + if (j == 0) { +minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, stroke_normal); + } + else if (j == new_gps->totpoints - 1) { +minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, stroke_normal); + } + else { +minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, stroke_normal); + } + mul_v3_fl(minter, dist); + add_v3_v3v3(target1, [j].x, minter); + sub_v3_v3v3(target2, [j].x, minter); + interp_v3_v3v3([j].x, target1, target2, offset_factor + offset / 2); +} + } } static void bakeModifier(Main *UNUSED(bmain), @@ -113,14 +189,22 @@ static void bakeModifier(Main *UNUSED(bmain), for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { + ListBase duplicates = {0}; MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md; bGPDstroke *gps; for (gps = gpf->strokes.first; gps; gps = gps->next) { if (mmd->flags & GP_MULTIPLY_ENABLE_ANGLE_SPLITTING) { splitStroke(gpf, gps, mmd->split_angle); } +if (mmd->flags & GP_MULTIPLY_ENABLE_DUPLICATION) { + duplicateStroke(gpf, gps, mmd->duplications, mmd->distance, mmd->offset, ); +} + } + if (duplicates.first) { +((bGPDstroke *)gpf->strokes.last)->next = duplicates.first; +((bGPDstroke *)duplicates.first)->prev = gpf->strokes.last; +gpf->strokes.last = duplicates.first; } - return; } } } @@ -133,10 +217,19 @@ static void generateStrokes( { MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md; bGPDstroke *gps; + ListBase duplicates = {0}; for (gps = gpf->strokes.first; gps; gps = gps->next) { if (mmd->flags & GP_MULTIPLY_ENABLE_ANGLE_SPLITTING) { splitStroke(gpf, gps, mmd->split_angle); } +if (mmd->flags & GP_MULTIPLY_ENABLE_DUPLICATION) { + duplicateStroke(gpf, gps
[Bf-blender-cvs] [95cf3a3234b] soc-2019-npr: LANPR: Automatically update cache before drawing. (by a switch)
Commit: 95cf3a3234bb96cd25b3b048089f49763f7da210 Author: YimingWu Date: Wed Jul 3 14:04:15 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB95cf3a3234bb96cd25b3b048089f49763f7da210 LANPR: Automatically update cache before drawing. (by a switch) === M source/blender/draw/engines/lanpr/lanpr_engine.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index c349940053e..b2ea2247046 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -575,9 +575,29 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb, int is_rend } } +void lanpr_rebuild_all_command(SceneLANPR *lanpr); + static void lanpr_draw_scene(void *vedata) { DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); + const DRWContextState *draw_ctx = DRW_context_state_get(); + int updated = 0; + if (draw_ctx->scene->lanpr.auto_update && + (!lanpr_share.render_buffer_shared || + lanpr_share.render_buffer_shared->cached_for_frame != draw_ctx->scene->r.cfra)) { +if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) { + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0); + updated = 1; +} +else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) { + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1); +} + } + + if (updated) { +lanpr_rebuild_all_command(_ctx->scene->lanpr); + } + lanpr_draw_scene_exec(vedata, dfbl->default_fb, 0); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [d7174b18606] soc-2019-npr: LANPR: Automatically update LANPR calculation in gp update button.
Commit: d7174b1860665ddaaac83c5f4c053c459c63b8c9 Author: YimingWu Date: Wed Jul 3 13:44:41 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBd7174b1860665ddaaac83c5f4c053c459c63b8c9 LANPR: Automatically update LANPR calculation in gp update button. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index c24df04e22e..b89c7e47cda 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -740,14 +740,21 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): return; if mode == "SOFTWARE" or mode == "DPIX": -row=layout.row(align=True) -row.prop(lanpr,'auto_update',toggle=True,text='Auto Update') -txt = "Update" if mode == "SOFTWARE" else "Intersection Cache" -if not lanpr.auto_update: -row.operator("scene.lanpr_calculate", icon='FILE_REFRESH', text=txt) -layout.prop(lanpr, "disable_edge_splits") -if mode == "DPIX" or mode == "SOFTWARE": +if scene.render.engine!="BLENDER_LANPR": +row=layout.row() +row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') +row=layout.row() +row.operator("scene.lanpr_bake_gp_strokes", icon='RENDER_ANIMATION', text='Bake All Frames') +else: +row=layout.row(align=True) +row.prop(lanpr,'auto_update',toggle=True,text='Auto Update') +txt = "Update" if mode == "SOFTWARE" else "Intersection Cache" +if not lanpr.auto_update: +row.operator("scene.lanpr_calculate", icon='FILE_REFRESH', text=txt) + + +layout.prop(lanpr, "disable_edge_splits") layout.prop(lanpr, "background_color") layout.prop(lanpr, "crease_threshold") @@ -783,13 +790,6 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): else: layout.label(text="Vectorization:") layout.prop(lanpr, "enable_vector_trace", expand = True) - -if mode == "SOFTWARE": -row=layout.row() -row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') -row=layout.row() -row.operator("scene.lanpr_bake_gp_strokes", icon='RENDER_ANIMATION', text='Bake All Frames') - class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): bl_label = "Layer Settings" diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index b75301bf490..5d03c482297 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4613,6 +4613,10 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) SceneLANPR *lanpr = >lanpr; int frame = scene->r.cfra; + if (lanpr_share.render_buffer_shared->cached_for_frame != frame) { +lanpr_compute_feature_lines_internal(dg, 0); + } + lanpr_chain_clear_picked_flag(lanpr_share.render_buffer_shared); lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e2cc428686d] soc-2019-npr: LANPR: Fixed GPU mode bug: contour is always on.
Commit: e2cc428686df5589eecf944ee59cf8e73c99764c Author: YimingWu Date: Fri Jul 5 10:44:56 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBe2cc428686df5589eecf944ee59cf8e73c99764c LANPR: Fixed GPU mode bug: contour is always on. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index a64908c2417..fd40b549663 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -748,7 +748,7 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): return; if mode == "DPIX" and lanpr.shader_error: -layout.label(text="DPIX transfor shader compile error!") +layout.label(text="DPIX transform shader compile error!") return; if mode == "SOFTWARE" or mode == "DPIX": diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 564915ecce1..3df81b6b362 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -292,6 +292,8 @@ static void lanpr_cache_init(void *vedata) "crease_fade_threshold", >crease_fade_threshold, 1); +DRW_shgroup_uniform_int( +stl->g_data->dpix_transform_shgrp, "enable_contour", >enable_contour, 1); DRW_shgroup_uniform_int( stl->g_data->dpix_transform_shgrp, "enable_crease", >enable_crease, 1); DRW_shgroup_uniform_int( diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl index 9015a908f4d..78f625c4a92 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl @@ -4,6 +4,7 @@ uniform mat4 ViewMatrixInverse; uniform mat4 ProjectionMatrix; uniform mat4 ProjectionMatrixInverse; +uniform int enable_contour; uniform int enable_crease; uniform int enable_material; uniform int enable_edge_mark; @@ -334,7 +335,8 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position) float dot2 = dot(normalize(vec3(face_normal_0.xyz)), normalize(vec3(face_normal_1.xyz))); bool contour = (dot0 >= 0.0 && dot1 <= 0.0) || (dot0 <= 0.0 && dot1 >= 0.0); - is_crease = ((!contour) && ((dot2 < crease_threshold) || (dot2 < crease_fade_threshold))) ? 1 : + + is_crease = (((enable_contour>0 && !contour)||enable_contour==0) && ((dot2 < crease_threshold) || (dot2 < crease_fade_threshold))) ? 1 : 0; crease_strength = (is_crease > 0 && dot2 > crease_threshold) ? @@ -343,9 +345,9 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position) 0; // use 0 to 0.5 to repesent the range, because 1 will represent another meaning - if (contour) + if (enable_contour>0 && contour) return 1; - else if (((enable_crease > 0) && (is_crease > 0)) || + if (((enable_crease > 0) && (is_crease > 0)) || ((enable_material > 0) && (edge_mask.r > 0)) || ((enable_edge_mark > 0) && (edge_mask.g > 0)) || ((enable_intersection > 0) && (edge_mask.b > 0)) || false) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [f7c0fce0612] soc-2019-npr: Gpencil: Fix stroke duplication offset and UI slider.
Commit: f7c0fce061266803627edd1636834a90ed6fcc3f Author: YimingWu Date: Fri Jul 5 12:04:01 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBf7c0fce061266803627edd1636834a90ed6fcc3f Gpencil: Fix stroke duplication offset and UI slider. === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c M source/blender/makesrna/intern/rna_gpencil_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 81ee8a3dc37..782850f68af 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2357,7 +2357,7 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): if md.enable_duplication: col.prop(md,"duplications") col.prop(md,"distance") -col.prop(md,"offset") +col.prop(md,"offset", slider=True) col = sp.column() col.prop(md, "enable_angle_splitting") diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index 07bff517b8e..2ec84ea6505 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -148,6 +148,26 @@ static void duplicateStroke( normalize_v3(stroke_normal); } + float* t1_array = MEM_callocN(sizeof(float)*3*gps->totpoints,"duplicate_temp_result_array_1"); + float* t2_array = MEM_callocN(sizeof(float)*3*gps->totpoints,"duplicate_temp_result_array_2"); + + pt= gps->points; + + for (int j = 0; j < gps->totpoints; j++) { +if (j == 0) { + minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, stroke_normal); +} +else if (j == gps->totpoints - 1) { + minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, stroke_normal); +} +else { + minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, stroke_normal); +} +mul_v3_fl(minter, dist); +add_v3_v3v3(_array[j*3], [j].x, minter); +sub_v3_v3v3(_array[j*3], [j].x, minter); + } + for (i = 0; i < count; i++) { if (i != 0) { new_gps = BKE_gpencil_stroke_duplicate(gps); @@ -159,32 +179,19 @@ static void duplicateStroke( } pt = new_gps->points; -offset_factor = (float)i / (float)count; - -float* result_array = MEM_callocN(sizeof(float)*3*new_gps->totpoints,"duplicate_temp_result_array"); - -for (int j = 0; j < new_gps->totpoints; j++) { - if (j == 0) { -minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, stroke_normal); - } - else if (j == new_gps->totpoints - 1) { -minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, NULL, stroke_normal); - } - else { -minter_v3_v3v3v3_ref(minter, [j - 1].x, [j].x, [j + 1].x, stroke_normal); - } - mul_v3_fl(minter, dist); - add_v3_v3v3(target1, [j].x, minter); - sub_v3_v3v3(target2, [j].x, minter); - interp_v3_v3v3(_array[j*3], target1, target2, offset_factor + offset / 2); + +if(count == 1){ + offset_factor = 0; +}else{ + offset_factor = offset_factor = (float)i / (float)(count-1); } + for (int j = 0; j < new_gps->totpoints; j++) { - copy_v3_v3([j].x,_array[j*3]); + interp_v3_v3v3([j].x, _array[j*3], _array[j*3], interpf(1+offset,offset,offset_factor)); } - -MEM_freeN(result_array); - } + MEM_freeN(t1_array); + MEM_freeN(t2_array); } static void bakeModifier(Main *UNUSED(bmain), diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c index 13c1f96fd1d..f9284f4a992 100644 --- a/source/blender/makesrna/intern/rna_gpencil_modifier.c +++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c @@ -1780,7 +1780,7 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE); - RNA_def_property_range(prop, 0, 10); + RNA_def_property_ui_range(prop, -1, 1, 0.1, 3); RNA_def_property_ui_text(prop, "Offset", "Offset of duplications. -1 to 1: inner to outer"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [3f7ed2261e4] soc-2019-npr: Merge branch 'master' into soc-2019-npr
Commit: 3f7ed2261e48674c6f8d9b16d97c07ab36677bd9 Author: YimingWu Date: Fri Jul 5 07:37:58 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB3f7ed2261e48674c6f8d9b16d97c07ab36677bd9 Merge branch 'master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [1c2a22bb185] soc-2019-npr: LANPR: Improvements of disable_edge_splits function.
Commit: 1c2a22bb1856376a111907e953cc8ab9ccb09d35 Author: YimingWu Date: Fri Jul 5 07:55:15 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB1c2a22bb1856376a111907e953cc8ab9ccb09d35 LANPR: Improvements of disable_edge_splits function. === M source/blender/blenloader/intern/versioning_280.c M source/blender/draw/engines/lanpr/lanpr_access.c === diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 19e14da39cb..1188ff080f3 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -3543,6 +3543,8 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) sce->lanpr.enable_chaining = 1; sce->lanpr.chaining_image_threshold = 0.01; sce->lanpr.chaining_geometry_threshold = 0.1; + + sce->lanpr.disable_edge_splits = 1; } for (Collection *co = bmain->collections.first; co; co = co->id.next) { co->lanpr.types = COLLECTION_FEATURE_LINE_ALL; diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c index 27c9357dfcd..235fd2f153e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_access.c +++ b/source/blender/draw/engines/lanpr/lanpr_access.c @@ -140,7 +140,7 @@ bool lanpr_dpix_shader_error() bool lanpr_disable_edge_splits(Scene *s) { - return s->lanpr.disable_edge_splits; + return (s->lanpr.enabled && s->lanpr.disable_edge_splits); } void lanpr_copy_data(Scene *from, Scene *to) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e6421de53b7] soc-2019-npr: LANPR: GPU mode empty layer list prompt.
Commit: e6421de53b7407fb2c0462583b952a6704176a2d Author: YimingWu Date: Fri Jul 5 08:29:18 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBe6421de53b7407fb2c0462583b952a6704176a2d LANPR: GPU mode empty layer list prompt. === M release/scripts/startup/bl_ui/properties_render.py === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 7c487a3c4de..ac9b0b24bc0 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -760,12 +760,17 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): if lanpr.master_mode == "DPIX": layout.label(text="Cache Size:") layout.prop(lanpr,"gpu_cache_size", expand=True) +layout.prop(lanpr,"enable_intersections", text = "Intersection Lines") layout.prop(lanpr, "disable_edge_splits") layout.prop(lanpr, "background_color") layout.prop(lanpr, "crease_threshold") +if lanpr.master_mode == "DPIX" and len(lanpr.layers)==0: +layout.label(text="You don't have a layer to display.") +layout.operator("scene.lanpr_add_line_layer"); + if lanpr.master_mode == "SOFTWARE": row = layout.row() row.prop(lanpr,"enable_intersections", text = "Intersection Lines") ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [4052d68a00e] soc-2019-npr: LANPR: Discard source object stroke update functions.
Commit: 4052d68a00eb9a5ebdb9f4b9d2be5e3f6ec94e39 Author: YimingWu Date: Fri Jul 5 09:57:13 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4052d68a00eb9a5ebdb9f4b9d2be5e3f6ec94e39 LANPR: Discard source object stroke update functions. === M release/scripts/startup/bl_ui/properties_object.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/editors/render/render_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py index a5663460de5..de2717c 100644 --- a/release/scripts/startup/bl_ui/properties_object.py +++ b/release/scripts/startup/bl_ui/properties_object.py @@ -413,12 +413,14 @@ class OBJECT_PT_lanpr(ObjectButtonsPanel, Panel): def draw(self, context): layout=self.layout lanpr = context.object.lanpr -layout.label(text='Usage:') -row = layout.row() -row.prop(lanpr,'usage',expand=True) if context.object.type == 'MESH': -layout.operator("object.lanpr_update_gp_source") -elif context.object.type == 'GPENCIL': +layout.label(text='Usage:') +row = layout.row() +row.prop(lanpr,'usage',expand=True) +#if context.object.type == 'MESH': +#layout.operator("object.lanpr_update_gp_source") +if context.object.type == 'GPENCIL': +layout.prop(context.scene.lanpr,"gpencil_overwrite", text="Overwrite Frame", toggle=True) layout.operator("object.lanpr_update_gp_target") diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 17d12fef90d..d13109c5a95 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4710,8 +4710,8 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in CollectionObject *co; CollectionChild *cc; - for (co = source_only ? source_only : col->gobject.first; co; co = co->next) { -ob = co->ob; + for (co = col->gobject.first; co||source_only; co = co->next) { +ob = source_only ? source_only : co->ob; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_FeatureLine) { FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; @@ -5055,6 +5055,7 @@ void OBJECT_OT_lanpr_update_gp_target(struct wmOperatorType *ot) ot->exec = lanpr_update_gp_target_exec; } +/* Not working due to lack of GP flags for the object */ void OBJECT_OT_lanpr_update_gp_source(struct wmOperatorType *ot) { ot->name = "Update Strokes"; diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c index 8bd1bead1cf..622d9795bb0 100644 --- a/source/blender/editors/render/render_ops.c +++ b/source/blender/editors/render/render_ops.c @@ -44,7 +44,8 @@ void ED_operatortypes_render(void) WM_operatortype_append(OBJECT_OT_material_slot_move); WM_operatortype_append(OBJECT_OT_lanpr_update_gp_target); - WM_operatortype_append(OBJECT_OT_lanpr_update_gp_source); + /* Not working */ + /* WM_operatortype_append(OBJECT_OT_lanpr_update_gp_source); */ WM_operatortype_append(MATERIAL_OT_new); WM_operatortype_append(TEXTURE_OT_new); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [de1994174ba] soc-2019-npr: LANPR: Fixed always-on contour in UI.
Commit: de1994174bab4249ca9865ae3b471cb0f449ee77 Author: YimingWu Date: Fri Jul 5 10:17:41 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBde1994174bab4249ca9865ae3b471cb0f449ee77 LANPR: Fixed always-on contour in UI. === M release/scripts/startup/bl_ui/properties_render.py === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index 6965f7af682..a64908c2417 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -866,7 +866,7 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): col.prop(active_layer, "enable_intersection", text="Intersection", toggle=True) col = split.column() row = col.row(align = True) -#row.enabled = active_layer.enable_contour this is always enabled now +row.enabled = active_layer.enable_contour row.prop(active_layer, "contour_color", text="") row.prop(active_layer, "thickness_contour", text="", slider=True) row = col.row(align = True) @@ -882,18 +882,18 @@ class RENDER_PT_lanpr_line_types(RenderButtonsPanel, Panel): row.prop(active_layer, "material_color", text="") row.prop(active_layer, "thickness_material", text="", slider=True) row = col.row(align = True) -if lanpr.enable_intersections: -row.enabled = active_layer.enable_intersection -row.prop(active_layer, "intersection_color", text="") -row.prop(active_layer, "thickness_intersection", text="", slider=True) -else: -row.label(text= "Intersection Calculation Disabled") - -if lanpr.master_mode == "DPIX" and active_layer.enable_intersection: -row = col.row(align = True) -row.prop(lanpr,"enable_intersections", toggle = True, text = "Enable") -if lanpr.enable_intersections: -row.operator("scene.lanpr_calculate", text= "Recalculate") +row.enabled = (active_layer.enable_intersection and lanpr.enable_intersections) +row.prop(active_layer, "intersection_color", text="") +row.prop(active_layer, "thickness_intersection", text="", slider=True) + +if lanpr.master_mode == "DPIX" and active_layer.enable_intersection: +row = col.row(align = True) +row.prop(lanpr,"enable_intersections", toggle = True, text = "Enable") +if lanpr.enable_intersections: +row.operator("scene.lanpr_calculate", text= "Recalculate") + +if not lanpr.enable_intersections: +layout.label(text= "Intersection calculation disabled.") class RENDER_PT_lanpr_line_components(RenderButtonsPanel, Panel): bl_label = "Including" ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [fb96cbcf218] soc-2019-npr: LANPR: Stroke update button for GP targets and mesh source objects.
Commit: fb96cbcf218a2605335380ac752165db61b2db9c Author: YimingWu Date: Fri Jul 5 09:15:00 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBfb96cbcf218a2605335380ac752165db61b2db9c LANPR: Stroke update button for GP targets and mesh source objects. === M release/scripts/startup/bl_ui/properties_object.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/editors/render/render_intern.h M source/blender/editors/render/render_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py index a854f498f9c..a5663460de5 100644 --- a/release/scripts/startup/bl_ui/properties_object.py +++ b/release/scripts/startup/bl_ui/properties_object.py @@ -416,6 +416,11 @@ class OBJECT_PT_lanpr(ObjectButtonsPanel, Panel): layout.label(text='Usage:') row = layout.row() row.prop(lanpr,'usage',expand=True) +if context.object.type == 'MESH': +layout.operator("object.lanpr_update_gp_source") +elif context.object.type == 'GPENCIL': +layout.operator("object.lanpr_update_gp_target") + class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, Panel): COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH', 'BLENDER_LANPR'} diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index a91a01c07fd..17d12fef90d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4699,7 +4699,7 @@ void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame) DEG_OBJECT_ITER_END; } -void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, int frame) +void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, int frame, Object* source_only, Object* target_only) { Object *ob; Object *gpobj; @@ -4710,13 +4710,18 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in CollectionObject *co; CollectionChild *cc; - for (co = col->gobject.first; co; co = co->next) { + for (co = source_only ? source_only : col->gobject.first; co; co = co->next) { ob = co->ob; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_FeatureLine) { FeatureLineModifierData *flmd = (FeatureLineModifierData *)md; if (flmd->target && flmd->target->type == OB_GPENCIL) { gpobj = flmd->target; + + if(target_only && target_only!=gpobj){ +continue; + } + gpd = gpobj->data; gpl = BKE_gpencil_layer_get_index(gpd, flmd->layer, 1); if (!gpl) { @@ -4749,12 +4754,15 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in } } } +if(source_only){ + return; +} } for (cc = col->children.first; cc; cc = cc->next) { -lanpr_update_gp_strokes_recursive(dg, cc->collection, frame); +lanpr_update_gp_strokes_recursive(dg, cc->collection, frame, source_only, target_only); } } -void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, int frame) +void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, int frame, int this_only, Object* target_only) { Object *ob; Object *gpobj; @@ -4766,8 +4774,10 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i CollectionChild *cc; /* depth first */ - for (cc = col->children.first; cc; cc = cc->next) { -lanpr_update_gp_strokes_collection(dg, cc->collection, frame); + if(!this_only){ +for (cc = col->children.first; cc; cc = cc->next) { + lanpr_update_gp_strokes_collection(dg, cc->collection, frame, this_only, target_only); +} } if (col->lanpr.usage != COLLECTION_LANPR_INCLUDE || !col->lanpr.target) { @@ -4775,6 +4785,11 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i } gpobj = col->lanpr.target; + + if(target_only && target_only!=gpobj){ +return; + } + gpd = gpobj->data; gpl = BKE_gpencil_layer_get_index(gpd, col->lanpr.layer, 1); if (!gpl) { @@ -4817,9 +4832,9 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op) lanpr_chain_clear_picked_flag(lanpr_share.render_buffer_shared); - lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame); + lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame, NULL, NULL); - lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame); + lanpr_update_gp_
[Bf-blender-cvs] [bcb12f6a6c1] soc-2019-npr: Gpencil: Fixed distance interpolation in multiply modifier.
Commit: bcb12f6a6c1ba8cc23f76aff17619b8b4721991a Author: YimingWu Date: Fri Jul 5 11:27:16 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBbcb12f6a6c1ba8cc23f76aff17619b8b4721991a Gpencil: Fixed distance interpolation in multiply modifier. === M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c === diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index b90cdf9060e..07bff517b8e 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -161,6 +161,8 @@ static void duplicateStroke( pt = new_gps->points; offset_factor = (float)i / (float)count; +float* result_array = MEM_callocN(sizeof(float)*3*new_gps->totpoints,"duplicate_temp_result_array"); + for (int j = 0; j < new_gps->totpoints; j++) { if (j == 0) { minter_v3_v3v3v3_ref(minter, NULL, [j].x, [j + 1].x, stroke_normal); @@ -174,8 +176,14 @@ static void duplicateStroke( mul_v3_fl(minter, dist); add_v3_v3v3(target1, [j].x, minter); sub_v3_v3v3(target2, [j].x, minter); - interp_v3_v3v3([j].x, target1, target2, offset_factor + offset / 2); + interp_v3_v3v3(_array[j*3], target1, target2, offset_factor + offset / 2); +} +for (int j = 0; j < new_gps->totpoints; j++) { + copy_v3_v3([j].x,_array[j*3]); } + +MEM_freeN(result_array); + } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [4ff47d66b38] soc-2019-npr: LANPR: GP target updater overwrite option.
Commit: 4ff47d66b38c0b7306ec8f8939d7052ba8e103f3 Author: YimingWu Date: Fri Jul 5 08:21:10 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4ff47d66b38c0b7306ec8f8939d7052ba8e103f3 LANPR: GP target updater overwrite option. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index baa64787845..7c487a3c4de 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -742,8 +742,12 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): if mode == "SOFTWARE" or mode == "DPIX": if scene.render.engine!="BLENDER_LANPR": -row=layout.row() -row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') +row=layout.row(align=True) +row.prop(lanpr,"auto_update",toggle=True,text='Auto Update') + row.prop(lanpr,"gpencil_overwrite",toggle=True,text='Overwrite') +if not lanpr.auto_update: +row=layout.row() +row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') row=layout.row() row.operator("scene.lanpr_bake_gp_strokes", icon='RENDER_ANIMATION', text='Bake All Frames') else: diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index ad27ea33bac..a91a01c07fd 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4724,6 +4724,11 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); + if (gpf->strokes.first && + !lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) { +continue; + } + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { BKE_gpencil_free_strokes(gpf); gpf->flag |= GP_FRAME_LANPR_CLEARED; @@ -4777,6 +4782,10 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); + if (gpf->strokes.first && !lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) { +return; + } + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { BKE_gpencil_free_strokes(gpf); gpf->flag |= GP_FRAME_LANPR_CLEARED; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 8f959e1e090..f8f2031d7ae 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1696,7 +1696,8 @@ typedef struct SceneLANPR { float chaining_geometry_threshold; float chaining_image_threshold; - char _pad2[4]; + /* Overwrite existing strokes in this frame. */ + int gpencil_overwrite; } SceneLANPR; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index fd1a2025f66..c1905b25038 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7211,6 +7211,12 @@ static void rna_def_scene_lanpr(BlenderRNA *brna) RNA_def_property_ui_text( prop, "Auto Update", "Automatically update LANPR cache when scene changes"); + prop = RNA_def_property(srna, "gpencil_overwrite", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_default(prop, 0); + RNA_def_property_ui_text(prop, + "GPencil Overwrite", + "Overwrite existing strokes in the current frame of target GP objects"); + prop = RNA_def_property(srna, "reloaded", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, DEBUG_rna_enum_lanpr_reload); RNA_def_property_enum_default(prop, 0); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [80939ade23a] soc-2019-npr: LANPR: Improved line layer display in the list.
Commit: 80939ade23af2ac49dff902ec78becc64a4d3e28 Author: YimingWu Date: Fri Jul 5 10:11:27 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB80939ade23af2ac49dff902ec78becc64a4d3e28 LANPR: Improved line layer display in the list. === M release/scripts/startup/bl_ui/properties_render.py === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index ac9b0b24bc0..6965f7af682 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -693,16 +693,28 @@ class LANPR_UL_linesets(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index): lineset = item if self.layout_type in {'DEFAULT', 'COMPACT'}: -split = layout.split(factor=0.4) +split = layout.split(factor=0.25) t='' if not lineset.use_multiple_levels: -t='Level %d'%lineset.qi_begin +t='%d'%lineset.qi_begin else: -t='Level %d - %d'%(lineset.qi_begin,lineset.qi_end) +t='%d - %d'%(lineset.qi_begin,lineset.qi_end) split.label(text=t) row = split.row(align=True) -row.prop(lineset, "color", text="", icon_value=icon) -row.prop(lineset, "thickness", text="", icon_value=icon) +s2 = row.split(factor=0.5,align=True) +if lineset.use_same_style: +row.prop(lineset, "contour_color", text="") +row.prop(lineset, "thickness", text="", icon_value=icon) +else: +r = s2.row(align=True) +r.prop(lineset, "contour_color", text="") +r.prop(lineset, "crease_color", text="") +r.prop(lineset, "edge_mark_color", text="") +r.prop(lineset, "material_color", text="") +r.prop(lineset, "intersection_color", text="") +r = s2.row(align=True) +r.prop(lineset, "thickness", text="", icon_value=icon) + elif self.layout_type == 'GRID': layout.alignment = 'CENTER' layout.label("", icon_value=icon) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [10098812d3c] soc-2019-npr: LANPR: Intersection cache now updates before lanpr_cache_finish().
Commit: 10098812d3c266ae9b01d1a60e641ee7e3b95344 Author: YimingWu Date: Thu Jul 4 22:12:07 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB10098812d3c266ae9b01d1a60e641ee7e3b95344 LANPR: Intersection cache now updates before lanpr_cache_finish(). === M source/blender/draw/engines/lanpr/lanpr_engine.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 99732b804be..564915ecce1 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -185,6 +185,8 @@ static void lanpr_engine_free(void) void lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float *normal_object_direction); int lanpr_dpix_texture_size(SceneLANPR *lanpr); +void lanpr_rebuild_all_command(SceneLANPR *lanpr); + static void lanpr_cache_init(void *vedata) { @@ -417,6 +419,24 @@ static void lanpr_cache_init(void *vedata) else if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE) { ; } + + /* Intersection cache must be calculated before drawing. */ + int updated = 0; + if (draw_ctx->scene->lanpr.auto_update && + (!lanpr_share.render_buffer_shared || + lanpr_share.render_buffer_shared->cached_for_frame != draw_ctx->scene->r.cfra)) { +if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) { + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0); + updated = 1; +} +else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) { + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1); +} + } + + if (updated) { +lanpr_rebuild_all_command(_ctx->scene->lanpr); + } } static void lanpr_cache_populate(void *vedata, Object *ob) @@ -579,28 +599,9 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb, int is_rend } } -void lanpr_rebuild_all_command(SceneLANPR *lanpr); - static void lanpr_draw_scene(void *vedata) { DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); - const DRWContextState *draw_ctx = DRW_context_state_get(); - int updated = 0; - if (draw_ctx->scene->lanpr.auto_update && - (!lanpr_share.render_buffer_shared || - lanpr_share.render_buffer_shared->cached_for_frame != draw_ctx->scene->r.cfra)) { -if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) { - lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 0); - updated = 1; -} -else if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_DPIX) { - lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, 1); -} - } - - if (updated) { -lanpr_rebuild_all_command(_ctx->scene->lanpr); - } lanpr_draw_scene_exec(vedata, dfbl->default_fb, 0); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [7aed5dcad91] soc-2019-npr: Merge remote-tracking branch 'origin/master' into soc-2019-npr
Commit: 7aed5dcad91a369ed65ee9f3801f5e9845b5a769 Author: YimingWu Date: Thu Jul 4 22:35:59 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB7aed5dcad91a369ed65ee9f3801f5e9845b5a769 Merge remote-tracking branch 'origin/master' into soc-2019-npr === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [38b68fa8fa4] soc-2019-npr: LANPR: Enable Freestyle mark functions when LANPR is enabled.
Commit: 38b68fa8fa42b8c26c7afdcbb29eda806f4a2208 Author: YimingWu Date: Fri Jul 5 15:05:34 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB38b68fa8fa42b8c26c7afdcbb29eda806f4a2208 LANPR: Enable Freestyle mark functions when LANPR is enabled. === M release/scripts/startup/bl_ui/space_view3d.py === diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index d8b62e58d18..09b0f6cd215 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -3479,7 +3479,7 @@ class VIEW3D_MT_edit_mesh_context_menu(Menu): col.operator("mesh.mark_sharp") col.operator("mesh.mark_sharp", text="Clear Sharp").clear = True -if render.use_freestyle: +if render.use_freestyle or context.scene.lanpr.enabled: col.separator() col.operator("mesh.mark_freestyle_edge").clear = False ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [61ccd2fa38a] soc-2019-npr: Gpencil: Duplicator stroke fading data structures.
Commit: 61ccd2fa38a6387a99bfa92b9f2236308cb2fa9e Author: YimingWu Date: Fri Jul 5 13:37:28 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB61ccd2fa38a6387a99bfa92b9f2236308cb2fa9e Gpencil: Duplicator stroke fading data structures. === M release/scripts/startup/bl_ui/properties_data_modifier.py M source/blender/makesdna/DNA_gpencil_modifier_types.h M source/blender/makesrna/intern/rna_gpencil_modifier.c === diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 782850f68af..f257a89453c 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -2358,12 +2358,20 @@ class DATA_PT_gpencil_modifiers(ModifierButtonsPanel, Panel): col.prop(md,"duplications") col.prop(md,"distance") col.prop(md,"offset", slider=True) + +col.prop(md,"enable_fading") +if md.enable_fading: +col.prop(md, "fading_center") +c = col.column(align = True) +c.prop(md, "fading_thickness", slider=True) +c.prop(md, "fading_opacity", slider=True) col = sp.column() col.prop(md, "enable_angle_splitting") if md.enable_angle_splitting: col.prop(md,"split_angle") + diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h index b190d557d46..9cc9412160b 100644 --- a/source/blender/makesdna/DNA_gpencil_modifier_types.h +++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h @@ -624,14 +624,19 @@ typedef struct MultiplyGpencilModifierData { float distance; float offset; /* -1:inner 0:middle 1:outer */ + float fading_center; + float fading_thickness; + float fading_opacity; + float split_angle; /* in rad not deg */ - char _pad[4]; + /* char _pad[4]; */ } MultiplyGpencilModifierData; typedef enum eMultiplyGpencil_Flag { GP_MULTIPLY_ENABLE_DUPLICATION = (1 << 0), GP_MULTIPLY_ENABLE_ANGLE_SPLITTING = (1 << 1), + GP_MULTIPLY_ENABLE_FADING = (1<<2), } eMultiplyGpencil_Flag; #endif /* __DNA_GPENCIL_MODIFIER_TYPES_H__ */ diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c index f9284f4a992..888e22cdea4 100644 --- a/source/blender/makesrna/intern/rna_gpencil_modifier.c +++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c @@ -1764,6 +1764,11 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Angle Splitting", "Enable angle splitting"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "enable_fading", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flags", GP_MULTIPLY_ENABLE_FADING); + RNA_def_property_ui_text(prop, "Enable Fading", "Enable fading"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + prop = RNA_def_property(srna, "split_angle", PROP_FLOAT, PROP_NONE); RNA_def_property_range(prop, 0, M_PI); RNA_def_property_ui_text(prop, "Angle", "Split angle for segments"); @@ -1783,6 +1788,23 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA *brna) RNA_def_property_ui_range(prop, -1, 1, 0.1, 3); RNA_def_property_ui_text(prop, "Offset", "Offset of duplications. -1 to 1: inner to outer"); RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + + prop = RNA_def_property(srna, "fading_thickness", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_float_default(prop, 0.5); + RNA_def_property_ui_text(prop, "Thickness", "Fade influence of stroke's thickness"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + + prop = RNA_def_property(srna, "fading_opacity", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_float_default(prop, 0.5); + RNA_def_property_ui_text(prop, "Opacity", "Fade influence of stroke's opacity"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); + + prop = RNA_def_property(srna, "fading_center", PROP_FLOAT, PROP_NONE); + RNA_def_property_range(prop, 0, 1); + RNA_def_property_ui_text(prop, "Center", "Fade center"); + RNA_def_property_update(prop, 0, "rna_GpencilModifier_update"); } void RNA_def_greasepencil_modifier(BlenderRNA *brna) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b28eb5e339b] soc-2019-npr: Gpencil: Fading in duplicate modifier.
Commit: b28eb5e339b6c080e7acc5aee7a6f968c1306abe Author: YimingWu Date: Fri Jul 5 14:33:22 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBb28eb5e339b6c080e7acc5aee7a6f968c1306abe Gpencil: Fading in duplicate modifier. === M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c M source/blender/makesdna/DNA_gpencil_modifier_types.h === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index d13109c5a95..8c24a86a611 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4699,7 +4699,8 @@ void lanpr_clear_gp_lanpr_flags(Depsgraph *dg, int frame) DEG_OBJECT_ITER_END; } -void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, int frame, Object* source_only, Object* target_only) +void lanpr_update_gp_strokes_recursive( +Depsgraph *dg, struct Collection *col, int frame, Object *source_only, Object *target_only) { Object *ob; Object *gpobj; @@ -4710,7 +4711,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in CollectionObject *co; CollectionChild *cc; - for (co = col->gobject.first; co||source_only; co = co->next) { + for (co = col->gobject.first; co || source_only; co = co->next) { ob = source_only ? source_only : co->ob; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_FeatureLine) { @@ -4718,7 +4719,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in if (flmd->target && flmd->target->type == OB_GPENCIL) { gpobj = flmd->target; - if(target_only && target_only!=gpobj){ + if (target_only && target_only != gpobj) { continue; } @@ -4754,7 +4755,7 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in } } } -if(source_only){ +if (source_only) { return; } } @@ -4762,7 +4763,8 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in lanpr_update_gp_strokes_recursive(dg, cc->collection, frame, source_only, target_only); } } -void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, int frame, int this_only, Object* target_only) +void lanpr_update_gp_strokes_collection( +Depsgraph *dg, struct Collection *col, int frame, int this_only, Object *target_only) { Object *ob; Object *gpobj; @@ -4774,7 +4776,7 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i CollectionChild *cc; /* depth first */ - if(!this_only){ + if (!this_only) { for (cc = col->children.first; cc; cc = cc->next) { lanpr_update_gp_strokes_collection(dg, cc->collection, frame, this_only, target_only); } @@ -4786,7 +4788,7 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i gpobj = col->lanpr.target; - if(target_only && target_only!=gpobj){ + if (target_only && target_only != gpobj) { return; } @@ -4873,7 +4875,7 @@ int lanpr_update_gp_target_exec(struct bContext *C, struct wmOperator *op) Scene *scene = CTX_data_scene(C); Depsgraph *dg = CTX_data_depsgraph(C); SceneLANPR *lanpr = >lanpr; - Object* gpo = CTX_data_active_object(C); + Object *gpo = CTX_data_active_object(C); int frame = scene->r.cfra; @@ -4899,7 +4901,7 @@ int lanpr_update_gp_source_exec(struct bContext *C, struct wmOperator *op) Scene *scene = CTX_data_scene(C); Depsgraph *dg = CTX_data_depsgraph(C); SceneLANPR *lanpr = >lanpr; - Object* source_obj = CTX_data_active_object(C); + Object *source_obj = CTX_data_active_object(C); int frame = scene->r.cfra; @@ -4921,19 +4923,22 @@ int lanpr_update_gp_source_exec(struct bContext *C, struct wmOperator *op) return OPERATOR_FINISHED; } -static bool lanpr_active_is_gpencil_object(bContext *C){ - Object* o = CTX_data_active_object(C); +static bool lanpr_active_is_gpencil_object(bContext *C) +{ + Object *o = CTX_data_active_object(C); return o->type == OB_GPENCIL; } -static bool lanpr_active_is_source_object(bContext *C){ - Object* o = CTX_data_active_object(C); - if(o->type!=OB_MESH){ +static bool lanpr_active_is_source_object(bContext *C) +{ + Object *o = CTX_data_active_object(C); + if (o->type != OB_MESH) { return false; - }else{ -ModifierData* md; -for(md = o->modifiers.first;md;md=md->next){ - if(md->type == eModifierType_Featur
[Bf-blender-cvs] [e9bac3a23a7] soc-2019-npr: LANPR: Modified default values for better initial experience.
Commit: e9bac3a23a7d4eea0b8f91e3e9f24018602b737f Author: YimingWu Date: Fri Jul 5 15:16:58 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBe9bac3a23a7d4eea0b8f91e3e9f24018602b737f LANPR: Modified default values for better initial experience. === M source/blender/blenloader/intern/versioning_280.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 1188ff080f3..177da8ee5df 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -3529,20 +3529,20 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) sce->lanpr.enable_intersections = 1; - sce->lanpr.background_color[0] = 0; - sce->lanpr.background_color[1] = 0; - sce->lanpr.background_color[2] = 0; + sce->lanpr.background_color[0] = 0.75; + sce->lanpr.background_color[1] = 0.75; + sce->lanpr.background_color[2] = 0.75; sce->lanpr.background_color[3] = 1; - sce->lanpr.line_color[0] = 1; - sce->lanpr.line_color[1] = 1; - sce->lanpr.line_color[2] = 1; - sce->lanpr.line_color[3] = 1; + sce->lanpr.line_color[0] = 0; + sce->lanpr.line_color[1] = 0; + sce->lanpr.line_color[2] = 0; + sce->lanpr.line_color[3] = 0; sce->lanpr.enable_intersections = 1; sce->lanpr.enable_chaining = 1; - sce->lanpr.chaining_image_threshold = 0.01; - sce->lanpr.chaining_geometry_threshold = 0.1; + sce->lanpr.chaining_image_threshold = 0.01f; + sce->lanpr.chaining_geometry_threshold = 0.0f; sce->lanpr.disable_edge_splits = 1; } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 8c24a86a611..da56830c4e7 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4456,9 +4456,9 @@ LANPR_LineLayer *lanpr_new_line_layer(SceneLANPR *lanpr) ll->qi_begin = ll->qi_end = max_occ + 1; ll->use_same_style = 1; ll->thickness = 1.0f; - ll->color[0] = 1.0f; - ll->color[1] = 1.0f; - ll->color[2] = 1.0f; + ll->color[0] = 0.0f; + ll->color[1] = 0.0f; + ll->color[2] = 0.0f; ll->color[3] = 1.0f; ll->enable_contour = 1; ll->enable_crease = 1; @@ -4647,9 +4647,9 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op) ll = lanpr_new_line_layer(lanpr); ll->thickness = 1.7; - ll->color[0] = 1; - ll->color[1] = 1; - ll->color[2] = 1; + ll->color[0] = 0; + ll->color[1] = 0; + ll->color[2] = 0; lanpr_enable_all_line_types_exec(C, op); @@ -4657,8 +4657,8 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op) ll->thickness = 0.9; ll->qi_begin = 1; ll->qi_end = 1; - ll->color[0] = 0.314; - ll->color[1] = 0.596; + ll->color[0] = 0.1; + ll->color[1] = 0.1; ll->color[2] = 1; lanpr_enable_all_line_types_exec(C, op); @@ -4667,9 +4667,9 @@ int lanpr_auto_create_line_layer_exec(struct bContext *C, struct wmOperator *op) ll->thickness = 0.7; ll->qi_begin = 2; ll->qi_end = 2; - ll->color[0] = 0.135; - ll->color[1] = 0.304; - ll->color[2] = 0.508; + ll->color[0] = 0.2; + ll->color[1] = 0.2; + ll->color[2] = 0.2; lanpr_enable_all_line_types_exec(C, op); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [693cecab701] soc-2019-npr: LANPR: Disable header checkbox when in LANPR engine.
Commit: 693cecab701e3f65b78d8eda6e69f01c218f53e2 Author: YimingWu Date: Fri Jul 5 15:57:20 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB693cecab701e3f65b78d8eda6e69f01c218f53e2 LANPR: Disable header checkbox when in LANPR engine. === M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index fd40b549663..68d4a0b5173 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -729,7 +729,8 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): return True def draw_header(self, context): -self.layout.prop(context.scene.lanpr, "enabled", text="") +if context.scene.render.engine != 'BLENDER_LANPR': +self.layout.prop(context.scene.lanpr, "enabled", text="") def draw(self, context): scene = context.scene diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index da56830c4e7..1a53f1a1b85 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4320,8 +4320,9 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, int intersectons_ LANPR_RenderBuffer *rb; Scene *s = DEG_get_evaluated_scene(depsgraph); SceneLANPR *lanpr = >lanpr; + int is_lanpr_engine = !strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR); - if (!lanpr->enabled) { + if (!is_lanpr_engine && !lanpr->enabled) { return OPERATOR_CANCELLED; } @@ -4358,8 +4359,7 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, int intersectons_ } /* When not using LANPR engine, chaining is forced in order to generate data for GPencil. */ - if ((lanpr->enable_chaining || strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR)) && - (!intersectons_only)) { + if ((lanpr->enable_chaining || !is_lanpr_engine) && (!intersectons_only)) { lanpr_NO_THREAD_chain_feature_lines(rb); /* should use user_adjustable value */ lanpr_split_chains_for_fixed_occlusion(rb); lanpr_connect_chains(rb, 1); @@ -4389,8 +4389,9 @@ static int lanpr_compute_feature_lines_exec(struct bContext *C, struct wmOperato Scene *scene = CTX_data_scene(C); SceneLANPR *lanpr = >lanpr; int result; + int is_lanpr_engine = !strcmp(scene->r.engine, RE_engine_id_BLENDER_LANPR); - if (!lanpr->enabled) { + if (!is_lanpr_engine && !lanpr->enabled) { return OPERATOR_CANCELLED; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [ee1e72a316c] soc-2019-npr: Gpencil: make format
Commit: ee1e72a316c48b3db8bf0631ad20686ccc4604e6 Author: YimingWu Date: Fri Jul 5 14:52:04 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rBee1e72a316c48b3db8bf0631ad20686ccc4604e6 Gpencil: make format === M source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c === diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index dd9e0001447..1190a89ea2f 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -181,7 +181,7 @@ static void duplicateStroke(bGPDframe *gpf, } /* This ensures the original stroke is the last one to be processed. */ - for (i = count - 1; i>=0; i--) { + for (i = count - 1; i >= 0; i--) { if (i != 0) { new_gps = BKE_gpencil_stroke_duplicate(gps); new_gps->flag |= GP_STROKE_RECALC_GEOMETRY; @@ -203,9 +203,10 @@ static void duplicateStroke(bGPDframe *gpf, if (fading) { thickness_factor = (offset_factor > fading_center) ? (interpf(1 - fading_thickness, 1.0f, offset_factor - fading_center)) : - (interpf(1.0f, 1 - fading_thickness, offset_factor - fading_center + 1)); + (interpf( + 1.0f, 1 - fading_thickness, offset_factor - fading_center + 1)); opacity_factor = (offset_factor > fading_center) ? - (interpf(1 - fading_opacity, 1.0f, offset_factor - fading_center)): + (interpf(1 - fading_opacity, 1.0f, offset_factor - fading_center)) : (interpf(1.0f, 1 - fading_opacity, offset_factor - fading_center + 1)); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [8697062438e] soc-2019-npr: LANPR: Fix MSVC errors.
Commit: 8697062438e0bac175d094d9142926d93da59923 Author: YimingWu Date: Fri Jul 5 20:49:49 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB8697062438e0bac175d094d9142926d93da59923 LANPR: Fix MSVC errors. === M source/blender/draw/engines/lanpr/lanpr_chain.c M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 868958a1719..b78baf75616 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -441,9 +441,7 @@ LANPR_BoundingArea *lanpr_get_rlci_bounding_area_recursive(LANPR_RenderBuffer *r else { LANPR_BoundingArea *ch = root->child; #define IN_BOUND(ba, rlci) \ - \ -ba.l <= rlci->pos[0] && \ - ba.r >= rlci->pos[0] && ba.b <= rlci->pos[1] && ba.u >= rlci->pos[1] + ba.l <= rlci->pos[0] && ba.r >= rlci->pos[0] && ba.b <= rlci->pos[1] && ba.u >= rlci->pos[1] if (IN_BOUND(ch[0], rlci)) { return lanpr_get_rlci_bounding_area_recursive(rb, [0], rlci); diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 1a53f1a1b85..e6ed645f142 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -450,16 +450,20 @@ void lanpr_link_line_with_bounding_area(LANPR_RenderBuffer *rb, list_append_pointer_static_pool(>render_data_pool, >linked_lines, rl); } else { -if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, >child[0])) { +if (lanpr_line_crosses_bounding_area( +rb, rl->l->fbcoord, rl->r->fbcoord, >child[0])) { lanpr_link_line_with_bounding_area(rb, >child[0], rl); } -else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, >child[1])) { +else if (lanpr_line_crosses_bounding_area( + rb, rl->l->fbcoord, rl->r->fbcoord, >child[1])) { lanpr_link_line_with_bounding_area(rb, >child[1], rl); } -else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, >child[2])) { +else if (lanpr_line_crosses_bounding_area( + rb, rl->l->fbcoord, rl->r->fbcoord, >child[2])) { lanpr_link_line_with_bounding_area(rb, >child[2], rl); } -else if (lanpr_line_crosses_bounding_area(rb, rl->l, rl->r, >child[3])) { +else if (lanpr_line_crosses_bounding_area( + rb, rl->l->fbcoord, rl->r->fbcoord, >child[3])) { lanpr_link_line_with_bounding_area(rb, >child[3], rl); } } @@ -591,10 +595,7 @@ static LANPR_BoundingArea *lanpr_get_point_bounding_area_recursive(LANPR_Boundin else { LANPR_BoundingArea *ch = ba->child; #define IN_BOUND(i, x, y) \ - \ -ba->child[i] \ - .l <= x && \ - ba->child[i].r >= x && ba->child[i].b <= y && ba->child[i].u >= y + ba->child[i].l <= x && ba->child[i].r >= x && ba->child[i].b <= y && ba->child[i].u >= y if (IN_BOUND(0, x, y)) { return lanpr_get_point_bounding_area_recursive(>child[0], x, y); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs