[Bf-blender-cvs] [644cd00d1a6] soc-2018-npr: Merge branch 'blender2.8' of git://git.blender.org/blender
Commit: 644cd00d1a647eb1e55263722997544a1a2cc91e Author: Nick Wu Date: Mon Apr 30 08:58:47 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB644cd00d1a647eb1e55263722997544a1a2cc91e Merge branch 'blender2.8' of git://git.blender.org/blender === === diff --cc source/blender/editors/interface/interface_draw.c index 7583dc654bb,97491d365b7..11cbc448713 --- a/source/blender/editors/interface/interface_draw.c +++ b/source/blender/editors/interface/interface_draw.c @@@ -825,13 -1108,13 +1108,13 @@@ static float polar_to_y(float center, f return center + diam * ampli * sinf(angle); } - static void vectorscope_draw_target(float centerx, float centery, float diam, const float colf[3]) + static void vectorscope_draw_target(unsigned int pos, float centerx, float centery, float diam, const float colf[3]) { float y, u, v; - float tangle = 0.f, tampli; + float tangle = 0.0f, tampli; float dangle, dampli, dangle2, dampli2; - rgb_to_yuv(colf[0], colf[1], colf[2], , , ); + rgb_to_yuv(colf[0], colf[1], colf[2], , , , BLI_YUV_ITU_BT709); if (u > 0 && v >= 0) tangle = atanf(v / u); else if (u > 0 && v < 0) tangle = atanf(v / u) + 2.0f * (float)M_PI; else if (u < 0) tangle = atanf(v / u) + (float)M_PI; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [61d3c1261c5] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 61d3c1261c5d9e40c41ae540b83952e411670fe8 Author: Nick Wu Date: Sun Dec 23 19:09:42 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB61d3c1261c5d9e40c41ae540b83952e411670fe8 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [54443b6d900] soc-2018-npr: Fix merge errors.
Commit: 54443b6d900bd3ebd4dd848c0e2f94ba95f8cdad Author: Nick Wu Date: Sat Dec 8 22:55:29 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB54443b6d900bd3ebd4dd848c0e2f94ba95f8cdad Fix merge errors. === M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesrna/intern/rna_scene.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 28cd6374e11..b2cd913842f 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3614,7 +3614,7 @@ void SCENE_OT_lanpr_delete_line_component(struct wmOperatorType *ot) { RNA_def_int(ot->srna, "index", 0, 0, 1, "index", "index of this line component", 0, 1); } -#ifdef 0 +#ifdef USE_LANPR_HINT // how to access LANPR's occlusion info after LANPR software mode calculation diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 659d312b234..04addd128c2 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2093,6 +2093,7 @@ static void rna_unit_system_update(Main *UNUSED(bmain), Scene *scene, PointerRNA static char *rna_UnitSettings_path(PointerRNA *UNUSED(ptr)) { return BLI_sprintfN("unit_settings"); +} /* lanpr */ @@ -6874,4 +6875,4 @@ void RNA_def_scene(BlenderRNA *brna) RNA_api_scene(srna); } -#endif +#endif \ No newline at end of file ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [a1a526e5576] soc-2018-npr: added example functions for accessing LANPR occlusion data
Commit: a1a526e5576384aade7aec3d66ed00886911d337 Author: Nick Wu Date: Mon Nov 26 21:47:11 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBa1a526e5576384aade7aec3d66ed00886911d337 added example functions for accessing LANPR occlusion data === 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 236df7e7324..f1bdaeefa74 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -418,4 +418,4 @@ void lanpr_chain_generate_draw_command(LANPR_RenderBuffer *rb){ if (rb->ChainDrawBatch) GPU_batch_discard(rb->ChainDrawBatch); rb->ChainDrawBatch = GPU_batch_create_ex(GPU_PRIM_LINES_ADJ, vbo, GPU_indexbuf_build(), GPU_USAGE_DYNAMIC | GPU_BATCH_OWNS_VBO); -} \ No newline at end of file +} diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 839bfa29d5b..28cd6374e11 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3614,3 +3614,116 @@ void SCENE_OT_lanpr_delete_line_component(struct wmOperatorType *ot) { RNA_def_int(ot->srna, "index", 0, 0, 1, "index", "index of this line component", 0, 1); } +#ifdef 0 + +// how to access LANPR's occlusion info after LANPR software mode calculation + +// You can access descrete occlusion data from every edge, +// but you can also access occlusion using LANPR's chain data. +// Two examples are given. + +// [1.descrete occlusion data for edges]== +// +// LANPR occlusion related data storage : +// +// LANPR_RenderBuffer :: AllRenderLines > All LANPR_RenderLine nodes. Each node for a singe edge on the mesh. +// Only features lines are in this list. +// LANPR_RenderLine stores a list of occlusion info in LANPR_RenderLineSegment. +// +// LANPR_RenderBuffer :: Contours (and Crease/MaterialLines/Intersections/EdgeMarks) +//> ListItemPointers to LANPR_RenderLine nodes. +// Use these lists to access individual line types for convenience. +// For how to access this list, refer to this file line 728-730 as an example. +// +// LANPR_RenderLine :: Segments > List of LANPR_RenderLineSegment to represent occlusion info. +// See below for how occlusion is reoresented in Renderline and RenderLineSegment. +// +// RenderLine Diagram: +//+[RenderLine] +// [Segments] +// [Segment] at=0 occlusion_level=0 +// [Segment] at=0.5occlusion_level=1 +// [Segment] at=0.7occlusion_level=0 +// +// Then you get a line with such occlusion: +// [L]|-|=|---[R] +// +// the beginning to 50% of the line : Not occluded +// 50% to 70% of the line : Occluded 1 time +// 70% to the end of the line : Not occluded +// +// cut positions are linear interpolated in image space from line->L->FrameBufferCoord to line->R->FrameBufferCoord (always L to R) +//~~~~~~ +// to see an example of iterating occlusion data for all lines for drawing, see below or refer to this file line 2930. +// +// [Iterating occlusion data] +void lanpr_iterate_renderline_and_occlusion(LANPR_RenderBuffer *rb, double* V_OUT, double Occ_OUT) { + nListItemPointer *lip; + LANPR_RenderLine *rl; + LANPR_RenderLineSegment *rls, *irls; + double *V = V_Out; + double *O = Occ_OUT; + + for (rl = rb->AllRenderLines->first; rl; rl = lip->pNext) { + for (rls = rl->Segments.first; rls; rls = rls->Item.pNext) { + + irls = rls->Item.pNext; + + //safety reasons + CLAMP(rls->at, 0, 1); + if (irls)CLAMP(irls->at, 0, 1); + + //segment begin at some X and Y + //tnsLinearItp() is a linear interpolate function. + *V = tnsLinearItp(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rls->at); V++; + *V = tnsLinearItp(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], rls->at); V++; + *O = rls->Occlusi
[Bf-blender-cvs] [e4d987d7fbf] soc-2018-npr: Added temporary contour bypass for smooth contour modifier build.
Commit: e4d987d7fbf886e9ba1040a8d640574a16cd1cf3 Author: Nick Wu Date: Mon Nov 26 20:17:49 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBe4d987d7fbf886e9ba1040a8d640574a16cd1cf3 Added temporary contour bypass for smooth contour modifier build. === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index d0c90ed1d40..839bfa29d5b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -53,6 +53,7 @@ struct Object; int lanpr_triangle_line_imagespace_intersection_v2(SpinLock *spl, LANPR_RenderTriangle *rt, LANPR_RenderLine *rl, Object *cam, tnsMatrix44d vp, real *CameraDir, double *From, double *To); +int use_smooth_contour_modifier_contour = 1; // debug purpose /* == base structures === */ @@ -1707,6 +1708,11 @@ void lanpr_make_render_geometry_buffers_object(Object *o, real *MVMat, real *MVP fe = CustomData_bmesh_get(>edata, e->head.data, CD_FREESTYLE_EDGE); if (fe->flag & FREESTYLE_EDGE_MARK) rl->Flags |= LANPR_EDGE_FLAG_EDGE_MARK; } + if (use_smooth_contour_modifier_contour) { + if (BM_elem_flag_test(e->v1, BM_ELEM_SELECT) && BM_elem_flag_test(e->v2, BM_ELEM_SELECT)) + rl->Flags |= LANPR_EDGE_FLAG_CONTOUR; + } + rl->L = [BM_elem_index_get(e->v1)]; rl->R = [BM_elem_index_get(e->v2)]; LANPR_RenderLineSegment *rls = mem_static_aquire(>RenderDataPool, sizeof(LANPR_RenderLineSegment)); @@ -2618,11 +2624,15 @@ void lanpr_compute_scene_contours(LANPR_RenderBuffer *rb, float threshold) { tMatVectorMinus3d(ViewVector, rl->L->GLocation, cam_location); } - if (rl->TL) Dot1 = tmat_dot_3d(ViewVector, rl->TL->GN, 0); else Add = 1; - if (rl->TR) Dot2 = tmat_dot_3d(ViewVector, rl->TR->GN, 0); else Add = 1; + if (use_smooth_contour_modifier_contour) { + if (rl->Flags & LANPR_EDGE_FLAG_CONTOUR) Add = 1; + }else { + if (rl->TL) Dot1 = tmat_dot_3d(ViewVector, rl->TL->GN, 0); else Add = 1; + if (rl->TR) Dot2 = tmat_dot_3d(ViewVector, rl->TR->GN, 0); else Add = 1; + } if (!Add) { - if ((Result = Dot1 * Dot2) <= 0) Add = 1; + if ((Result = Dot1 * Dot2) <= 0 && (Dot1 + Dot2)) Add = 1; elif(tmat_dot_3d(rl->TL->GN, rl->TR->GN, 0) < threshold) Add = 2; elif(rl->TL && rl->TR && rl->TL->MaterialID != rl->TR->MaterialID) Add = 3; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [3c7da86849f] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 3c7da86849fecfe099b07b9f9a9869cb57111b3f Author: Nick Wu Date: Mon Nov 19 12:51:52 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3c7da86849fecfe099b07b9f9a9869cb57111b3f Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # source/blender/makesdna/DNA_lamp_types.h === === diff --cc source/blender/makesdna/DNA_lamp_types.h index c40ffea0015,d035e0c5440..5a551f602a2 --- a/source/blender/makesdna/DNA_lamp_types.h +++ b/source/blender/makesdna/DNA_lamp_types.h @@@ -98,21 -98,21 +98,21 @@@ typedef struct Lamp /* LAMP * */ /* flag */ -#define LA_DS_EXPAND 1 - /* NOTE: this must have the same value as MA_DS_SHOW_TEXS, - * otherwise anim-editors will not read correctly - */ -#define LA_DS_SHOW_TEXS 4 +#define LA_DS_EXPAND1 +/* NOTE: this must have the same value as MA_DS_SHOW_TEXS, + * otherwise anim-editors will not read correctly + */ +#define LA_DS_SHOW_TEXS 4 /* type */ -#define LA_LOCAL 0 -#define LA_SUN1 -#define LA_SPOT 2 +#define LA_LOCAL0 +#define LA_SUN 1 +#define LA_SPOT 2 - #define LA_HEMI 3 + /* #define LA_HEMI3 */ /* not used anymore */ -#define LA_AREA 4 +#define LA_AREA 4 /* mode */ -#define LA_SHADOW (1 << 0) +#define LA_SHADOW (1 << 0) /* #define LA_HALO(1 << 1) */ /* not used anymore */ /* #define LA_LAYER (1 << 2) */ /* not used anymore */ /* #define LA_QUAD(1 << 3) */ /* not used anymore */ @@@ -134,21 -134,22 +134,22 @@@ #define LA_SHOW_CONE(1 << 17) /* #define LA_SHOW_SHADOW_BOX (1 << 18) */ #define LA_SHAD_CONTACT (1 << 19) + #define LA_CUSTOM_ATTENUATION (1 << 20) /* falloff_type */ -#define LA_FALLOFF_CONSTANT 0 -#define LA_FALLOFF_INVLINEAR 1 -#define LA_FALLOFF_INVSQUARE 2 -#define LA_FALLOFF_CURVE 3 -#define LA_FALLOFF_SLIDERS4 -#define LA_FALLOFF_INVCOEFFICIENTS5 +#define LA_FALLOFF_CONSTANT 0 +#define LA_FALLOFF_INVLINEAR1 +#define LA_FALLOFF_INVSQUARE2 +#define LA_FALLOFF_CURVE3 +#define LA_FALLOFF_SLIDERS 4 +#define LA_FALLOFF_INVCOEFFICIENTS 5 /* area shape */ -#define LA_AREA_SQUARE0 -#define LA_AREA_RECT 1 -#define LA_AREA_CUBE 2 -#define LA_AREA_BOX 3 -#define LA_AREA_DISK 4 -#define LA_AREA_ELLIPSE 5 +#define LA_AREA_SQUARE 0 +#define LA_AREA_RECT1 +#define LA_AREA_CUBE2 +#define LA_AREA_BOX 3 +#define LA_AREA_DISK4 +#define LA_AREA_ELLIPSE 5 #endif /* __DNA_LAMP_TYPES_H__ */ diff --cc source/blender/makesdna/DNA_scene_types.h index dcd23819f53,c1ced30169b..900567e5c9b --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -1508,71 -1508,9 +1508,71 @@@ typedef struct SceneEEVEE char light_cache_info[64]; float overscan; - float pad; + float light_threshold; } SceneEEVEE; + +/* LANPR Global Config */ + +struct LANPR_RenderBuffer; +struct LANPR_LineLayer; + +typedef struct SceneLANPR { + + int master_mode; + + int enable_vector_trace; + int display_thinning_result; + + //int SizeCompensate; + + float depth_clamp; + float depth_strength; + float normal_clamp; + float normal_strength; + + float line_thickness; + + int use_same_taper; + float taper_left_distance; + float taper_left_strength; + float taper_right_distance; + float taper_right_strength; + + int enable_tip_extend; + float extend_length; + + int snake_sensitivity; + + /* shared */ + + float contour_fade; /* for dpix contour fading,reserved for future usage */ + float crease_threshold; /* 0-1 range for cosine angle */ + float crease_fade_threshold; /* for dpix crease fading */ + + float line_color[4]; + float background_color[4]; + + float depth_width_influence; + float depth_width_curve; + float depth_alpha_influence; + float depth_alpha_curve; + + /* states (needs optimization) */ + + int reloaded; + + /* offline render */ + + struct LANPR_RenderBuffer *render_buffer; /* created when needed. for offline rendering */ + ListBase line_layers;/* now here!!! */ + struct LANPR_LineLayer*active_layer; + + int enable_interse
[Bf-blender-cvs] [c94b494f20d] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: c94b494f20de24f8fbecd97b324a5739bdf02970 Author: Nick Wu Date: Mon Nov 26 20:15:13 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBc94b494f20de24f8fbecd97b324a5739bdf02970 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # source/blender/makesdna/DNA_scene_types.h # source/blender/makesrna/intern/rna_scene.c # source/tools === === diff --cc source/blender/makesdna/DNA_scene_types.h index 900567e5c9b,7ab4187de1a..fe2dc62a43e --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -1857,35 -1794,52 +1859,52 @@@ extern const char *RE_engine_id_CYCLES /* Current precision is 16 for the sub-frames closer to MAXFRAME. */ /* for general use */ -#define MAXFRAME 1048574 -#define MAXFRAMEF 1048574.0f +#define MAXFRAME1048574 +#define MAXFRAMEF 1048574.0f -#define MINFRAME 0 -#define MINFRAMEF 0.0f +#define MINFRAME0 +#define MINFRAMEF 0.0f /* (minimum frame number for current-frame) */ -#define MINAFRAME -1048574 -#define MINAFRAMEF-1048574.0f +#define MINAFRAME -1048574 +#define MINAFRAMEF -1048574.0f /* deprecate this! */ - #define TESTBASE(base) ( \ + #define TESTBASE(v3d, base) ( \ + (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ + (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ - (((base)->flag & BASE_VISIBLE) != 0)) + (((base)->flag & BASE_SELECTED) != 0) && \ + (((base)->flag & BASE_VISIBLE) != 0)) - #define TESTBASELIB(base) ( \ + #define TESTBASELIB(v3d, base) ( \ + (((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ + (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ - ((base)->object->id.lib == NULL) && \ - (((base)->flag & BASE_VISIBLE) != 0)) + (((base)->flag & BASE_SELECTED) != 0) && \ + ((base)->object->id.lib == NULL) && \ + (((base)->flag & BASE_VISIBLE) != 0)) - #define TESTBASELIB_BGMODE(base) ( \ + #define TESTBASELIB_BGMODE(v3d, base) ( \ + ((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ + ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ - (((base)->flag & BASE_SELECTED) != 0) && \ - ((base)->object->id.lib == NULL) && \ - (((base)->flag & BASE_VISIBLE) != 0)) + (((base)->flag & BASE_SELECTED) != 0) && \ + ((base)->object->id.lib == NULL) && \ + (((base)->flag & BASE_VISIBLE) != 0)) - #define BASE_EDITABLE_BGMODE(base) ( \ + #define BASE_EDITABLE_BGMODE(v3d, base) ( \ + ((v3d == NULL) || ((v3d)->localvd == NULL) || ((v3d)->local_view_uuid & (base)->local_view_bits)) && \ + ((v3d == NULL) || (((1 << (base)->object->type) & (v3d)->object_type_exclude_viewport) == 0)) && \ - ((base)->object->id.lib == NULL) && \ - (((base)->flag & BASE_VISIBLE) != 0)) + ((base)->object->id.lib == NULL) && \ + (((base)->flag & BASE_VISIBLE) != 0)) - #define BASE_SELECTABLE(base) \ - (((base)->flag & BASE_SELECTABLE) != 0) - #define BASE_VISIBLE(base) (
[Bf-blender-cvs] [821aa86d987] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 821aa86d98784a529bc80820d7e7164a04eb2fce Author: Nick Wu Date: Wed Nov 14 11:32:17 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB821aa86d98784a529bc80820d7e7164a04eb2fce Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/startup/bl_ui/properties_scene.py === === diff --cc source/blender/makesdna/DNA_scene_types.h index 27d499a5cba,d235cef1109..e6d38cc03ad --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -1485,70 -1506,11 +1506,73 @@@ typedef struct SceneEEVEE struct LightCache *light_cache; char light_cache_info[64]; + + float overscan; + float pad; } SceneEEVEE; + +/* LANPR Global Config */ + +struct LANPR_RenderBuffer; +struct LANPR_LineLayer; + +typedef struct SceneLANPR { + + int master_mode; + + int enable_vector_trace; + int display_thinning_result; + + //int SizeCompensate; + + float depth_clamp; + float depth_strength; + float normal_clamp; + float normal_strength; + + float line_thickness; + + int use_same_taper; + float taper_left_distance; + float taper_left_strength; + float taper_right_distance; + float taper_right_strength; + + int enable_tip_extend; + float extend_length; + + int snake_sensitivity; + + /* shared */ + + float contour_fade; /* for dpix contour fading,reserved for future usage */ + float crease_threshold; /* 0-1 range for cosine angle */ + float crease_fade_threshold; /* for dpix crease fading */ + + float line_color[4]; + float background_color[4]; + + float depth_width_influence; + float depth_width_curve; + float depth_alpha_influence; + float depth_alpha_curve; + + /* states (needs optimization) */ + + int reloaded; + + /* offline render */ + + struct LANPR_RenderBuffer *render_buffer; /* created when needed. for offline rendering */ + ListBase line_layers;/* now here!!! */ + struct LANPR_LineLayer*active_layer; + + int enable_intersections; + int enable_chaining; + +} SceneLANPR; + /* *** */ /* Scene ID-Block */ @@@ -2236,27 -2196,28 +2261,28 @@@ typedef enum eGPencil_Selectmode_types /* SceneEEVEE->flag */ enum { - SCE_EEVEE_VOLUMETRIC_ENABLED= (1 << 0), - SCE_EEVEE_VOLUMETRIC_LIGHTS = (1 << 1), - SCE_EEVEE_VOLUMETRIC_SHADOWS= (1 << 2), + SCE_EEVEE_VOLUMETRIC_ENABLED= (1 << 0), + SCE_EEVEE_VOLUMETRIC_LIGHTS = (1 << 1), + SCE_EEVEE_VOLUMETRIC_SHADOWS= (1 << 2), //SCE_EEVEE_VOLUMETRIC_COLORED= (1 << 3), /* Unused */ - SCE_EEVEE_GTAO_ENABLED = (1 << 4), - SCE_EEVEE_GTAO_BENT_NORMALS = (1 << 5), - SCE_EEVEE_GTAO_BOUNCE = (1 << 6), - SCE_EEVEE_DOF_ENABLED = (1 << 7), - SCE_EEVEE_BLOOM_ENABLED = (1 << 8), - SCE_EEVEE_MOTION_BLUR_ENABLED = (1 << 9), - SCE_EEVEE_SHADOW_HIGH_BITDEPTH = (1 << 10), - SCE_EEVEE_TAA_REPROJECTION = (1 << 11), - SCE_EEVEE_SSS_ENABLED = (1 << 12), - SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), - SCE_EEVEE_SSR_ENABLED = (1 << 14), - SCE_EEVEE_SSR_REFRACTION= (1 << 15), - SCE_EEVEE_SSR_HALF_RESOLUTION = (1 << 16), - SCE_EEVEE_SHOW_IRRADIANCE = (1 << 17), - SCE_EEVEE_SHOW_CUBEMAPS = (1 << 18), - SCE_EEVEE_GI_AUTOBAKE = (1 << 19), + SCE_EEVEE_GTAO_ENABLED = (1 << 4), + SCE_EEVEE_GTAO_BENT_NORMALS = (1 << 5), + SCE_EEVEE_GTAO_BOUNCE = (1 << 6), + SCE_EEVEE_DOF_ENABLED = (1 << 7), + SCE_EEVEE_BLOOM_ENABLED = (1 << 8), + SCE_EEVEE_MOTION_BLUR_ENABLED = (1 << 9), + SCE_EEVEE_SHADOW_HIGH_BITDEPTH = (1 << 10), + SCE_EEVEE_TAA_REPROJECTION = (1 << 11), + SCE_EEVEE_SSS_ENABLED = (1 << 12), + SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), + SCE_EEVEE_SSR_ENABLED = (1 << 14), + SCE_EEVEE_SSR_REFRACTION= (1 << 15), + SCE_EEVEE_SSR_HALF_RESOLUTION = (1 << 16), + SCE_EEVEE_SHOW_IRRADIANCE = (1 << 17), + SCE_EEVEE_SHOW_CUBEMAPS = (1 << 18)
[Bf-blender-cvs] [13a654d0f3f] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 13a654d0f3f33a6da9e59cbe10911978a70fb49c Author: Nick Wu Date: Wed Nov 14 11:34:27 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB13a654d0f3f33a6da9e59cbe10911978a70fb49c Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [b77c6a859ec] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: b77c6a859ec62139e079003b0ac2a4458620d521 Author: Nick Wu Date: Wed Oct 31 13:45:08 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBb77c6a859ec62139e079003b0ac2a4458620d521 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # source/blender/makesdna/DNA_scene_types.h # source/tools === === diff --cc source/blender/makesdna/DNA_scene_types.h index c38e2b1d629,9045fb4353d..27d499a5cba --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -2236,26 -2171,27 +2236,27 @@@ typedef enum eGPencil_Selectmode_types /* SceneEEVEE->flag */ enum { - SCE_EEVEE_VOLUMETRIC_ENABLED= (1 << 0), - SCE_EEVEE_VOLUMETRIC_LIGHTS = (1 << 1), - SCE_EEVEE_VOLUMETRIC_SHADOWS= (1 << 2), + SCE_EEVEE_VOLUMETRIC_ENABLED= (1 << 0), + SCE_EEVEE_VOLUMETRIC_LIGHTS = (1 << 1), + SCE_EEVEE_VOLUMETRIC_SHADOWS= (1 << 2), //SCE_EEVEE_VOLUMETRIC_COLORED= (1 << 3), /* Unused */ - SCE_EEVEE_GTAO_ENABLED = (1 << 4), - SCE_EEVEE_GTAO_BENT_NORMALS = (1 << 5), - SCE_EEVEE_GTAO_BOUNCE = (1 << 6), - SCE_EEVEE_DOF_ENABLED = (1 << 7), - SCE_EEVEE_BLOOM_ENABLED = (1 << 8), - SCE_EEVEE_MOTION_BLUR_ENABLED = (1 << 9), - SCE_EEVEE_SHADOW_HIGH_BITDEPTH = (1 << 10), - SCE_EEVEE_TAA_REPROJECTION = (1 << 11), - SCE_EEVEE_SSS_ENABLED = (1 << 12), - SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), - SCE_EEVEE_SSR_ENABLED = (1 << 14), - SCE_EEVEE_SSR_REFRACTION= (1 << 15), - SCE_EEVEE_SSR_HALF_RESOLUTION = (1 << 16), - SCE_EEVEE_SHOW_IRRADIANCE = (1 << 17), - SCE_EEVEE_SHOW_CUBEMAPS = (1 << 18), - SCE_EEVEE_GI_AUTOBAKE = (1 << 19), + SCE_EEVEE_GTAO_ENABLED = (1 << 4), + SCE_EEVEE_GTAO_BENT_NORMALS = (1 << 5), + SCE_EEVEE_GTAO_BOUNCE = (1 << 6), + SCE_EEVEE_DOF_ENABLED = (1 << 7), + SCE_EEVEE_BLOOM_ENABLED = (1 << 8), + SCE_EEVEE_MOTION_BLUR_ENABLED = (1 << 9), + SCE_EEVEE_SHADOW_HIGH_BITDEPTH = (1 << 10), + SCE_EEVEE_TAA_REPROJECTION = (1 << 11), + SCE_EEVEE_SSS_ENABLED = (1 << 12), + SCE_EEVEE_SSS_SEPARATE_ALBEDO = (1 << 13), + SCE_EEVEE_SSR_ENABLED = (1 << 14), + SCE_EEVEE_SSR_REFRACTION= (1 << 15), + SCE_EEVEE_SSR_HALF_RESOLUTION = (1 << 16), + SCE_EEVEE_SHOW_IRRADIANCE = (1 << 17), + SCE_EEVEE_SHOW_CUBEMAPS = (1 << 18), + SCE_EEVEE_GI_AUTOBAKE = (1 << 19), + SCE_EEVEE_SHADOW_SOFT = (1 << 20), }; /* SceneEEVEE->shadow_method */ diff --cc source/blender/makesrna/RNA_access.h index 66eb3c65feb,ad193eecbe8..853bb3e58c4 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@@ -495,15 -508,13 +509,14 @@@ extern StructRNA RNA_RenderLayer extern StructRNA RNA_RenderPass; extern StructRNA RNA_RenderResult; extern StructRNA RNA_RenderSettings; - extern StructRNA RNA_RenderEngineSettings; - extern StructRNA RNA_RenderEngineSettingsClay; - extern StructRNA RNA_RigidBodyWorld; - extern StructRNA RNA_RigidBodyObject; extern StructRNA RNA_RigidBodyJointConstraint; + extern StructRNA RNA_RigidBodyObject; + extern StructRNA RNA_RigidBodyWorld; extern StructRNA RNA_SPHFluidSettings; extern StructRNA RNA_Scene; + extern StructRNA RNA_SceneDisplay; extern StructRNA RNA_SceneEEVEE; +extern StructRNA RNA_SceneLANPR; extern StructRNA RNA_SceneObjects; extern StructRNA RNA_SceneRenderLayer; extern StructRNA RNA_SceneSequence; diff --cc source/blender/makesrna/intern/rna_scene.c index f0b03c6fae0,46f29267929..8f10b28ea8a --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -6072,264 -6010,14 +6068,270 @@@ static void rna_def_scene_eevee(Blender RNA_def_property_boolean_default(prop, 0); RNA_def_property_ui_text(prop, "High Bitdepth", "Use 32bit shadows"); RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_STATIC); + + prop = RNA_def_property(srna, "use_soft_shadows", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag&qu
[Bf-blender-cvs] [fc650ae86a8] soc-2018-npr: Make ui work under new api.
Commit: fc650ae86a8b60c6e91fb36078b3256952947d76 Author: Nick Wu Date: Wed Nov 7 22:37:14 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBfc650ae86a8b60c6e91fb36078b3256952947d76 Make ui work under new api. === M release/scripts/startup/bl_ui/properties_scene.py === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 3e914db5e5c..b2f1558bcb8 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -655,16 +655,16 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): col = split.column() col.label(text="Layer Composition:") col = split.column() -col.operator("scene.lanpr_auto_create_line_layer", text = "Default", icon = "ZOOMIN") +col.operator("scene.lanpr_auto_create_line_layer", text = "Default")#, icon = "ZOOMIN") layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=4) if active_layer: split = layout.split() col = split.column() -col.operator("scene.lanpr_add_line_layer", icon="ZOOMIN") -col.operator("scene.lanpr_delete_line_layer", icon="ZOOMOUT") +col.operator("scene.lanpr_add_line_layer")#icon="ZOOMIN") +col.operator("scene.lanpr_delete_line_layer")#, icon="ZOOMOUT") col = split.column() -col.operator("scene.lanpr_move_line_layer", icon="TRIA_UP").direction = "UP" -col.operator("scene.lanpr_move_line_layer", icon="TRIA_DOWN").direction = "DOWN" +col.operator("scene.lanpr_move_line_layer").direction = "UP" +col.operator("scene.lanpr_move_line_layer").direction = "DOWN" layout.operator("scene.lanpr_rebuild_all_commands") else: layout.operator("scene.lanpr_add_line_layer") @@ -770,7 +770,7 @@ class SCENE_PT_lanpr_line_components(SceneButtonsPanel, Panel): lanpr = scene.lanpr active_layer = lanpr.layers.active_layer -layout.operator("scene.lanpr_add_line_component", icon = "ZOOMIN") +layout.operator("scene.lanpr_add_line_component")#, icon = "ZOOMIN") i=0 for c in active_layer.components: @@ -787,7 +787,7 @@ class SCENE_PT_lanpr_line_components(SceneButtonsPanel, Panel): elif c.component_mode == "COLLECTION": cl.prop(c,"collection_select", text = "") col = split.column() -col.operator("scene.lanpr_delete_line_component", text="", icon = "ZOOMOUT").index=i +col.operator("scene.lanpr_delete_line_component", text="").index=i i=i+1 ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [7a34d16d7a1] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 7a34d16d7a11561de621d0bd16b54a0ffea4d744 Author: Nick Wu Date: Sun Oct 21 14:16:32 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB7a34d16d7a11561de621d0bd16b54a0ffea4d744 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [fc94e46f367] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: fc94e46f367abfbe8cc58c2f0dbe93292c348cbc Author: Nick Wu Date: Thu Oct 25 17:54:30 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBfc94e46f367abfbe8cc58c2f0dbe93292c348cbc Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [8ae40f4fcb5] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 8ae40f4fcb571818ac83325ecedfe051e82b0c15 Author: Nick Wu Date: Wed Sep 19 22:24:36 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB8ae40f4fcb571818ac83325ecedfe051e82b0c15 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [6a638e95551] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr, also fix errors in modifier code.
Commit: 6a638e95551bdc4d0310b392b39b8a7d8eed6517 Author: Nick Wu Date: Sat Oct 20 13:05:21 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB6a638e95551bdc4d0310b392b39b8a7d8eed6517 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr, also fix errors in modifier code. # Conflicts: # release/scripts/startup/bl_ui/properties_data_camera.py # release/scripts/startup/bl_ui/properties_data_speaker.py # release/scripts/startup/bl_ui/properties_render.py # release/scripts/startup/bl_ui/properties_scene.py # source/blender/makesrna/intern/rna_scene.c === === diff --cc release/scripts/startup/bl_ui/properties_data_camera.py index 7c4a3770b41,0e3ee0e3044..9862013f08b --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@@ -181,7 -181,8 +181,8 @@@ class DATA_PT_camera_stereoscopy(Camera class DATA_PT_camera(CameraButtonsPanel, Panel): bl_label = "Camera" +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} + bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} def draw_header_preset(self, context): CAMERA_PT_presets.draw_panel_header(self.layout) diff --cc release/scripts/startup/bl_ui/properties_scene.py index 4962a5c7626,47f6c7662b1..3e914db5e5c --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@@ -74,7 -74,8 +74,8 @@@ class SCENE_PT_scene(SceneButtonsPanel class SCENE_PT_unit(SceneButtonsPanel, Panel): bl_label = "Units" + bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', "BLENDER_LANPR"} def draw(self, context): layout = self.layout diff --cc source/blender/makesrna/intern/rna_scene.c index 661c0620b07,7679ff41ba3..77dbdec5bdc --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -459,27 -457,27 +459,27 @@@ static const EnumPropertyItem rna_enum_ #endif const EnumPropertyItem rna_enum_transform_pivot_items_full[] = { - {V3D_AROUND_CENTER_BOUNDS, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", + {V3D_AROUND_CENTER_BOUNDS, "BOUNDING_BOX_CENTER", ICON_PIVOT_BOUNDBOX, "Bounding Box Center", - "Pivot around bounding box center of selected object(s)"}, + "Pivot around bounding box center of selected object(s)"}, - {V3D_AROUND_CURSOR, "CURSOR", ICON_CURSOR, "3D Cursor", "Pivot around the 3D cursor"}, - {V3D_AROUND_LOCAL_ORIGINS, "INDIVIDUAL_ORIGINS", ICON_ROTATECOLLECTION, + {V3D_AROUND_CURSOR, "CURSOR", ICON_PIVOT_CURSOR, "3D Cursor", "Pivot around the 3D cursor"}, + {V3D_AROUND_LOCAL_ORIGINS, "INDIVIDUAL_ORIGINS", ICON_PIVOT_INDIVIDUAL, - "Individual Origins", "Pivot around each object's own origin"}, + "Individual Origins", "Pivot around each object's own origin"}, - {V3D_AROUND_CENTER_MEAN, "MEDIAN_POINT", ICON_ROTATECENTER, "Median Point", + {V3D_AROUND_CENTER_MEAN, "MEDIAN_POINT", ICON_PIVOT_MEDIAN, "Median Point", - "Pivot around the median point of selected objects"}, + "Pivot around the median point of selected objects"}, - {V3D_AROUND_ACTIVE, "ACTIVE_ELEMENT", ICON_ROTACTIVE, "Active Element", "Pivot around active object"}, + {V3D_AROUND_ACTIVE, "ACTIVE_ELEMENT", ICON_PIVOT_ACTIVE, "Active Element", "Pivot around active object"}, {0, NULL, 0, NULL, NULL} }; /* Icons could be made a consistent set of images. */ const EnumPropertyItem rna_enum_transform_orientation_items[] = { - {V3D_MANIP_GLOBAL, "GLOBAL", ICON_SCENE_DATA, "Global", "Align the transformation axes to world space"}, - {V3D_MANIP_LOCAL, "LOCAL", ICON_MANIPUL, "Local", "Align the transformation axes to the selected objects' local space"}, - {V3D_MANIP_NORMAL, "NORMAL", ICON_SNAP_NORMAL, "Normal", + {V3D_MANIP_GLOBAL, "GLOBAL", ICON_ORIENTATION_GLOBAL, "Global", "Align the transformation axes to world space"}, + {V3D_MANIP_LOCAL, "LOCAL", ICON_ORIENTATION_LOCAL, "Local", "Align the transformation a
[Bf-blender-cvs] [0bc6e431cc4] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 0bc6e431cc47fa41c2544d6ffead19c61bac2a68 Author: Nick Wu Date: Wed Oct 3 18:30:02 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB0bc6e431cc47fa41c2544d6ffead19c61bac2a68 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/blender/makesrna/intern/rna_scene.c === === diff --cc release/scripts/startup/bl_ui/properties_scene.py index b14215fb8c5,2cabefe905e..4962a5c7626 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@@ -82,11 -74,8 +74,8 @@@ class SCENE_PT_scene(SceneButtonsPanel class SCENE_PT_unit(SceneButtonsPanel, Panel): bl_label = "Units" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', "BLENDER_LANPR"} - def draw_header_preset(self, context): - SCENE_PT_units_length_presets.draw_panel_header(self.layout) - def draw(self, context): layout = self.layout diff --cc source/blender/makesdna/DNA_scene_types.h index 58edfcec8cd,15e8f950686..93f129c3290 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -2171,25 -2123,31 +2188,31 @@@ typedef enum eGPencil_Placement_Flags GP_PROJECT_CURSOR = (1 << 5), } eGPencil_Placement_Flags; + /* ToolSettings.gpencil_selectmode */ + typedef enum eGPencil_Selectmode_types { + GP_SELECTMODE_POINT = 0, + GP_SELECTMODE_STROKE = 1 + } eGPencil_Selectmode_types; + /* ToolSettings.particle flag */ -#define PE_KEEP_LENGTHS 1 -#define PE_LOCK_FIRST 2 -#define PE_DEFLECT_EMITTER4 -#define PE_INTERPOLATE_ADDED 8 -#define PE_DRAW_PART 16 +#define PE_KEEP_LENGTHS 1 +#define PE_LOCK_FIRST 2 +#define PE_DEFLECT_EMITTER 4 +#define PE_INTERPOLATE_ADDED8 +#define PE_DRAW_PART16 /* #define PE_X_MIRROR64 */ /* deprecated */ -#define PE_FADE_TIME 128 -#define PE_AUTO_VELOCITY 256 +#define PE_FADE_TIME128 +#define PE_AUTO_VELOCITY256 /* ParticleEditSettings.brushtype */ -#define PE_BRUSH_NONE -1 -#define PE_BRUSH_COMB 0 -#define PE_BRUSH_CUT 1 -#define PE_BRUSH_LENGTH 2 -#define PE_BRUSH_PUFF 3 -#define PE_BRUSH_ADD 4 -#define PE_BRUSH_SMOOTH 5 -#define PE_BRUSH_WEIGHT 6 +#define PE_BRUSH_NONE -1 +#define PE_BRUSH_COMB 0 +#define PE_BRUSH_CUT1 +#define PE_BRUSH_LENGTH 2 +#define PE_BRUSH_PUFF 3 +#define PE_BRUSH_ADD4 +#define PE_BRUSH_SMOOTH 5 +#define PE_BRUSH_WEIGHT 6 /* ParticleBrushData.flag */ #define PE_BRUSH_DATA_PUFF_VOLUME 1 @@@ -2204,13 -2162,14 +2227,14 @@@ /* UnitSettings */ + #define USER_UNIT_ADAPTIVE 0xFF /* UnitSettings.system */ -#define USER_UNIT_NONE 0 -#define USER_UNIT_METRIC1 -#define USER_UNIT_IMPERIAL 2 +#define USER_UNIT_NONE 0 +#define USER_UNIT_METRIC1 +#define USER_UNIT_IMPERIAL 2 /* UnitSettings.flag */ -#define USER_UNIT_OPT_SPLIT 1 -#define USER_UNIT_ROT_RADIANS 2 +#define USER_UNIT_OPT_SPLIT 1 +#define USER_UNIT_ROT_RADIANS 2 /* SceneEEVEE->flag */ enum { diff --cc source/blender/makesrna/intern/rna_scene.c index ed44c3df058,11d56206d6e..661c0620b07 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -2017,57 -2016,69 +2018,120 @@@ const EnumPropertyItem *rna_TransformOr return item; } + static const EnumPropertyItem *get_unit_enum_items(int system, int type, bool *r_free) + { + const void *usys; + int len; + bUnit_GetSystem(system, type, , ); + + EnumPropertyItem *items = NULL; + int totitem = 0; + + EnumPropertyItem adaptive = { 0 }; + adaptive.identifier = "ADAPTIVE"; + adaptive.name = "Adaptive"; + adaptive.value = USER_UNIT_ADAPTIVE; + RNA_enum_item_add(, , ); + + for (int i = 0; i < len; i++) { + if (!bUnit_IsSuppressed(usys, i)) { + EnumPropertyItem tmp = { 0 }; + tmp.identifier = bUnit_GetName(usys, i); + tmp.name = bUnit_GetNameDisplay(usys, i); + tmp.value = i; + RNA_enum_item_add(, , ); + } + } + + *r_free = true; + return items; + } + + const EnumPropertyItem *rna_get_length_unit_items( + bContext *UNUSED(C), Point
[Bf-blender-cvs] [74294b8686a] soc-2018-npr: Fix interface lock situation reported by DarkDefender.
Commit: 74294b8686ab107dd24b98431400a4a03ffb7bb4 Author: Nick Wu Date: Mon Sep 17 21:49:08 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB74294b8686ab107dd24b98431400a4a03ffb7bb4 Fix interface lock situation reported by DarkDefender. === 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 1c8c570a3b5..5d83bd72323 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -408,15 +408,17 @@ void lanpr_batch_free(SceneLANPR *lanpr) { } +// below are commented to prevent interface lock in some conditions. +// should look into it, void lanpr_set_render_flag() { - BLI_spin_lock(_share.render_flag_lock); - lanpr_share.during_render = 1; - BLI_spin_unlock(_share.render_flag_lock); + //BLI_spin_lock(_share.render_flag_lock); + //lanpr_share.during_render = 1; + //BLI_spin_unlock(_share.render_flag_lock); } void lanpr_clear_render_flag() { - BLI_spin_lock(_share.render_flag_lock); - lanpr_share.during_render = 0; - BLI_spin_unlock(_share.render_flag_lock); + //BLI_spin_lock(_share.render_flag_lock); + //lanpr_share.during_render = 0; + //BLI_spin_unlock(_share.render_flag_lock); } int lanpr_during_render() { int status; @@ -578,6 +580,8 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, LANPR_render_cache); lanpr_cache_finish(vedata); + DRW_render_instance_buffer_finish(); + float clear_col[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; float clear_depth = 1.0f; uint clear_stencil = 0xFF; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [923f59a984f] soc-2018-npr: DPIX normal controlled line width
Commit: 923f59a984f80eb4f010366003b858c4558b4501 Author: Nick Wu Date: Sun Sep 16 15:35:41 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB923f59a984f80eb4f010366003b858c4558b4501 DPIX normal controlled line width === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 8e061c4e004..b14215fb8c5 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -675,15 +675,15 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): else: layout.operator("scene.lanpr_add_line_layer") -layout.label(text= "Normal:") -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) +layout.label(text= "Normal:") +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) elif not lanpr.layers.active_layer: layout.operator("scene.lanpr_add_line_layer") diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index d91fee3d10d..1c8c570a3b5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -193,6 +193,8 @@ static void lanpr_engine_free(void){ stl->g_data = 0; } +void lanpr_calculate_normal_object_vector(LANPR_LineLayer* ll, float* normal_object_direction); + static void lanpr_cache_init(void *vedata){ LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; @@ -201,6 +203,8 @@ static void lanpr_cache_init(void *vedata){ DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); + static float normal_object_direction[3] = { 0,0,1 }; + if (!stl->g_data) { /* Alloc transient pointers */ stl->g_data = MEM_callocN(sizeof(*stl->g_data), __func__); @@ -271,6 +275,8 @@ static void lanpr_cache_init(void *vedata){ stl->g_data->dpix_preview_shgrp = DRW_shgroup_create(lanpr_share.dpix_preview_shader, psl->dpix_preview_pass); DRW_shgroup_uniform_texture_ref(stl->g_data->dpix_preview_shgrp, "vert0_tex", >dpix_out_pl); DRW_shgroup_uniform_texture_ref(stl->g_data->dpix_preview_shgrp, "vert1_tex", >dpix_out_pr); + DRW_shgroup_uniform_texture_ref(stl->g_data->dpix_preview_shgrp, "face_normal0_tex", >dpix_in_nl); + DRW_shgroup_uniform_texture_ref(stl->g_data->dpix_preview_shgrp, "face_normal1_tex", >dpix_in_nr);// these are for normal shading DRW_shgroup_uniform_texture_ref(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); @@ -293,6 +299,16 @@ static void lanpr_cache_init(void *vedata){ DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp, "z_near", >g_data->dpix_znear, 1); DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp, "z_far", &
[Bf-blender-cvs] [bef1fb79ee5] soc-2018-npr: Vertical line hack: tip point threshod fix and a condition branch.
Commit: bef1fb79ee52a000419bc131e52957906464a06d Author: Nick Wu Date: Sun Sep 16 15:00:57 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBbef1fb79ee52a000419bc131e52957906464a06d Vertical line hack: tip point threshod fix and a condition branch. === M release/scripts/addons M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/lanpr_util.h === diff --git a/release/scripts/addons b/release/scripts/addons index 5f7fba0565a..c88411ff777 16 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit 5f7fba0565a7c9ae93eae31a08fc9bbbd16d333a +Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611 diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index f1a4e15a1ec..5f077d5e15f 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -816,6 +816,8 @@ void lanpr_calculate_single_line_occlusion(LANPR_RenderBuffer *rb, LANPR_RenderL int PositiveX = (rl->R->FrameBufferCoord[0] - rl->L->FrameBufferCoord[0]) > 0 ? 1 : (rl->R->FrameBufferCoord[0] == rl->L->FrameBufferCoord[0] ? 0 : -1); int PositiveY = (rl->R->FrameBufferCoord[1] - rl->L->FrameBufferCoord[1]) > 0 ? 1 : (rl->R->FrameBufferCoord[1] == rl->L->FrameBufferCoord[1] ? 0 : -1); + //printf("PX %d %lf PY %d %lf\n", PositiveX, rl->R->FrameBufferCoord[0] - rl->L->FrameBufferCoord[0], PositiveY, rl->R->FrameBufferCoord[1] - rl->L->FrameBufferCoord[1]); + while (nba) { @@ -2203,8 +2205,11 @@ int lanpr_triangle_line_imagespace_intersection_v2(SpinLock *spl, LANPR_RenderTr //Trans[2] = tmat_dist_3dv(GLocation, cam->Base.GLocation); //Trans[2] = cam->clipsta*cam->clipend / (cam->clipend - fabs(Trans[2]) * (cam->clipend - cam->clipsta)); - - Cut = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], Trans[0]); + //prevent vertical problem ? + if(rl->L->FrameBufferCoord[0] != rl->R->FrameBufferCoord[0]) + Cut = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], Trans[0]); + else + Cut = tMatGetLinearRatio(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], Trans[1]); In = lanpr_point_inside_triangled(Trans, rt->V[0]->FrameBufferCoord, rt->V[1]->FrameBufferCoord, rt->V[2]->FrameBufferCoord); diff --git a/source/blender/draw/engines/lanpr/lanpr_util.h b/source/blender/draw/engines/lanpr/lanpr_util.h index fd1f8a7c9fb..7d7f79d6e65 100644 --- a/source/blender/draw/engines/lanpr/lanpr_util.h +++ b/source/blender/draw/engines/lanpr/lanpr_util.h @@ -46,7 +46,7 @@ typedef int tnsVector2i[2]; typedef struct _##a a; \ struct _##a -#define DBL_TRIANGLE_LIM 1e-11 +#define DBL_TRIANGLE_LIM 1e-8 #define DBL_EDGE_LIM 1e-9 ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [1bd6f3605d0] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 1bd6f3605d0e12f6b595ca2dadaed8c177cdf3bd Author: Nick Wu Date: Sat Sep 15 11:03:29 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB1bd6f3605d0e12f6b595ca2dadaed8c177cdf3bd Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons_contrib # release/scripts/startup/bl_ui/properties_physics_cloth.py # source/tools === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [843a57e3a5a] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 843a57e3a5a01449735b8bc68743afa11522268a Author: Nick Wu Date: Sun Sep 16 15:02:02 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB843a57e3a5a01449735b8bc68743afa11522268a Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [85f6277e6cf] soc-2018-npr: Possibly fixed shader errors, but don't know exactly what caused it.
Commit: 85f6277e6cf7760d422b3d3fe440a48e5e905783 Author: Nick Wu Date: Wed Sep 12 23:03:34 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB85f6277e6cf7760d422b3d3fe440a48e5e905783 Possibly fixed shader errors, but don't know exactly what caused it. === 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 === diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl index ea51655815c..a9820014817 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl @@ -31,11 +31,11 @@ uniform float line_thickness_material; uniform float line_thickness_edge_mark; uniform float line_thickness_intersection; -float use_thickness = line_thickness; +float use_thickness; out vec4 out_color; -vec4 use_color = color; +vec4 use_color; float get_linear_depth(float z){ float ze = 2.0 * z_near * z_far / (z_far + z_near - z * (z_far - z_near)); @@ -104,11 +104,13 @@ void main() { int is_crease = 0; - if (p1.w>0) { use_color = color; use_thickness = line_thickness; } // contour override - else if (p2.w>0) { use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } - else if (edge_mask.g > 0) { use_color = edge_mark_color; use_thickness = line_thickness * line_thickness_edge_mark; } + use_thickness = line_thickness; + use_color = color; + + if (edge_mask.g > 0) { use_color = edge_mark_color; use_thickness = line_thickness * line_thickness_edge_mark; } else if (edge_mask.r > 0) { use_color = material_color; use_thickness = line_thickness * line_thickness_material; } else if (edge_mask.b > 0) { use_color = intersection_color; use_thickness = line_thickness * line_thickness_intersection; } + else if (p2.w != p1.w){ use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } draw_line(p1, p2, is_crease); } \ No newline at end of file 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 f5fff375e7d..093f17afae2 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 @@ -369,6 +369,7 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position) ((enable_edge_mark > 0) && (edge_mask.g > 0)) || ((enable_intersection > 0) && (edge_mask.b > 0)) || false) return 2; + return 0; } void main(){ @@ -511,7 +512,7 @@ void main(){ //if(v0_clipped_pre_div == v1_clipped_pre_div)gl_FragData[0] =vec4(1); //else gl_FragData[0] = vec4(v0_clipped_pre_div.xyz,1); - gl_FragData[0] = vec4(v0_clipped_pre_div.xyz, profile_on==1 ? 1 : 0);//contour has priority + gl_FragData[0] = vec4(v0_clipped_pre_div.xyz, 1);//contour has priority, modification cause trouble gl_FragData[1] = vec4(v1_clipped_pre_div.xyz, is_crease > 0 ? crease_strength : 1); //gl_FragData[2] = packOffsetTexel(num_samples, segment_screen_length, //num_samples, segment_screen_length); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b3ed2a87512] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: b3ed2a875122ca3d1224b9ed534c5e5fb2d3186a Author: Nick Wu Date: Wed Sep 12 22:27:01 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBb3ed2a875122ca3d1224b9ed534c5e5fb2d3186a Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/tools === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [c44e716f9c9] soc-2018-npr: Fixed still frame render cache out of date error.
Commit: c44e716f9c9898d11f1ca0f73928734cdd4160aa Author: Nick Wu Date: Fri Sep 7 22:16:21 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBc44e716f9c9898d11f1ca0f73928734cdd4160aa Fixed still frame render cache out of date error. === M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl M source/blender/draw/modes/object_mode.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index db35244ef1d..d91fee3d10d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -493,20 +493,41 @@ static void workbench_render_matrices_init(RenderEngine *engine, Depsgraph *deps int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr, Scene *scene); LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr); +extern DrawEngineType draw_engine_lanpr_type; + +static int LANPR_GLOBAL_update_tag; + +void lanpr_id_update(LANPR_Data *vedata, ID *id){ + //if (vedata->engine_type != _engine_lanpr_type) return; + + /* Handle updates based on ID type. */ + switch (GS(id->name)) { + case ID_WO: + case ID_OB: + case ID_ME: + LANPR_GLOBAL_update_tag = 1; + default: + /* pass */ + break; + } +} + static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect){ LANPR_StorageList *stl = vedata->stl; LANPR_TextureList *txl = vedata->txl; LANPR_FramebufferList *fbl = vedata->fbl; const DRWContextState *draw_ctx = DRW_context_state_get(); + //int update_mark = DEG_id_type_any_updated(draw_ctx->depsgraph); Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR *lanpr = >lanpr; + lanpr_set_render_flag(); if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE || (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->enable_intersections)) { if (!lanpr->render_buffer) lanpr_create_render_buffer(lanpr); - if (lanpr->render_buffer->cached_for_frame != scene->r.cfra) { + if (lanpr->render_buffer->cached_for_frame != scene->r.cfra || LANPR_GLOBAL_update_tag) { lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, lanpr, scene); } } @@ -613,7 +634,7 @@ DrawEngineType draw_engine_lanpr_type = { NULL,//draw background _draw_scene,//draw scene, looks like that not much difference except a camera overlay image. _view_update, - NULL, //_id_update, wait till I figure out how to do this. + _id_update, //_id_update, wait till I figure out how to do this. _render_to_image, }; diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl index 79ccbe12b63..ea51655815c 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl @@ -105,10 +105,10 @@ void main() { int is_crease = 0; if (p1.w>0) { use_color = color; use_thickness = line_thickness; } // contour override + else if (p2.w>0) { use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } else if (edge_mask.g > 0) { use_color = edge_mark_color; use_thickness = line_thickness * line_thickness_edge_mark; } else if (edge_mask.r > 0) { use_color = material_color; use_thickness = line_thickness * line_thickness_material; } else if (edge_mask.b > 0) { use_color = intersection_color; use_thickness = line_thickness * line_thickness_intersection; } - else if (p2.w>0) { use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } draw_line(p1, p2, is_crease); } \ No newline at end of file diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 0a83feb879c..ecf1d042049 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -2979,6 +2979,9 @@ static void OBJECT_draw_scene(void *vedata) static const DrawEngineDataSize OBJECT_data_size = DRW_VIEWPORT_DATA_SIZE(OBJECT_Data); +struct LANPR_Data; +void lanpr_id_update(struct LANPR_Data *vedata, ID *id); + DrawEngineType draw_engine_object_type = { NULL, NULL,
[Bf-blender-cvs] [44981260169] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 4498126016926cf89f426499d691d4c1490d17ca Author: Nick Wu Date: Fri Sep 7 23:13:23 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4498126016926cf89f426499d691d4c1490d17ca Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/blender/draw/CMakeLists.txt # source/blender/makesrna/intern/rna_scene.c === === diff --cc source/blender/draw/CMakeLists.txt index 106e0653536,b9881162e9a..80551ef7e29 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@@ -157,9 -151,8 +157,10 @@@ set(SR engines/eevee/eevee_lut.h engines/eevee/eevee_private.h engines/external/external_engine.h - + engines/workbench/workbench_engine.h + engines/workbench/workbench_private.h + engines/lanpr/lanpr_util.h + engines/lanpr/lanpr_all.h ) data_to_c_simple(engines/eevee/shaders/ambient_occlusion_lib.glsl SRC) diff --cc source/blender/makesrna/intern/rna_scene.c index fca178eb6bf,e451c87aa3a..27039e1134a --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -2829,11 -2775,10 +2829,11 @@@ static void rna_def_curve_paint_setting RNA_def_property_ui_text(prop, "Depth", "Method of projecting depth"); static const EnumPropertyItem surface_plane_items[] = { - {CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW, "NORMAL_VIEW", 0, "Normal/View", "Draw perpendicular to the surface"}, - {CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE, "NORMAL_SURFACE", 0, "Normal/Surface", "Draw aligned to the surface"}, - {CURVE_PAINT_SURFACE_PLANE_VIEW, "VIEW", 0, "View", "Draw aligned to the viewport"}, + {CURVE_PAINT_SURFACE_PLANE_NORMAL_VIEW, "NORMAL_VIEW", 0, "Normal/View", "Display perpendicular to the surface"}, + {CURVE_PAINT_SURFACE_PLANE_NORMAL_SURFACE, "NORMAL_SURFACE", 0, "Normal/Surface", "Display aligned to the surface"}, + {CURVE_PAINT_SURFACE_PLANE_VIEW, "VIEW", 0, "View", "Display aligned to the viewport"}, - {0, NULL, 0, NULL, NULL}}; + {0, NULL, 0, NULL, NULL} + }; prop = RNA_def_property(srna, "surface_plane", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "surface_plane"); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dacceb573f7] soc-2018-npr: Fixed vertical line missed calculations.
Commit: dacceb573f7a41510dcc80d427923162ba731dff Author: Nick Wu Date: Thu Sep 6 13:39:55 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBdacceb573f7a41510dcc80d427923162ba731dff Fixed vertical line missed calculations. === 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 fe97c160661..7ba0687add5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -620,13 +620,14 @@ BLI_INLINE int lanpr_LineIntersectTest2d(const double *a1, const double *a2, con return 0; } double r2 = tMatGetLinearRatio(b1[0], b2[0], a1[0]); + x = tnsLinearItp(b1[0], b2[0], r2); y = tnsLinearItp(b1[1], b2[1], r2); *aRatio = Ratio = tMatGetLinearRatio(a1[1], a2[1], y); } else { if (xDiff2 == 0) { Ratio = tMatGetLinearRatio(a1[0], a2[0], b1[0]); - //y = tnsLinearItp(a1[1], a2[1], r2); + x = tnsLinearItp(a1[0], a2[0], Ratio); *aRatio = Ratio; } else { diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 5f4f2af8a6a..f1a4e15a1ec 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -547,7 +547,7 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR } }else { // X difference == 0; if (PositiveY > 0) { - r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], This->U); + r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], This->U); if (r1 > 1) return 0; for (lip = This->UP.first; lip; lip = lip->pNext) { ba = lip->p; @@ -555,7 +555,7 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR } } else if (PositiveY < 0) { - r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], This->B); + r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], This->B); if (r1 > 1) return 0; for (lip = This->BP.first; lip; lip = lip->pNext) { ba = lip->p; @@ -1768,7 +1768,7 @@ void lanpr_make_render_geometry_buffers(Depsgraph *depsgraph, Scene *s, Object * tmat_make_perspective_matrix_44d(proj, fov, asp, cam->clipsta, cam->clipend); } elif(cam->type == CAM_ORTHO) { - real w = cam->ortho_scale; + real w = cam->ortho_scale/2; tmat_make_ortho_matrix_44d(proj, -w, w, -w / asp, w / asp, cam->clipsta, cam->clipend); } @@ -2944,15 +2944,18 @@ void *lanpr_make_leveled_edge_vertex_array(LANPR_RenderBuffer *rb, ListBase *Lin } N += 6; + CLAMP(rls->at, 0, 1); + if(irls = rls->Item.pNext) CLAMP(irls->at, 0, 1); + *V = tnsLinearItp(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rls->at); V++; *V = tnsLinearItp(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], rls->at); V++; *V = componet_id; V++; - *V = tnsLinearItp(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rls->Item.pNext ? (irls = rls->Item.pNext)->at : 1); + *V = tnsLinearItp(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], irls ? irls->at : 1); V++; - *V = tnsLinearItp(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], rls->Item.pNext ? (irls = rls->Item.pNext)->at : 1); + *V = tnsLinearItp(rl->L->FrameBufferCoord[1], rl->R->FrameBufferCoord[1], irls ? irls->at : 1); V++; *V = componet_id; V++; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [fceb384ad1c] soc-2018-npr: Partly fixed "Absolute horizontal/vertical" situations.
Commit: fceb384ad1ca9d8c27b195fc0ad397a9dcd8544e Author: Nick Wu Date: Thu Sep 6 12:01:26 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBfceb384ad1ca9d8c27b195fc0ad397a9dcd8544e Partly fixed "Absolute horizontal/vertical" situations. === 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 c0b72bdbac0..fe97c160661 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -279,6 +279,9 @@ typedef struct LANPR_RenderTaskInfo { struct nListItemPointer *Material; ListBase MaterialPointers; + struct nListItemPointer *EdgeMark; + ListBase EdgeMarkPointers; + } LANPR_RenderTaskInfo; typedef struct LANPR_RenderBuffer { diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 394c87db01b..5f4f2af8a6a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -449,10 +449,10 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR real rx, ry, ux, uy, lx, ly, bx, by; real r1, r2; LANPR_BoundingArea *ba; nListItemPointer *lip; - if (PositiveX) { + if (PositiveX > 0) { rx = This->R; ry = y + k * (rx - x); - if (PositiveY) { + if (PositiveY > 0) { uy = This->U; ux = x + (uy - y) / k; r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rx); @@ -471,7 +471,7 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR } } } - else { + else if (PositiveY < 0) { by = This->B; bx = x + (by - y) / k; r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], rx); @@ -489,12 +489,18 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR if (ba->R >= bx && ba->L < bx) { *NextX = bx; *NextY = by; return ba; } } } + }else { // Y diffence == 0 + r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], This->R); + if (r1 > 1) return 0; + for (lip = This->RP.first; lip; lip = lip->pNext) { + ba = lip->p; + if (ba->U >= y && ba->B < y) { *NextX = This->R; *NextY = y; return ba; } + } } - } - else { + }else if (PositiveX < 0) { // X diffence < 0 lx = This->L; ly = y + k * (lx - x); - if (PositiveY) { + if (PositiveY > 0) { uy = This->U; ux = x + (uy - y) / k; r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], lx); @@ -513,7 +519,7 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR } } } - else { + else if (PositiveY < 0) { by = This->B; bx = x + (by - y) / k; r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], lx); @@ -531,7 +537,32 @@ LANPR_BoundingArea *lanpr_get_next_bounding_area(LANPR_BoundingArea *This, LANPR if (ba->R >= bx && ba->L < bx) { *NextX = bx; *NextY = by; return ba; } } } + }else { // Y diffence == 0 + r1 = tMatGetLinearRatio(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0], This->L); + if (r1 > 1) return 0; + for (lip = This->LP.first; lip; lip = lip->pNext) { + ba = lip->p; + if (ba->U >= y && ba->B < y) { *NextX = This->L; *NextY = y; return ba; } + } + } + }else { // X difference == 0; + if (Positi
[Bf-blender-cvs] [b6b0d986bb5] soc-2018-npr: Fixed contour priority. Fixed software mode line type shader.
Commit: b6b0d986bb538e20eafb809069c3dfc8e724387f Author: Nick Wu Date: Thu Sep 6 10:49:22 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBb6b0d986bb538e20eafb809069c3dfc8e724387f Fixed contour priority. Fixed software mode line type shader. === M source/blender/draw/engines/lanpr/lanpr_ops.c 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_software_passthrough_vert.glsl === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index ddc55eb411b..394c87db01b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2075,8 +2075,8 @@ int lanpr_triangle_line_imagespace_intersection_v2(SpinLock *spl, LANPR_RenderTr //printf("%f %f %f %f %f\n", FBC0[2], FBC1[2], FBC2[2], LFBC[2], RFBC[2]); //bound box. - if (MIN3(FBC0[2], FBC1[2], FBC2[2]) > MAX2(LFBC[2], RFBC[2])) - return 0; + //if (MIN3(FBC0[2], FBC1[2], FBC2[2]) > MAX2(LFBC[2], RFBC[2])) + // return 0; if (MAX3(FBC0[0], FBC1[0], FBC2[0]) < MIN2(LFBC[0], RFBC[0])) return 0; if (MIN3(FBC0[0], FBC1[0], FBC2[0]) > MAX2(LFBC[0], RFBC[0])) return 0; if (MAX3(FBC0[1], FBC1[1], FBC2[1]) < MIN2(LFBC[1], RFBC[1])) return 0; diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl index 5591cc6aa5f..79ccbe12b63 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl @@ -104,10 +104,11 @@ void main() { int is_crease = 0; - if (edge_mask.g > 0) { use_color = edge_mark_color; use_thickness = line_thickness * line_thickness_edge_mark; } + if (p1.w>0) { use_color = color; use_thickness = line_thickness; } // contour override + else if (edge_mask.g > 0) { use_color = edge_mark_color; use_thickness = line_thickness * line_thickness_edge_mark; } else if (edge_mask.r > 0) { use_color = material_color; use_thickness = line_thickness * line_thickness_material; } else if (edge_mask.b > 0) { use_color = intersection_color; use_thickness = line_thickness * line_thickness_intersection; } - else if (p1.w != p2.w){ use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } + else if (p2.w>0) { use_color = crease_color; use_thickness = line_thickness * line_thickness_crease; is_crease = 1; } draw_line(p1, p2, is_crease); } \ No newline at end of file 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 1fbd4e6f0cc..f5fff375e7d 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 @@ -337,7 +337,8 @@ bool pointBeyondNear(vec3 p) return beyond; } -bool testProfileEdge(ivec2 texcoord, vec3 world_position) +// 1 for contour 2 for others +int testProfileEdge(ivec2 texcoord, vec3 world_position) { // This should really be the inverse transpose of the modelview matrix, but // that only matters if the camera has a weird anisotropic scale or skew. @@ -362,12 +363,12 @@ bool testProfileEdge(ivec2 texcoord, vec3 world_position) ((dot2 - crease_threshold) / (crease_fade_threshold - crease_threshold) / 2) : 0; // use 0 to 0.5 to repesent the range, because 1 will represent another meaning - return contour || - ((enable_crease > 0) && (is_crease > 0)) || + if(contour) return 1; + else 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; + false) return 2; } void main(){ @@ -427,8 +428,8 @@ void main(){ // If this segment is a profile edge, test to see if it should be turned on. //if (v1_world_pos.w > 0.5) //{ - bool profile_on = testProfileEdge(texcoord, v0_clipped_near); - if (!profile_on) + int profile_on = testProfileEdge(texcoord, v0_clipped_near); + if (profile_on==
[Bf-blender-cvs] [3ab0ae97cdd] soc-2018-npr: Merge branch 'soc-2018-npr' of git.blender.org:blender into soc-2018-npr
Commit: 3ab0ae97cddd14e7b963e9080a57c6d9e56f34c0 Author: Nick Wu Date: Thu Sep 6 09:54:20 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3ab0ae97cddd14e7b963e9080a57c6d9e56f34c0 Merge branch 'soc-2018-npr' of git.blender.org:blender 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] [7f4daea0c08] soc-2018-npr: Fixed line width incorrect variations under different aspect ratios. commented weird code in culling.
Commit: 7f4daea0c088ab13b8d46d4b6f68763379161e57 Author: Nick Wu Date: Thu Sep 6 09:48:04 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB7f4daea0c088ab13b8d46d4b6f68763379161e57 Fixed line width incorrect variations under different aspect ratios. commented weird code in culling. === M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.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 === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 2fad625aa9e..ddc55eb411b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -1106,11 +1106,11 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { t_count = 0; } - if ((!rt->RL[0]->Item.pNext && !rt->RL[0]->Item.pPrev) || - (!rt->RL[1]->Item.pNext && !rt->RL[1]->Item.pPrev) || - (!rt->RL[2]->Item.pNext && !rt->RL[2]->Item.pPrev)) { - printf("'"); // means this triangle is lonely - } + //if ((!rt->RL[0]->Item.pNext && !rt->RL[0]->Item.pPrev) || + //(!rt->RL[1]->Item.pNext && !rt->RL[1]->Item.pPrev) || + //(!rt->RL[2]->Item.pNext && !rt->RL[2]->Item.pPrev)) { + // printf("'"); // means this triangle is lonely + //} rv = &((LANPR_RenderVert *)veln->Pointer)[v_count]; rt1 = (void *)(((BYTE *)teln->Pointer) + rb->TriangleSize * t_count); diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl index 9405cad5fa0..5591cc6aa5f 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl @@ -69,6 +69,10 @@ void draw_line(vec4 p1, vec4 p2, int is_crease){ vec4 a, b, c, d; vec4 offset = Normal * use_thickness * 0.001; + + //correct thickness + offset.x *= viewport.w/viewport.z; + a = p1 + offset; b = p1 - offset; c = p2 + offset; diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl index 65f9b3bf1c8..3c7945ed834 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl @@ -48,6 +48,10 @@ uniform float taper_r_dist; uniform float taper_l_strength; uniform float taper_r_strength; +// for line width correction +uniform vec4 output_viewport; +uniform vec4 preview_viewport; + out vec4 out_color; float use_thickness; @@ -96,6 +100,8 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ float lim = use_thickness * 0.002; + float x_scale = preview_viewport.w / preview_viewport.z; + if (LL.x < 3e20) { vec4 avg = normalize(L - LL) + normalize(R - L); if (length(avg) > 0.001) { @@ -103,6 +109,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ vec4 Minter = normalize(vec4(-Tangent.y, Tangent.x, 0, 0)); float length = use_thickness / (dot(Minter, Normal)) * 0.001; if (length < 4 * lim) { + Minter.x *= x_scale; a = L - length * Minter; b = L + length * Minter; } @@ -116,6 +123,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ vec4 Minter = normalize(vec4(-Tangent.y, Tangent.x, 0, 0)); float length = use_thickness / (dot(Minter, Normal)) * 0.001; if (length < 4 * lim) { + Minter.x *= x_scale; c = R - length * Minter; d = R + length * Minter; } @@ -135,7 +143,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ a.w = 1; b.w = 1; c.w = 1; - d.w = 1; + d.w = 1;
[Bf-blender-cvs] [cdad75303a5] soc-2018-npr: Fixed line width incorrect variations under different aspect ratios.
Commit: cdad75303a5040cc4152da25010fdd1b313fa065 Author: Nick Wu Date: Thu Sep 6 09:48:04 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBcdad75303a5040cc4152da25010fdd1b313fa065 Fixed line width incorrect variations under different aspect ratios. === M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.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 === diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl index 9405cad5fa0..5591cc6aa5f 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl @@ -69,6 +69,10 @@ void draw_line(vec4 p1, vec4 p2, int is_crease){ vec4 a, b, c, d; vec4 offset = Normal * use_thickness * 0.001; + + //correct thickness + offset.x *= viewport.w/viewport.z; + a = p1 + offset; b = p1 - offset; c = p2 + offset; diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl index 65f9b3bf1c8..3c7945ed834 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl @@ -48,6 +48,10 @@ uniform float taper_r_dist; uniform float taper_l_strength; uniform float taper_r_strength; +// for line width correction +uniform vec4 output_viewport; +uniform vec4 preview_viewport; + out vec4 out_color; float use_thickness; @@ -96,6 +100,8 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ float lim = use_thickness * 0.002; + float x_scale = preview_viewport.w / preview_viewport.z; + if (LL.x < 3e20) { vec4 avg = normalize(L - LL) + normalize(R - L); if (length(avg) > 0.001) { @@ -103,6 +109,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ vec4 Minter = normalize(vec4(-Tangent.y, Tangent.x, 0, 0)); float length = use_thickness / (dot(Minter, Normal)) * 0.001; if (length < 4 * lim) { + Minter.x *= x_scale; a = L - length * Minter; b = L + length * Minter; } @@ -116,6 +123,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ vec4 Minter = normalize(vec4(-Tangent.y, Tangent.x, 0, 0)); float length = use_thickness / (dot(Minter, Normal)) * 0.001; if (length < 4 * lim) { + Minter.x *= x_scale; c = R - length * Minter; d = R + length * Minter; } @@ -135,7 +143,7 @@ void draw_line(vec4 LL, vec4 L, vec4 R, vec4 RR){ a.w = 1; b.w = 1; c.w = 1; - d.w = 1; + d.w = 1; gl_Position = a; EmitVertex(); @@ -188,10 +196,19 @@ void main() { if (occlusion_level_begin > level || occlusion_level_end < level) return; + float asp1 = output_viewport.z / output_viewport.w; + float asp2 = preview_viewport.z / preview_viewport.w; + float x_scale = asp1 / asp2; + vec4 LL = vec4(gl_in[0].gl_Position.xy, 0, 1), L = vec4(gl_in[1].gl_Position.xy, 0, 1), R = vec4(gl_in[2].gl_Position.xy, 0, 1), RR = vec4(gl_in[3].gl_Position.xy, 0, 1); + + LL.x *= x_scale; + L.x *= x_scale; + R.x *= x_scale; + RR.x *= x_scale; int type = gType[1]; diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl index 38254a7f992..262ab8b271b 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl @@ -30,6 +30,10 @@ uniform vec4 material_color; uniform vec4 edge_mark_color; uniform vec4 intersection_color; +// for line width correction +uniform vec4 output_viewport; +uniform vec4 preview_viewport; + out vec4 out_color; float use_thickness; @@ -41,6 +45,8 @@ void draw_line(vec4 p1, vec4 p2){ vec4 a, b, c, d; + float x_scale = preview_viewport.w / preview_viewport.z; + Normal.x *= x_scale; ve
[Bf-blender-cvs] [4df5506b22f] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 4df5506b22f90d3ce0b6d3ec7761b289552d9b02 Author: Nick Wu Date: Thu Sep 6 08:30:31 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4df5506b22f90d3ce0b6d3ec7761b289552d9b02 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/blender/makesdna/DNA_scene_types.h === === diff --cc source/blender/makesdna/DNA_scene_types.h index cc8284aeba8,eb1a17a044c..5c08e082160 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -1548,13 -1486,13 +1548,13 @@@ typedef struct Scene struct Base *basact DNA_DEPRECATED; /* active base */ void *_pad1; - View3DCursor cursor;/* 3d cursor location */ + View3DCursor cursor;/* 3d cursor location */ - unsigned int lay; /* bitflags for layer visibility */ - int layact; /* active layer */ + unsigned int lay DNA_DEPRECATED;/* bitflags for layer visibility */ + int layact DNA_DEPRECATED; /* active layer */ unsigned int pad1; - short flag; /* various settings */ + short flag; /* various settings */ char use_nodes; char pad[1]; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [592b2bd5e48] soc-2018-npr: Fixed DPIX ortho view.
Commit: 592b2bd5e488d6da57253dc9928e329d9125d8a7 Author: Nick Wu Date: Thu Sep 6 09:01:50 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB592b2bd5e488d6da57253dc9928e329d9125d8a7 Fixed DPIX ortho view. === M source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl === 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 d381cd1027a..1fbd4e6f0cc 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 @@ -345,7 +345,9 @@ bool testProfileEdge(ivec2 texcoord, vec3 world_position) mat3 nm = mat3(transpose(inverse(ModelMatrix))); vec3 face_normal_0 = mat3(nm) * texelFetch(face_normal0_tex, texcoord, 0).xyz; vec3 face_normal_1 = mat3(nm) * texelFetch(face_normal1_tex, texcoord, 0).xyz; - vec3 camera_to_line = world_position - view_pos;//modelview * vec4(world_position, 1.0); + vec3 camera_to_line = is_perspective == 1 ? + world_position - view_pos : + view_dir;//modelview * vec4(world_position, 1.0); vec4 edge_mask = texelFetch(edge_mask_tex, texcoord, 0); @@ -396,27 +398,30 @@ void main(){ return; } - // clip to the near plane vec3 v0_clipped_near = v0_world_pos.xyz; vec3 v1_clipped_near = v1_world_pos.xyz; - bool v0_beyond_near = pointBeyondNear(v0_world_pos.xyz); - bool v1_beyond_near = pointBeyondNear(v1_world_pos.xyz); - if (!v0_beyond_near && !v1_beyond_near) - { - // segment entirely behind the camera - gl_FragData[0] = vec4(0.0, 1.0, 0.0, 0.0); - gl_FragData[1] = vec4(0.0, 0.0, 1.0, 0.0); - gl_FragData[2] = vec4(0.0, 1.0, 0.0, 0.0); - return; - } - else if (!v0_beyond_near) - { - v0_clipped_near = clipSegmentToNear(v0_world_pos.xyz, v1_clipped_near); - } - else if (!v1_beyond_near) - { - v1_clipped_near = clipSegmentToNear(v1_world_pos.xyz, v0_clipped_near); + if(is_perspective==1){ + // clip to the near plane + bool v0_beyond_near = pointBeyondNear(v0_world_pos.xyz); + bool v1_beyond_near = pointBeyondNear(v1_world_pos.xyz); + + if (!v0_beyond_near && !v1_beyond_near) + { + // segment entirely behind the camera + gl_FragData[0] = vec4(0.0, 1.0, 0.0, 0.0); + gl_FragData[1] = vec4(0.0, 0.0, 1.0, 0.0); + gl_FragData[2] = vec4(0.0, 1.0, 0.0, 0.0); + return; + } + else if (!v0_beyond_near) + { + v0_clipped_near = clipSegmentToNear(v0_world_pos.xyz, v1_clipped_near); + } + else if (!v1_beyond_near) + { + v1_clipped_near = clipSegmentToNear(v1_world_pos.xyz, v0_clipped_near); + } } // If this segment is a profile edge, test to see if it should be turned on. @@ -438,9 +443,12 @@ void main(){ vec4 v1_pre_div = projection * ViewMatrix * vec4(v1_clipped_near, 1.0); // perspective divide - vec3 v0_clip_pos = v0_pre_div.xyz / v0_pre_div.w; - vec3 v1_clip_pos = v1_pre_div.xyz / v1_pre_div.w; - + vec3 v0_clip_pos = v0_pre_div.xyz; + vec3 v1_clip_pos = v1_pre_div.xyz; + if(is_perspective==1){ + v0_clip_pos /= v0_pre_div.w; + v1_clip_pos /= v1_pre_div.w; + } // clip to frustum bool v0_on_screen = !pointOffScreen(v0_clip_pos); bool v1_on_screen = !pointOffScreen(v1_clip_pos); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [eeeee3b10af] soc-2018-npr: Fixed software mode ortho condition errors in culling. Now working.
Commit: e3b10afc76f7c17b4a1364a7e678e909abd3 Author: Nick Wu Date: Thu Sep 6 09:25:22 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBe3b10afc76f7c17b4a1364a7e678e909abd3 Fixed software mode ortho condition errors in culling. Now working. === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index baed4d40509..2fad625aa9e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -1086,9 +1086,9 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { for (i; i < reln->ElementCount; i++) { int In1 = 0, In2 = 0, In3 = 0; rt = (void *)(((BYTE *)reln->Pointer) + rb->TriangleSize * i); - if (rt->V[0]->FrameBufferCoord[2] < 0) In1 = 1; - if (rt->V[1]->FrameBufferCoord[2] < 0) In2 = 1; - if (rt->V[2]->FrameBufferCoord[2] < 0) In3 = 1; + if (rt->V[0]->FrameBufferCoord[3] < 0) In1 = 1; + if (rt->V[1]->FrameBufferCoord[3] < 0) In2 = 1; + if (rt->V[2]->FrameBufferCoord[3] < 0) In3 = 1; rt->RL[0]->ObjectRef = o; rt->RL[1]->ObjectRef = o; @@ -1109,7 +1109,7 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { if ((!rt->RL[0]->Item.pNext && !rt->RL[0]->Item.pPrev) || (!rt->RL[1]->Item.pNext && !rt->RL[1]->Item.pPrev) || (!rt->RL[2]->Item.pNext && !rt->RL[2]->Item.pPrev)) { - printf("'"); + printf("'"); // means this triangle is lonely } rv = &((LANPR_RenderVert *)veln->Pointer)[v_count]; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [f0eca87df63] soc-2018-npr: Fixed collection header name
Commit: f0eca87df637708504d7e79d9df004213adce675 Author: Nick Wu Date: Tue Sep 4 12:56:46 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBf0eca87df637708504d7e79d9df004213adce675 Fixed collection header name === M source/blender/makesdna/DNA_lanpr_types.h === diff --git a/source/blender/makesdna/DNA_lanpr_types.h b/source/blender/makesdna/DNA_lanpr_types.h index 1ed27187cfc..1087fc6cf22 100644 --- a/source/blender/makesdna/DNA_lanpr_types.h +++ b/source/blender/makesdna/DNA_lanpr_types.h @@ -34,7 +34,7 @@ #include "DNA_listBase.h" #include "DNA_ID.h" -#include "DNA_group_types.h" +#include "DNA_collection_types.h" struct Object; struct Material; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [de2c47cbf1e] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: de2c47cbf1e6a110ada8caedf6fc996cec760e09 Author: Nick Wu Date: Tue Sep 4 21:52:48 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBde2c47cbf1e6a110ada8caedf6fc996cec760e09 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/blender/makesdna/DNA_scene_types.h === === diff --cc release/scripts/startup/bl_ui/properties_render.py index 945ac243540,38b73b0397a..bd9afa60a20 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@@ -315,8 -339,9 +339,9 @@@ class RENDER_PT_output_views(RenderButt class RENDER_PT_encoding(RenderButtonsPanel, Panel): bl_label = "Encoding" + bl_parent_id = "RENDER_PT_output" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw_header_preset(self, context): RENDER_PT_ffmpeg_presets.draw_panel_header(self.layout) diff --cc source/blender/makesdna/DNA_scene_types.h index deb64befc99,63a6a191b9e..cc8284aeba8 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@@ -1548,13 -1486,13 +1548,13 @@@ typedef struct Scene struct Base *basact DNA_DEPRECATED; /* active base */ void *_pad1; - View3DCursor cursor;/* 3d cursor location */ + View3DCursor cursor;/* 3d cursor location */ - unsigned int lay; /* bitflags for layer visibility */ - int layact; /* active layer */ + unsigned int lay; /* bitflags for layer visibility */ + int layact; /* active layer */ - unsigned int lay_updated; /* runtime flag, has layer ever been updated since load? */ + unsigned int pad1; - short flag; /* various settings */ + short flag; /* various settings */ char use_nodes; char pad[1]; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [3fc578d7cb4] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 3fc578d7cb4409aaba86ea179f27fdf71554a733 Author: Nick Wu Date: Sat Sep 1 11:03:10 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3fc578d7cb4409aaba86ea179f27fdf71554a733 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # source/blender/CMakeLists.txt === === diff --cc source/blender/CMakeLists.txt index f35f3b55162,a4d8e21c349..0040168d4af --- a/source/blender/CMakeLists.txt +++ b/source/blender/CMakeLists.txt @@@ -91,10 -94,6 +94,7 @@@ set(SRC_DNA_IN ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_windowmanager_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_workspace_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_world_types.h - ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_movieclip_types.h - ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_tracking_types.h - ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mask_types.h + ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lanpr_types.h ) add_subdirectory(datatoc) diff --cc source/blender/makesrna/intern/CMakeLists.txt index 6edab2a0391,a795b4c6cae..78d177146ae --- a/source/blender/makesrna/intern/CMakeLists.txt +++ b/source/blender/makesrna/intern/CMakeLists.txt @@@ -57,8 -56,8 +56,9 @@@ set(DEFSR rna_lamp.c rna_lattice.c rna_layer.c + rna_lightprobe.c rna_linestyle.c + rna_lanpr.c rna_main.c rna_mask.c rna_material.c diff --cc source/blender/makesrna/intern/rna_scene.c index a099e2c6145,84910b6b1b3..919e941c8f0 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@@ -2500,9 -2448,16 +2500,16 @@@ static void rna_def_tool_settings(Blend prop = RNA_def_property(srna, "use_gpencil_thumbnail_list", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_negative_sdna(prop, NULL, "gpencil_flags", GP_TOOL_FLAG_THUMBNAIL_LIST); RNA_def_property_ui_text(prop, "Compact List", - "Show compact list of color instead of thumbnails"); + "Show compact list of color instead of thumbnails"); RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); + prop = RNA_def_property(srna, "add_gpencil_weight_data", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "gpencil_flags", GP_TOOL_FLAG_CREATE_WEIGHTS); + RNA_def_property_ui_text(prop, "Add weight data for new strokes", + "When creating new strokes, the weight data is added according to the current vertex group and weight, " + "if no vertex group selected, weight is not added"); + RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); + prop = RNA_def_property(srna, "gpencil_sculpt", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "gp_sculpt"); RNA_def_property_struct_type(prop, "GPencilSculptSettings"); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [552d256cfdc] soc-2018-npr: Merge branch 'npr_tess' of https://github.com/DarkDefender/blender into soc-2018-npr
Commit: 552d256cfdc7fdb84502d92957912391ca85860b Author: Nick Wu Date: Wed Aug 29 19:08:14 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB552d256cfdc7fdb84502d92957912391ca85860b Merge branch 'npr_tess' of https://github.com/DarkDefender/blender 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] [ef234a2e61d] soc-2018-npr: Software crease threshold follow DPIX's
Commit: ef234a2e61deab309606df9cee724e54bf7be76b Author: Nick Wu Date: Fri Aug 31 21:48:19 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBef234a2e61deab309606df9cee724e54bf7be76b Software crease threshold follow DPIX's === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 9aa05dd6730..baed4d40509 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2526,7 +2526,7 @@ void lanpr_compute_view_vector(LANPR_RenderBuffer *rb) { //tMatVectorCopy3d(Trans, ((Camera*)rb->Scene->camera)->RenderViewDir); } -void lanpr_compute_scene_contours(LANPR_RenderBuffer *rb) { +void lanpr_compute_scene_contours(LANPR_RenderBuffer *rb, float threshold) { real *ViewVector = rb->ViewVector; BMEdge *e; real Dot1 = 0, Dot2 = 0; @@ -2572,7 +2572,7 @@ void lanpr_compute_scene_contours(LANPR_RenderBuffer *rb) { if (!Add) { if ((Result = Dot1 * Dot2) <= 0) Add = 1; - elif(tmat_dot_3d(rl->TL->GN, rl->TR->GN, 0) < 0.7) Add = 2; + elif(tmat_dot_3d(rl->TL->GN, rl->TR->GN, 0) < threshold) Add = 2; elif(rl->TL && rl->TR && rl->TL->MaterialID != rl->TR->MaterialID) Add = 3; } @@ -3236,7 +3236,7 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR *lanpr lanpr_make_initial_bounding_areas(rb); - lanpr_compute_scene_contours(rb); + lanpr_compute_scene_contours(rb, lanpr->crease_threshold); lanpr_add_triangles(rb); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [e9d3c2e8fb5] soc-2018-npr: Merge branch 'npr_tess' of https://github.com/DarkDefender/blender into soc-2018-npr
Commit: e9d3c2e8fb53e489acc3b60668643237111d3320 Author: Nick Wu Date: Wed Aug 29 18:42:08 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBe9d3c2e8fb53e489acc3b60668643237111d3320 Merge branch 'npr_tess' of https://github.com/DarkDefender/blender 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] [1e70595e05e] soc-2018-npr: Fixed file data blocks linking error.
Commit: 1e70595e05ecc94b7121eeb0de3b43fc1761c797 Author: Nick Wu Date: Tue Aug 28 18:52:40 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB1e70595e05ecc94b7121eeb0de3b43fc1761c797 Fixed file data blocks linking error. === M source/blender/blenloader/intern/readfile.c === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 148400da644..3d9bfb170e7 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6121,6 +6121,16 @@ static void lib_link_scene(FileData *fd, Main *main) fls->group = newlibadr_us(fd, sce->id.lib, fls->group); } } + + for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { + for (LANPR_LineLayerComponent *llc = ll->components.first; llc; llc = llc->next) { + llc->object_select = newlibadr_us(fd, sce->id.lib, llc->object_select); + llc->material_select = newlibadr_us(fd, sce->id.lib, llc->material_select); + llc->collection_select = newlibadr_us(fd, sce->id.lib, llc->collection_select); + } + ll->normal_control_object = newlibadr_us(fd, sce->id.lib, ll->normal_control_object); + } + /* Motion Tracking */ sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip); @@ -6525,13 +6535,13 @@ static void direct_link_scene(FileData *fd, Scene *sce) for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { link_list(fd, >components); for(LANPR_LineLayerComponent *llc = ll->components.first; llc;llc=llc->next){ - llc->object_select = newlibadr(fd, sce->id.lib, llc->object_select); - llc->material_select = newlibadr(fd, sce->id.lib, llc->material_select); - llc->collection_select = newlibadr(fd, sce->id.lib, llc->collection_select); + //llc->object_select = newlibadr(fd, sce->id.lib, llc->object_select); + //llc->material_select = newlibadr(fd, sce->id.lib, llc->material_select); + //llc->collection_select = newlibadr(fd, sce->id.lib, llc->collection_select); } ll->batch = NULL; ll->shgrp = NULL; - ll->normal_control_object = newlibadr(fd, sce->id.lib, ll->normal_control_object); + //ll->normal_control_object = newlibadr(fd, sce->id.lib, ll->normal_control_object); } sce->layer_properties = newdataadr(fd, sce->layer_properties); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [bcc3003cb41] soc-2018-npr: Fixed chained line type display control
Commit: bcc3003cb41c6992c5e321b8242b209ec082e7be Author: Nick Wu Date: Tue Aug 28 18:23:58 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBbcc3003cb41c6992c5e321b8242b209ec082e7be Fixed chained line type display control === M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 68166cfeeaa..9aa05dd6730 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3140,6 +3140,11 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness_material", >thickness_material, 1); DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness_edge_mark", >thickness_edge_mark, 1); DRW_shgroup_uniform_float(rb->ChainShgrp, "thickness_intersection", >thickness_intersection, 1); + DRW_shgroup_uniform_int(rb->ChainShgrp, "enable_contour", >enable_contour, 1); + DRW_shgroup_uniform_int(rb->ChainShgrp, "enable_crease", >enable_crease, 1); + DRW_shgroup_uniform_int(rb->ChainShgrp, "enable_material", >enable_material_seperate, 1); + DRW_shgroup_uniform_int(rb->ChainShgrp, "enable_edge_mark", >enable_edge_mark, 1); + DRW_shgroup_uniform_int(rb->ChainShgrp, "enable_intersection", >enable_intersection, 1); DRW_shgroup_uniform_int(rb->ChainShgrp, "normal_mode", >normal_mode, 1); DRW_shgroup_uniform_int(rb->ChainShgrp, "normal_effect_inverse", >normal_effect_inverse, 1); diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl index 19272241cdd..65f9b3bf1c8 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl @@ -20,6 +20,12 @@ uniform float thickness_material; uniform float thickness_edge_mark; uniform float thickness_intersection; +uniform int enable_contour; +uniform int enable_crease; +uniform int enable_material; +uniform int enable_edge_mark; +uniform int enable_intersection; + uniform int occlusion_level_begin; uniform int occlusion_level_end; @@ -170,11 +176,11 @@ void decide_line_style(int component_id){ th = factor_to_thickness(factor); } - if (component_id == 0) { out_color = color; use_thickness = th; return; } - if (component_id == 1) { out_color = crease_color; use_thickness = th * thickness_crease; return; } - if (component_id == 2) { out_color = material_color; use_thickness = th * thickness_material; return; } - if (component_id == 3) { out_color = edge_mark_color;use_thickness = th * thickness_edge_mark;return; } - if (component_id == 4) { out_color = intersection_color; use_thickness = th * thickness_intersection; return; } + if (component_id == 0) { out_color = color; use_thickness = th * enable_contour; return; } + if (component_id == 1) { out_color = crease_color; use_thickness = th * thickness_crease * enable_crease; return; } + if (component_id == 2) { out_color = material_color; use_thickness = th * thickness_material * enable_material; return; } + if (component_id == 3) { out_color = edge_mark_color;use_thickness = th * thickness_edge_mark * enable_edge_mark; return; } + if (component_id == 4) { out_color = intersection_color; use_thickness = th * thickness_intersection * enable_intersection; return; } } void main() { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [f33c3d157c2] soc-2018-npr: Fixed dropdown list reference lost issue.
Commit: f33c3d157c21e82dc5f9916205191680c8f1bc10 Author: Nick Wu Date: Tue Aug 28 16:07:17 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBf33c3d157c21e82dc5f9916205191680c8f1bc10 Fixed dropdown list reference lost issue. === M source/blender/blenloader/intern/readfile.c M source/blender/makesdna/DNA_lanpr_types.h === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index abfba8ec8bf..2bf211da431 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6524,8 +6524,14 @@ static void direct_link_scene(FileData *fd, Scene *sce) link_list(fd, >lanpr.line_layers); for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { link_list(fd, >components); + for(LANPR_LineLayerComponent *llc = ll->components.first; llc;llc=llc->next){ + llc->object_select = newdataadr(fd, llc->object_select); + llc->material_select = newdataadr(fd, llc->material_select); + llc->collection_select = newdataadr(fd, llc->collection_select); + } ll->batch = NULL; ll->shgrp = NULL; + ll->normal_control_object = newdataadr(fd, ll->normal_control_object); } sce->layer_properties = newdataadr(fd, sce->layer_properties); diff --git a/source/blender/makesdna/DNA_lanpr_types.h b/source/blender/makesdna/DNA_lanpr_types.h index b457b88d048..3040bc0b992 100644 --- a/source/blender/makesdna/DNA_lanpr_types.h +++ b/source/blender/makesdna/DNA_lanpr_types.h @@ -116,6 +116,7 @@ typedef struct LANPR_LineLayer { float normal_ramp_end; float normal_thickness_begin; float normal_thickness_end; + struct Object *normal_control_object; int logic_mode; /* for component evaluation */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [8072b683875] soc-2018-npr: Directional light control object ok, fixing file rw
Commit: 8072b6838755f2493fade14a904fa9f818a94aed Author: Nick Wu Date: Tue Aug 28 17:34:12 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB8072b6838755f2493fade14a904fa9f818a94aed Directional light control object ok, fixing file rw === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/blenloader/intern/readfile.c M source/blender/draw/engines/lanpr/lanpr_ops.c 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/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 461f1f7db71..96cdeb2e518 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -676,6 +676,7 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.label(text= "Normal:") 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") diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2bf211da431..148400da644 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6525,13 +6525,13 @@ static void direct_link_scene(FileData *fd, Scene *sce) for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { link_list(fd, >components); for(LANPR_LineLayerComponent *llc = ll->components.first; llc;llc=llc->next){ - llc->object_select = newdataadr(fd, llc->object_select); - llc->material_select = newdataadr(fd, llc->material_select); - llc->collection_select = newdataadr(fd, llc->collection_select); + llc->object_select = newlibadr(fd, sce->id.lib, llc->object_select); + llc->material_select = newlibadr(fd, sce->id.lib, llc->material_select); + llc->collection_select = newlibadr(fd, sce->id.lib, llc->collection_select); } ll->batch = NULL; ll->shgrp = NULL; - ll->normal_control_object = newdataadr(fd, ll->normal_control_object); + ll->normal_control_object = newlibadr(fd, sce->id.lib, ll->normal_control_object); } sce->layer_properties = newdataadr(fd, sce->layer_properties); @@ -9902,6 +9902,8 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) SceneRenderLayer *srl; FreestyleModuleConfig *module; FreestyleLineSet *lineset; + LANPR_LineLayer* ll; + LANPR_LineLayerComponent* llc; for (Base *base_legacy = sce->base.first; base_legacy; base_legacy = base_legacy->next) { expand_doit(fd, mainvar, base_legacy->object); @@ -9949,6 +9951,15 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce) } } + for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { + for (LANPR_LineLayerComponent *llc = ll->components.first; llc; llc = llc->next) { + if (llc->object_select) expand_doit(fd, mainvar, llc->object_select); + if (llc->material_select) expand_doit(fd, mainvar, llc->material_select); + if (llc->collection_select) expand_doit(fd, mainvar, llc->collection_select); + } + if (ll->normal_control_object) expand_doit(fd, mainvar, ll->normal_control_object); + } + if (sce->gpd) expand_doit(fd, mainvar, sce->gpd); diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 7e8488d5092..3e359ea8667 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3028,6 +3028,38 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList *txl, LANPR_Framebuffe void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_threshold); +void lanpr_calcula
[Bf-blender-cvs] [775df5a1d53] soc-2018-npr: Fix directional object matrix error
Commit: 775df5a1d53e915d8c5cea4f52d7f86881c4f93c Author: Nick Wu Date: Tue Aug 28 18:10:18 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB775df5a1d53e915d8c5cea4f52d7f86881c4f93c Fix directional object matrix error === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 3e359ea8667..68166cfeeaa 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3040,7 +3040,10 @@ void lanpr_calculate_normal_object_vector(LANPR_LineLayer* ll, float* normal_obj normal_object_direction[2] = 1; // default z up direction }else { float dir[3] = {0,0,1}; - mul_v3_m3v3(normal_object_direction, ob->obmat, dir); + float mat[3][3]; + copy_m3_m4(mat, ob->obmat); + mul_v3_m3v3(normal_object_direction, mat, dir); + normalize_v3(normal_object_direction); } return; case LANPR_NORMAL_POINT: ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [6b005517db9] soc-2018-npr: Normal controlled normal thickness for software is ok. No direction and position variation.
Commit: 6b005517db982b3036d86a5cdbb8ab91abc598f2 Author: Nick Wu Date: Tue Aug 28 15:48:01 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB6b005517db982b3036d86a5cdbb8ab91abc598f2 Normal controlled normal thickness for software is ok. No direction and position variation. === M release/scripts/startup/bl_ui/properties_scene.py 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 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/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index e90e8f4b890..461f1f7db71 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -672,6 +672,16 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.operator("scene.lanpr_rebuild_all_commands") else: layout.operator("scene.lanpr_add_line_layer") + +layout.label(text= "Normal:") +layout.prop(active_layer,"normal_mode", expand = True) +if active_layer.normal_mode != "DISABLED": +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) + elif not lanpr.layers.active_layer: layout.operator("scene.lanpr_add_line_layer") @@ -734,9 +744,6 @@ class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): else: row.label(text= "Intersection Calculation Disabled") -layout.label(text= "Normal:") -layout.prop(active_layer,"normal_mode", expand = 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") diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 460d3d1aad2..c0b72bdbac0 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -482,6 +482,7 @@ typedef struct LANPR_RenderLineChain { typedef struct LANPR_RenderLineChainItem { nListItem Item; float pos[3]; // need z value for fading + float normal[3]; char LineType; // style of [1] style of [2] char OcclusionLevel; // [1]--->[2]>[3]-- }LANPR_RenderLineChainItem; diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index f0b53e9ee9f..236df7e7324 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -80,12 +80,13 @@ LANPR_RenderLineChain *lanpr_create_render_line_chain(LANPR_RenderBuffer *rb){ return rlc; } -LANPR_RenderLineChainItem *lanpr_append_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain *rlc, float x, float y, char type, int level){ +LANPR_RenderLineChainItem *lanpr_append_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain *rlc, float x, float y, float* normal, char type, int level){ LANPR_RenderLineChainItem *rlci; rlci = mem_static_aquire(>RenderDataPool, sizeof(LANPR_RenderLineChainItem)); rlci->pos[0] = x; rlci->pos[1] = y; + copy_v3_v3(rlci->normal, normal); rlci->LineType = type & LANPR_EDGE_FLAG_ALL_TYPE; rlci->OcclusionLevel = level; BLI_addtail(>Chain, rlci); @@ -95,12 +96,13 @@ LANPR_RenderLineChainItem *lanpr_append_render_line_chain_point(LANPR_RenderBuff return rlci; } -LANPR_RenderLineChainItem *lanpr_push_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain *rlc, float x, float y, char type, int level){ +LANPR_RenderLineChainItem *lanpr_push_render_line_chain_point(LANPR_RenderBuffer *rb, LANPR_RenderLineChain *rlc, float x, float y, float* normal, char type, int level){ LANPR_Render
[Bf-blender-cvs] [0b758fd9948] soc-2018-npr: Software normal control thickness for non-chain situation
Commit: 0b758fd9948fe6c456fccc1596fcd587c9e1184e Author: Nick Wu Date: Tue Aug 28 14:13:57 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB0b758fd9948fe6c456fccc1596fcd587c9e1184e Software normal control thickness for non-chain situation === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/engines/lanpr/lanpr_ops.c 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/makesdna/DNA_lanpr_types.h M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 8fbf1631c1d..e90e8f4b890 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -617,7 +617,7 @@ 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(percentage=0.6) +split = layout.split(factor=0.6) split.label(text="Layer") row = split.row(align=True) row.prop(lineset, "color", text="", icon_value=icon) @@ -655,7 +655,7 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.label(text="RUN:") layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') -split = layout.split(percentage=0.7) +split = layout.split(factor=0.7) col = split.column() col.label(text="Layer Composition:") col = split.column() @@ -702,7 +702,7 @@ class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): layout.operator("scene.lanpr_enable_all_line_types") -split = layout.split(percentage=0.3) +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) @@ -734,6 +734,9 @@ class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): else: row.label(text= "Intersection Calculation Disabled") +layout.label(text= "Normal:") +layout.prop(active_layer,"normal_mode", expand = 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") @@ -767,9 +770,9 @@ class SCENE_PT_lanpr_line_components(SceneButtonsPanel, Panel): i=0 for c in active_layer.components: -split = layout.split(percentage=0.85) +split = layout.split(factor=0.85) col = split.column() -sp2 = col.split(percentage=0.4) +sp2 = col.split(factor=0.4) cl = sp2.column() cl.prop(c,"component_mode", text = "") cl = sp2.column() diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 9cd29b6feb2..49d67b1f51e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2418,6 +2418,8 @@ LANPR_RenderLine *lanpr_triangle_generate_intersection_line_only(LANPR_RenderBuf Result = mem_static_aquire(>RenderDataPool, sizeof(LANPR_RenderLine)); Result->L = L; Result->R = R; + Result->TL = rt; + Result->TR = Testing; LANPR_RenderLineSegment *rls = mem_static_aquire(>RenderDataPool, sizeof(LANPR_RenderLineSegment)); BLI_addtail(>Segments, rls); BLI_addtail(>AllRenderLines, Result); @@ -2816,7 +2818,7 @@ int lanpr_count_this_line(LANPR_RenderLine *rl, LANPR_LineLayer *ll) { } } elif(llc->component_mode == LANPR_COMPONENT_MODE_MATERIAL && llc->material_select) { - if ((rl->TL && rl->TL->MaterialID == llc->material_select->index) || (rl->TR && rl->TR->MaterialID == llc->material_select->index) || (!rl->TL && !rl->TR)) { OrResult = 1; } + if ((rl->TL && rl->TL->MaterialID == llc->material_select->index) || (rl->TR && rl->TR->MaterialID == llc->material_select->index) || (!(rl-&
[Bf-blender-cvs] [db66c3a9a2f] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: db66c3a9a2feb49b1fee35d3984099dab966057b Author: Nick Wu Date: Tue Aug 28 12:46:50 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBdb66c3a9a2feb49b1fee35d3984099dab966057b Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # source/tools === === diff --cc release/scripts/startup/bl_ui/properties_data_modifier.py index f7d067ba2da,82616fdca82..68e7f16b915 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@@ -639,34 -639,9 +639,34 @@@ class DATA_PT_modifiers(ModifierButtons row.operator("object.multires_external_save", text="Save External...") row.label() +def MY_BMESH(self, layout, ob, md): +split = layout.split(percentage=0.25) + +col = split.column() +col.label(text="§6.1:") +col.prop(md, "do_tri") +col.prop(md, "do_ff_bb_split") + +col = split.column() +col.label(text="§6.2:") +col.prop(md, "do_cusp_dect") +col.prop(md, "do_insert") +col.prop(md, "do_cusp_insert") + +col = split.column() +col.label(text="§6.3:") +col.prop(md, "do_rad_insert") +col.prop(md, "do_rad_flip") +col.prop(md, "do_opti") + + +col = layout.column() +col.label(text="Camera Object:") +col.prop(md, "camera_object", text="") + def OCEAN(self, layout, ob, md): if not bpy.app.build_options.mod_oceansim: - layout.label("Built without OceanSim modifier") + layout.label(text="Built without OceanSim modifier") return layout.prop(md, "geometry_mode") ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [5d21c3089df] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 5d21c3089dfe03479daefad1217428c9f1bf3bf6 Author: Nick Wu Date: Sun Aug 26 10:28:55 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB5d21c3089dfe03479daefad1217428c9f1bf3bf6 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [fba6d689150] soc-2018-npr: Merge branch 'npr_tess' of https://github.com/DarkDefender/blender into soc-2018-npr
Commit: fba6d689150ba6a584a6b3b8bb04c02c13563b55 Author: Nick Wu Date: Sun Aug 26 20:13:30 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBfba6d689150ba6a584a6b3b8bb04c02c13563b55 Merge branch 'npr_tess' of https://github.com/DarkDefender/blender 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] [8e58b88ea43] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 8e58b88ea432cca8548fc85b0390a2a688e4c120 Author: Nick Wu Date: Thu Aug 23 18:55:32 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB8e58b88ea432cca8548fc85b0390a2a688e4c120 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # source/tools === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [4b763f4cb2e] soc-2018-npr: Fixing perpective flag
Commit: 4b763f4cb2e7a80d0bbaf3bb26f717ef39a72882 Author: Nick Wu Date: Thu Aug 23 18:53:37 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4b763f4cb2e7a80d0bbaf3bb26f717ef39a72882 Fixing perpective flag === M source/blender/draw/engines/lanpr/lanpr_dpix.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index 634d59ad8f3..19930cc8c95 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -347,6 +347,7 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f}; float clear_depth = 1.0f; uint clear_stencil = 0xFF; + int is_persp=1; if (!lanpr->active_layer) return; /* return early in case we don't have line layers. DPIX only use the first layer. */ @@ -360,15 +361,19 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L if (v3d) { RegionView3D *rv3d = draw_ctx->rv3d; camera = (rv3d && rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; + is_persp = rv3d->is_persp; } if (!camera) { camera = scene->camera; + if(!v3d)is_persp = ((Camera *)camera->data)->type == CAM_PERSP ? 1 : 0; } if (is_render && !camera) return; + //XXX: should implement view angle functions for ortho camera. + pd->dpix_viewport[2] = texw; pd->dpix_viewport[3] = texh; - pd->dpix_is_perspective = 1; + pd->dpix_is_perspective = is_persp; pd->dpix_sample_step = 1; pd->dpix_buffer_width = TNS_DPIX_TEXTURE_SIZE; pd->dpix_depth_offset = 0.0001; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [7aa1c544f73] soc-2018-npr: Fix opensubdiv error when not enabled WITH_OPENSUBDIV
Commit: 7aa1c544f73e430ee50849cabd31a59b5acbf4de Author: Nick Wu Date: Tue Aug 14 16:20:19 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB7aa1c544f73e430ee50849cabd31a59b5acbf4de Fix opensubdiv error when not enabled WITH_OPENSUBDIV === M source/blender/modifiers/intern/MOD_mybmesh.c === diff --git a/source/blender/modifiers/intern/MOD_mybmesh.c b/source/blender/modifiers/intern/MOD_mybmesh.c index 8664de40206..f7fa77be8d1 100644 --- a/source/blender/modifiers/intern/MOD_mybmesh.c +++ b/source/blender/modifiers/intern/MOD_mybmesh.c @@ -4148,8 +4148,6 @@ static Mesh *mybmesh_do(Mesh *mesh, MyBMeshModifierData *mmd, float cam_loc[3]) return result; } -#endif /* WITH_OPENSUBDIV */ - /* MyBMesh */ static void initData(ModifierData *md) { @@ -4167,6 +4165,8 @@ static void freeData(ModifierData *md) } } +#endif /* WITH_OPENSUBDIV */ + static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dc03876c7bd] soc-2018-npr: Fixed engine compatible panel for camera and speaker data.
Commit: dc03876c7bd2f81ce8b951b58feecd69fc51bfd8 Author: Nick Wu Date: Tue Aug 14 13:44:04 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBdc03876c7bd2f81ce8b951b58feecd69fc51bfd8 Fixed engine compatible panel for camera and speaker data. === M release/scripts/startup/bl_ui/properties_data_camera.py M release/scripts/startup/bl_ui/properties_data_speaker.py === diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py index cc0bde46189..03423cffaa1 100644 --- a/release/scripts/startup/bl_ui/properties_data_camera.py +++ b/release/scripts/startup/bl_ui/properties_data_camera.py @@ -39,7 +39,7 @@ class CAMERA_PT_presets(PresetMenu): preset_subdir = "camera" preset_operator = "script.execute_preset" preset_add_operator = "camera.preset_add" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} class SAFE_AREAS_PT_presets(PresetMenu): @@ -47,13 +47,13 @@ class SAFE_AREAS_PT_presets(PresetMenu): preset_subdir = "safe_areas" preset_operator = "script.execute_preset" preset_add_operator = "safe_areas.preset_add" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} class DATA_PT_context_camera(CameraButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -70,7 +70,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, Panel): class DATA_PT_lens(CameraButtonsPanel, Panel): bl_label = "Lens" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -111,7 +111,7 @@ class DATA_PT_lens(CameraButtonsPanel, Panel): sub = col.column(align=True) sub.prop(ccam, "longitude_min", text="Longiture Min") sub.prop(ccam, "longitude_max", text="Max") -elif engine in {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'}: +elif engine in {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'}: if cam.lens_unit == 'MILLIMETERS': col.prop(cam, "lens") elif cam.lens_unit == 'FOV': @@ -133,7 +133,7 @@ class DATA_PT_lens(CameraButtonsPanel, Panel): class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel): bl_label = "Stereoscopy" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} @classmethod def poll(cls, context): @@ -181,7 +181,7 @@ class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel): class DATA_PT_camera(CameraButtonsPanel, Panel): bl_label = "Camera" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw_header_preset(self, context): CAMERA_PT_presets.draw_panel_header(self.layout) @@ -259,7 +259,7 @@ class DATA_PT_camera_dof_aperture(CameraButtonsPanel, Panel): class DATA_PT_camera_background_image(CameraButtonsPanel, Panel): bl_label = "Background Images" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw_header(self, context): cam = context.camera @@ -360,7 +360,7 @@ class DATA_PT_camera_background_image(CameraButtonsPanel, Panel): class DATA_PT_camera_display(CameraButtonsPanel, Panel): bl_label = "Viewport Display" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -393,7 +393,7 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel): class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel): bl_label = "Safe Areas" bl_options = {'DEFAULT_CLOSED'}
[Bf-blender-cvs] [0b75e68500f] soc-2018-npr: Fixed lanpr field always NULL error. (caused by depsgraph scene copy)
Commit: 0b75e68500f6eda1c3e92667b3bdaa8bf1a1026b Author: Nick Wu Date: Tue Aug 14 13:39:44 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB0b75e68500f6eda1c3e92667b3bdaa8bf1a1026b Fixed lanpr field always NULL error. (caused by depsgraph scene copy) === M source/blender/draw/engines/lanpr/lanpr_all.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_snake.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 3188a0beaa9..460d3d1aad2 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -49,8 +49,12 @@ #define tnsLinearItp(L, R, T) \ ((L) * (1.0f - (T)) + (R)*(T)) +typedef struct LANPR_RenderBuffer LANPR_RenderBuffer; -typedef struct LANPRSharedResource { +typedef struct LANPR_SharedResource { + + /* We only allocate once for all */ + LANPR_RenderBuffer *render_buffer_shared; /* Snake */ GPUShader *multichannel_shader; @@ -76,7 +80,7 @@ typedef struct LANPRSharedResource { 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) -} LANPRSharedResource; +} LANPR_SharedResource; #define TNS_DPIX_TEXTURE_SIZE 2048 diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index 6f27be1bf2e..634d59ad8f3 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -25,7 +25,7 @@ #include -extern LANPRSharedResource lanpr_share; +extern LANPR_SharedResource lanpr_share; extern char datatoc_lanpr_dpix_project_passthrough_vert_glsl[]; extern char datatoc_lanpr_dpix_project_clip_frag_glsl[]; extern char datatoc_lanpr_dpix_preview_geom_glsl[]; diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 7ba0427b65e..db35244ef1d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -44,7 +44,7 @@ extern char datatoc_lanpr_software_passthrough_vert_glsl[]; extern char datatoc_gpu_shader_2D_smooth_color_vert_glsl[]; extern char datatoc_gpu_shader_2D_smooth_color_frag_glsl[]; -LANPRSharedResource lanpr_share; +LANPR_SharedResource lanpr_share; static void lanpr_engine_init(void *ved){ diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index fe0bb77351b..78a2e2f569a 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2620,6 +2620,8 @@ void lanpr_clear_render_state(LANPR_RenderBuffer *rb) { /* == render control === */ +extern LANPR_SharedResource lanpr_share; + void lanpr_destroy_render_data(LANPR_RenderBuffer *rb) { LANPR_RenderElementLinkNode *reln; @@ -2664,7 +2666,8 @@ void lanpr_destroy_render_data(LANPR_RenderBuffer *rb) { } LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr) { - if (lanpr->render_buffer) { + if (lanpr_share.render_buffer_shared) { + lanpr->render_buffer = lanpr_share.render_buffer_shared; lanpr_destroy_render_data(lanpr->render_buffer); return lanpr->render_buffer; //lanpr_destroy_render_data(lanpr->render_buffer); @@ -2674,6 +2677,7 @@ LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr) { LANPR_RenderBuffer *rb = MEM_callocN(sizeof(LANPR_RenderBuffer), "creating LANPR render buffer"); lanpr->render_buffer = rb; + lanpr_share.render_buffer_shared = rb; rb->cached_for_frame = -1; @@ -2999,8 +3003,6 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList *txl, LANPR_Framebuffe void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb, float dist_threshold); -extern LANPRSharedResource lanpr_share; - void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) { LANPR_LineLayer *ll; LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; diff --git a/source/blender/draw/engines/lanpr/lanpr_snake.c b/source/blender/draw/engines/lanpr/lanpr_snake.c index 319f089f8e9..9c53f10fca5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_snake.c +++ b/source/blender/draw/engines/lanpr/lanpr_snake.c @@ -20,7 +20,7 @@ #include "GPU_viewport.h" #include &q
[Bf-blender-cvs] [18cc07076d9] soc-2018-npr: Fixed taper on software side, merged tess modifier's osd adapter.
Commit: 18cc07076d9995a96e5b86a768950198a0c2658a Author: Nick Wu Date: Fri Aug 10 17:12:17 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB18cc07076d9995a96e5b86a768950198a0c2658a Fixed taper on software side, merged tess modifier's osd adapter. === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [cefcf402cbe] soc-2018-npr: Fixed taper on software side
Commit: cefcf402cbe353a964dc5b06ffc9b0aadc261491 Author: Nick Wu Date: Fri Aug 10 17:13:57 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBcefcf402cbe353a964dc5b06ffc9b0aadc261491 Fixed taper on software side === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index feda61395d4..fe0bb77351b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3085,8 +3085,8 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) *trd = >taper_right_distance, *trs = >taper_right_strength; DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_l_dist", tld, 1); - DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_r_dist", tls, 1); - DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_l_strength", lanpr->use_same_taper ? tld : trd, 1); + DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_l_strength", tls, 1); + DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_r_dist", lanpr->use_same_taper ? tld : trd, 1); DRW_shgroup_uniform_float(rb->ChainShgrp, "taper_r_strength", lanpr->use_same_taper ? tls : trs, 1); //need to add component enable/disable option. ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [251dbabdf13] soc-2018-npr: Fixed enum in modifier IDs (npr tess modifier and a merged new one)
Commit: 251dbabdf13bccae2264bffdc13b0f9133eccaa8 Author: Nick Wu Date: Fri Aug 10 16:18:31 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB251dbabdf13bccae2264bffdc13b0f9133eccaa8 Fixed enum in modifier IDs (npr tess modifier and a merged new one) === M release/scripts/addons M source/blender/editors/mesh/editmesh_tools.c M source/blender/makesdna/DNA_modifier_types.h === diff --git a/release/scripts/addons b/release/scripts/addons index 1a5f14657ee..c88411ff777 16 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit 1a5f14657ee06ec2f520326032305dc1f2c5e2d5 +Subproject commit c88411ff7776a2db5d6ef6117a1b2faa42a95611 diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 9ed1a376edb..f09623d2f28 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -6918,7 +6918,7 @@ void MESH_OT_mark_freestyle_face(wmOperatorType *ot) /** \} */ -#endif /* WITH_FREESTYLE */ +//#endif /* WITH_FREESTYLE */ /** Loop normals editing tools modal map. **/ diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index f4939d87c2e..b7fc26771b4 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -91,7 +91,7 @@ typedef enum ModifierType { eModifierType_MeshSequenceCache = 52, eModifierType_SurfaceDeform = 53, eModifierType_WeightedNormal= 54, - eModifierType_MyBMesh = 54, + eModifierType_MyBMesh = 55, NUM_MODIFIER_TYPES } ModifierType; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [2d01210ea7f] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 2d01210ea7f15838b139dd6c042f683033fe4bf8 Author: Nick Wu Date: Fri Aug 10 15:56:46 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB2d01210ea7f15838b139dd6c042f683033fe4bf8 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/datafiles/locale # release/scripts/addons_contrib # source/blender/editors/mesh/editmesh_tools.c # source/blender/editors/space_outliner/outliner_draw.c # source/blender/makesdna/DNA_modifier_types.h # source/blender/makesrna/intern/rna_modifier.c # source/blender/modifiers/MOD_modifiertypes.h # source/blender/modifiers/intern/MOD_util.c # source/tools === === diff --cc source/blender/editors/mesh/mesh_intern.h index fceaf6639f1,4a67dea9d4b..f0b5862f50f --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@@ -240,11 -240,21 +240,21 @@@ void MESH_OT_duplicate(struct wmOperato void MESH_OT_merge(struct wmOperatorType *ot); void MESH_OT_remove_doubles(struct wmOperatorType *ot); void MESH_OT_poke(struct wmOperatorType *ot); + void MESH_OT_point_normals(struct wmOperatorType *ot); + void MESH_OT_merge_normals(struct wmOperatorType *ot); + void MESH_OT_split_normals(struct wmOperatorType *ot); + void MESH_OT_normals_tools(struct wmOperatorType *ot); + void MESH_OT_set_normals_from_faces(struct wmOperatorType *ot); + void MESH_OT_average_normals(struct wmOperatorType *ot); + void MESH_OT_smoothen_normals(struct wmOperatorType *ot); + void MESH_OT_mod_weighted_strength(struct wmOperatorType *ot); + + struct wmKeyMap *point_normals_modal_keymap(wmKeyConfig *keyconf); -#ifdef WITH_FREESTYLE +//#ifdef WITH_FREESTYLE void MESH_OT_mark_freestyle_edge(struct wmOperatorType *ot); void MESH_OT_mark_freestyle_face(struct wmOperatorType *ot); -#endif +//#endif /* *** mesh_data.c *** */ void MESH_OT_uv_texture_add(struct wmOperatorType *ot); diff --cc source/blender/editors/space_outliner/outliner_draw.c index e5ba3a78fcf,c52214b9846..115f5fa9057 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@@ -943,161 -943,159 +943,162 @@@ static void tselem_draw_icon { Object *ob = (Object *)tselem->id; if (ob->type != OB_GPENCIL) { - ModifierData *md = BLI_findlink(>modifiers, tselem->nr); - switch ((ModifierType)md->type) { - case eModifierType_Subsurf: - ICON_DRAW(ICON_MOD_SUBSURF); - break; - case eModifierType_Armature: - ICON_DRAW(ICON_MOD_ARMATURE); - break; - case eModifierType_Lattice: - ICON_DRAW(ICON_MOD_LATTICE); - break; - case eModifierType_Curve: - ICON_DRAW(ICON_MOD_CURVE); - break; - case eModifierType_Build: - ICON_DRAW(ICON_MOD_BUILD); - break; - case eModifierType_Mirror: - ICON_DRAW(ICON_MOD_MIRROR); - break; - case eModifierType_Decimate: - ICON_DRAW(ICON_MOD_DECIM); - break; - case eModifierType_Wave: - ICON_DRAW(ICON_MOD_WAVE); - break; - case eModifierType_Hook: - ICON_DRAW(ICON_HOOK); - break; - case eModifierType_Softbody: - ICON_DRAW(ICON_MOD_SOFT); - break; -
[Bf-blender-cvs] [83c85c9c985] soc-2018-npr: Fixed shader variable naming style issue.
Commit: 83c85c9c985e82c2437a64ab540b26d7f8cce3af Author: Nick Wu Date: Fri Aug 10 15:51:08 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB83c85c9c985e82c2437a64ab540b26d7f8cce3af Fixed shader variable naming style issue. === 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_dpix_preview_geom.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_software_chain_geom.glsl === diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index daa141b539b..7ba0427b65e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -226,23 +226,23 @@ static void lanpr_cache_init(void *vedata){ psl->edge_intermediate = DRW_pass_create("Edge Detection", DRW_STATE_WRITE_COLOR); stl->g_data->edge_detect_shgrp = DRW_shgroup_create(lanpr_share.edge_detect_shader, psl->edge_intermediate); - DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "TexSample0", >depth); - DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "TexSample1", >color); - DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "TexSample2", >normal); + DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "tex_sample_0", >depth); + DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "tex_sample_1", >color); + DRW_shgroup_uniform_texture_ref(stl->g_data->edge_detect_shgrp, "tex_sample_2", >normal); - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zNear", >g_data->znear, 1); - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "zfFar", >g_data->zfar, 1); + DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "z_near", >g_data->znear, 1); + DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "z_far", >g_data->zfar, 1); - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue0", >g_data->normal_clamp, 1);// normal clamp - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue1", >g_data->normal_strength, 1);// normal strength - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue2", >g_data->depth_clamp, 1);// depth clamp - DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "uValue3", >g_data->depth_strength, 1);// depth strength + DRW_shgroup_uniform_float(stl->g_data->edge_detect_shgrp, "normal_clamp", >g_data->normal_clamp, 1);// normal clamp + 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); 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, "TexSample0", >color); - DRW_shgroup_uniform_int(stl->g_data->edge_thinning_shgrp, "Stage", >g_data->stage, 1); + 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);
[Bf-blender-cvs] [89e9c1405c6] soc-2018-npr: Python panel engine adaptations
Commit: 89e9c1405c68b94e11013954a8f3d853ceb5dc4a Author: Nick Wu Date: Fri Aug 10 15:36:02 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB89e9c1405c68b94e11013954a8f3d853ceb5dc4a Python panel engine adaptations === M release/scripts/startup/bl_ui/properties_material.py M release/scripts/startup/bl_ui/properties_particle.py M release/scripts/startup/bl_ui/properties_physics_cloth.py M release/scripts/startup/bl_ui/properties_physics_common.py M release/scripts/startup/bl_ui/properties_physics_field.py M release/scripts/startup/bl_ui/properties_physics_fluid.py M release/scripts/startup/bl_ui/properties_physics_rigidbody.py M release/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py M release/scripts/startup/bl_ui/properties_physics_softbody.py M release/scripts/startup/bl_ui/properties_view_layer.py M release/scripts/startup/bl_ui/properties_world.py === diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index 5d12f762073..1dff164d987 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -73,7 +73,7 @@ class MATERIAL_PT_preview(MaterialButtonsPanel, Panel): class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel): -COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} _context_path = "material" _property_type = bpy.types.Material @@ -82,7 +82,7 @@ class EEVEE_MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): bl_label = "" bl_context = "material" bl_options = {'HIDE_HEADER'} -COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} @classmethod def poll(cls, context): @@ -157,7 +157,7 @@ def panel_node_draw(layout, ntree, output_type): class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel): bl_label = "Surface" bl_context = "material" -COMPAT_ENGINES = {'BLENDER_EEVEE'} +COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_LANPR'} @classmethod def poll(cls, context): @@ -185,7 +185,7 @@ class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel): class EEVEE_MATERIAL_PT_options(MaterialButtonsPanel, Panel): bl_label = "Options" bl_context = "material" -COMPAT_ENGINES = {'BLENDER_EEVEE'} +COMPAT_ENGINES = {'BLENDER_EEVEE', 'BLENDER_LANPR'} @classmethod def poll(cls, context): diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py index 393c9784be8..3e1da8c2567 100644 --- a/release/scripts/startup/bl_ui/properties_particle.py +++ b/release/scripts/startup/bl_ui/properties_particle.py @@ -67,7 +67,7 @@ def particle_get_settings(context): class PARTICLE_MT_specials(Menu): bl_label = "Particle Specials" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -88,7 +88,7 @@ class PARTICLE_PT_hair_dynamics_presets(PresetMenu): preset_subdir = "hair_dynamics" preset_operator = "script.execute_preset" preset_add_operator = "particle.hair_dynamics_preset_add" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} class ParticleButtonsPanel: @@ -132,7 +132,7 @@ class PARTICLE_UL_particle_systems(bpy.types.UIList): class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): bl_label = "" bl_options = {'HIDE_HEADER'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} @classmethod def poll(cls, context): @@ -235,7 +235,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel): class PARTICLE_PT_emission(ParticleButtonsPanel, Panel): bl_label = "Emission" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} @classmethod def poll(cls, context): @@ -287,7 +287,7 @@ class PARTICLE_PT_emission_source(ParticleButtonsPanel, Panel): bl_label = "Source" bl_parent_id = "PARTICLE_PT_emission" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGIN
[Bf-blender-cvs] [4d7d0b60d1f] soc-2018-npr: Modified UI for background color display and line layer on DPIX. Added console warning for software rendering.
Commit: 4d7d0b60d1f54219166c618d72d7725ccb058f59 Author: Nick Wu Date: Thu Aug 9 15:41:10 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4d7d0b60d1f54219166c618d72d7725ccb058f59 Modified UI for background color display and line layer on DPIX. Added console warning for software rendering. === 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 858b04f1fcf..8fbf1631c1d 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -644,11 +644,10 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.prop(lanpr, "master_mode", expand=True) if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": -if lanpr.master_mode == "DPIX": -layout.prop(lanpr, "reloaded") + +layout.prop(lanpr, "background_color") if lanpr.master_mode == "SOFTWARE": -layout.prop(lanpr, "background_color") layout.label(text="Enable On Demand:") row = layout.row() row.prop(lanpr,"enable_intersections", text = "Intersection Lines") @@ -680,12 +679,6 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.label(text="Vectorization:") layout.prop(lanpr, "enable_vector_trace", expand = True) -#col = layout.column() -#col.label(text="Enable:") -#row = col.row(align=True) -#row.prop(lanpr, "enable_edge_mark", text="Mark", toggle=True) -#row.prop(lanpr, "enable_material_seperate", text="Material", toggle=True) - class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): bl_label = "Types" @@ -704,6 +697,8 @@ class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): scene = context.scene lanpr = scene.lanpr 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") diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 0916c2a7065..5d37e903ecb 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -3018,7 +3018,10 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render) lanpr_rebuild_all_command(lanpr); } else { - if (lanpr_during_render()) return; // don't draw viewport during render + if (lanpr_during_render()) { + printf("LANPR Warning: To avoid resource duplication, viewport will not display when rendering is in progress\n"); + return; // don't draw viewport during render + } } float clear_col[4] = { 1.0f, 0.0f, 0.0f, 1.0f }; @@ -3174,6 +3177,7 @@ static int lanpr_compute_feature_lines_exec(struct bContext *C, struct wmOperato if (!scene->camera) { BKE_report(op->reports, RPT_ERROR, "There is no active camera in this scene!"); + printf("LANPR Warning: There is no active camera in this scene!\n"); 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] [ca07177f5b0] soc-2018-npr: Merge branch 'npr_tess' of https://github.com/DarkDefender/blender into soc-2018-npr
Commit: ca07177f5b07750ff6f5d9a14c0d5ca458125515 Author: Nick Wu Date: Wed Aug 8 21:55:54 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBca07177f5b07750ff6f5d9a14c0d5ca458125515 Merge branch 'npr_tess' of https://github.com/DarkDefender/blender 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] [d9b0c6711ed] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: d9b0c6711ed65b5ba2c59ac1ddb9555067d69c0e Author: Nick Wu Date: Tue Aug 7 19:57:07 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBd9b0c6711ed65b5ba2c59ac1ddb9555067d69c0e Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [80e3a977442] soc-2018-npr: Adapted shader APIs to DRW_
Commit: 80e3a977442214cc63a4ce28cb5d8404a62b733a Author: Nick Wu Date: Sat Aug 4 09:53:03 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB80e3a977442214cc63a4ce28cb5d8404a62b733a Adapted shader APIs to DRW_ === M source/blender/draw/engines/lanpr/lanpr_dpix.c M source/blender/draw/engines/lanpr/lanpr_engine.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index 131ee3e6fad..6f27be1bf2e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -78,18 +78,19 @@ void lanpr_init_atlas_inputs(void *ved){ if (!lanpr_share.dpix_transform_shader) { lanpr_share.dpix_transform_shader = - GPU_shader_create( + DRW_shader_create( datatoc_lanpr_dpix_project_passthrough_vert_glsl, + NULL, datatoc_lanpr_dpix_project_clip_frag_glsl, - NULL, NULL, NULL); + NULL); } if (!lanpr_share.dpix_preview_shader) { lanpr_share.dpix_preview_shader = - GPU_shader_create( + DRW_shader_create( datatoc_lanpr_dpix_project_passthrough_vert_glsl, - datatoc_lanpr_dpix_preview_frag_glsl, datatoc_lanpr_dpix_preview_geom_glsl, - NULL, NULL); + datatoc_lanpr_dpix_preview_frag_glsl, + NULL); } } void lanpr_destroy_atlas(void *ved){ diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 5bcb7ae1a61..daa141b539b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -107,32 +107,38 @@ static void lanpr_engine_init(void *ved){ if (!lanpr_share.multichannel_shader) { lanpr_share.multichannel_shader = - GPU_shader_create( + DRW_shader_create( datatoc_gpu_shader_3D_normal_smooth_color_vert_glsl, - datatoc_lanpr_snake_multichannel_frag_glsl, NULL, NULL, NULL); + NULL, + datatoc_lanpr_snake_multichannel_frag_glsl, + NULL); } if (!lanpr_share.edge_detect_shader) { lanpr_share.edge_detect_shader = - GPU_shader_create( + DRW_shader_create( datatoc_common_fullscreen_vert_glsl, - datatoc_lanpr_snake_edge_frag_glsl, NULL, NULL, NULL); + NULL, + datatoc_lanpr_snake_edge_frag_glsl, + NULL); } if (!lanpr_share.edge_thinning_shader) { lanpr_share.edge_thinning_shader = - GPU_shader_create( + DRW_shader_create( datatoc_common_fullscreen_vert_glsl, - datatoc_lanpr_snake_image_peel_frag_glsl, NULL, NULL, NULL); + NULL, + datatoc_lanpr_snake_image_peel_frag_glsl, + NULL); } if (!lanpr_share.snake_connection_shader) { lanpr_share.snake_connection_shader = - GPU_shader_create( + DRW_shader_create( datatoc_lanpr_snake_line_connection_vert_glsl, - datatoc_lanpr_snake_line_connection_frag_glsl, datatoc_lanpr_snake_line_connection_geom_glsl, - NULL, NULL); + datatoc_lanpr_snake_line_connection_frag_glsl, + NULL); } /* DPIX */ @@ -141,20 +147,20 @@ static void lanpr_engine_init(void *ved){ /* SOFTWARE */ if (!lanpr_share.software_shader) { lanpr_share.software_shader = - GPU_shader_create( + DRW_shader_create( datatoc_lanpr_software_passthrough_vert_glsl, - datatoc_lanpr_dpix_preview_frag_glsl, datatoc_lanpr_software_line_chain_geom_glsl, - NULL, NULL); + datatoc_lanpr_dpix_preview_frag_glsl
[Bf-blender-cvs] [356dc7892bf] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 356dc7892bfb08a22dc527b410527033e2cff877 Author: Nick Wu Date: Sat Aug 4 09:34:15 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB356dc7892bfb08a22dc527b410527033e2cff877 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [44f0f142326] soc-2018-npr: Fixed software triangle and render line culling bug. (crappy, but works correctly)
Commit: 44f0f1423264f6ad8249325f5c41f1c83bdc565d Author: Nick Wu Date: Wed Aug 1 23:19:44 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB44f0f1423264f6ad8249325f5c41f1c83bdc565d Fixed software triangle and render line culling bug. (crappy, but works correctly) === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index b23e39b5353..0916c2a7065 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -424,7 +424,7 @@ void lanpr_add_triangles(LANPR_RenderBuffer *rb) { lim = reln->ElementCount; for (i = 0; i < lim; i++) { if (rt->CullStatus) { - (void *)(((BYTE *)rt) + rb->TriangleSize); continue; + rt = (void *)(((BYTE *)rt) + rb->TriangleSize); continue; } if (lanpr_get_triangle_bounding_areas(rb, rt, , , , )) { for (co = x1; co <= x2; co++) { @@ -1058,9 +1058,13 @@ void lanpr_post_triangle(LANPR_RenderTriangle *rt, LANPR_RenderTriangle *orig) { tMatVectorCopy3d(orig->GN, rt->GN); } + +#define RT_AT(head, rb, offset) \ + ((BYTE *)head + offset * rb->TriangleSize) + void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { LANPR_RenderLine *rl; - LANPR_RenderTriangle *rt, *rt1; + LANPR_RenderTriangle *rt, *rt1, *rt2; LANPR_RenderVert *rv; LANPR_RenderElementLinkNode *reln, *veln, *teln; LANPR_RenderLineSegment *rls; @@ -1082,9 +1086,9 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { for (i; i < reln->ElementCount; i++) { int In1 = 0, In2 = 0, In3 = 0; rt = (void *)(((BYTE *)reln->Pointer) + rb->TriangleSize * i); - if (rt->V[0]->FrameBufferCoord[3] < 0) In1 = 1; - if (rt->V[1]->FrameBufferCoord[3] < 0) In2 = 1; - if (rt->V[2]->FrameBufferCoord[3] < 0) In3 = 1; + if (rt->V[0]->FrameBufferCoord[2] < 0) In1 = 1; + if (rt->V[1]->FrameBufferCoord[2] < 0) In2 = 1; + if (rt->V[2]->FrameBufferCoord[2] < 0) In3 = 1; rt->RL[0]->ObjectRef = o; rt->RL[1]->ObjectRef = o; @@ -1109,7 +1113,8 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { } rv = &((LANPR_RenderVert *)veln->Pointer)[v_count]; - rt1 = &((LANPR_RenderTriangle *)teln->Pointer)[t_count]; + rt1 = (void *)(((BYTE *)teln->Pointer) + rb->TriangleSize * t_count); + rt2 = (void *)(((BYTE *)teln->Pointer) + rb->TriangleSize * (t_count + 1)); switch (In1 + In2 + In3) { @@ -1117,6 +1122,9 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { continue; case 3: rt->CullStatus = TNS_CULL_DISCARD; + BLI_remlink(>AllRenderLines, (void *)rt->RL[0]); rt->RL[0]->Item.pNext = rt->RL[0]->Item.pPrev = 0; + BLI_remlink(>AllRenderLines, (void *)rt->RL[1]); rt->RL[1]->Item.pNext = rt->RL[1]->Item.pPrev = 0; + BLI_remlink(>AllRenderLines, (void *)rt->RL[2]); rt->RL[2]->Item.pNext = rt->RL[2]->Item.pPrev = 0; continue; case 2: rt->CullStatus = TNS_CULL_USED; @@ -1135,9 +1143,9 @@ void lanpr_cull_triangles(LANPR_RenderBuffer *rb) { rv[1].FrameBufferCoord[3] = (1 - a) * rt->V[0]->FrameBufferCoord[3] + a * rt->V[1]->FrameBufferCoord[3]; tMatApplyTransform44dTrue(rv[1].GLocation, mv_inverse, rv[1].FrameBufferCoord); - BLI_remlink(>AllRenderLines, (void *)rt->RL[0]); - BLI_remlink(>AllRenderLines, (void *)rt->RL[1]); - BLI_remlink(>AllRenderLines, (void *)rt->RL[2]); + BLI_remlink(>AllRenderLines, (void *)rt->RL[0]); rt->RL[0]->Item.pNext = rt->RL[0]->Item.pPrev
[Bf-blender-cvs] [d2f77ce653c] soc-2018-npr: Uncrustify processed.
Commit: d2f77ce653cf0daac253328675536dc61132f142 Author: Nick Wu Date: Wed Aug 1 20:29:17 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBd2f77ce653cf0daac253328675536dc61132f142 Uncrustify processed. === 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_util.c 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/makesdna/DNA_lamp_types.h M source/blender/makesdna/DNA_lanpr_types.h M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_lanpr.c M source/blender/makesrna/intern/rna_scene.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 99660b88ad9..3188a0beaa9 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -73,8 +73,8 @@ typedef struct LANPRSharedResource { 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) } LANPRSharedResource; @@ -321,7 +321,7 @@ typedef struct LANPR_RenderBuffer { //render status - int cached_for_frame; + int cached_for_frame; real ViewVector[3]; @@ -353,8 +353,8 @@ typedef struct LANPR_RenderBuffer { ListBase EdgeMarks; ListBase Chains; - GPUBatch* ChainDrawBatch; - DRWShadingGroup* ChainShgrp; + GPUBatch *ChainDrawBatch; + DRWShadingGroup *ChainShgrp; SpinLock csInfo; SpinLock csData; @@ -469,17 +469,17 @@ typedef struct LANPR_RenderLine { }LANPR_RenderLine; typedef struct LANPR_RenderLineChain { - nListItem Item; + nListItem Item; ListBase Chain; //int SegmentCount; // we count before draw cmd. - float Length; // calculated before draw cmd. + float Length;// calculated before draw cmd. }LANPR_RenderLineChain; typedef struct LANPR_RenderLineChainItem { - nListItem Item; - float pos[3]; // need z value for fading - charLineType; // style of [1] style of [2] - charOcclusionLevel; // [1]--->[2]>[3]-- + nListItem Item; + float pos[3]; // need z value for fading + char LineType; // style of [1] style of [2] + char OcclusionLevel; // [1]--->[2]>[3]-- }LANPR_RenderLineChainItem; typedef struct LANPR_BoundingArea { @@ -598,7 +598,7 @@ BLI_INLINE int lanpr_TrangleLineBoundBoxTest(LANPR_RenderTriangle *rt, LANPR_Ren } BLI_INLINE double tMatGetLinearRatio(real L, real R, real FromL); -BLI_INLINE int lanpr_LineIntersectTest2d(const double* a1, const double* a2, const double* b1, const double* b2, double *aRatio) { +BLI_INLINE int lanpr_LineIntersectTest2d(const double *a1, const double *a2, const double *b1, const double *b2, double *aRatio) { double k1, k2; double x; double y; diff --git a/source/blender/draw/engines/lanpr/lanp
[Bf-blender-cvs] [7866c2fb05e] soc-2018-npr: potentially fixed drawing command conflict error in F12
Commit: 7866c2fb05e6cb90f651fada81336f18842def9d Author: Nick Wu Date: Wed Aug 1 18:50:08 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB7866c2fb05e6cb90f651fada81336f18842def9d potentially fixed drawing command conflict error in F12 === 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_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 881f1e2412c..99660b88ad9 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -802,7 +802,7 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB, int is_render); -void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb); +void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render); void lanpr_set_render_flag(); void lanpr_clear_render_flag(); diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index fa9bf03b3aa..e75ee0f10f9 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -495,6 +495,8 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR* lanpr = >lanpr; + lanpr_set_render_flag(); + if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE || (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->enable_intersections)) { if (!lanpr->render_buffer) lanpr_create_render_buffer(lanpr); @@ -503,8 +505,6 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru } } - lanpr_set_render_flag(); - workbench_render_matrices_init(engine, draw_ctx->depsgraph); /* refered to eevee's code */ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [64c25782286] soc-2018-npr: Fixed software rendering intersection cache update
Commit: 64c257822862742cff1aace99123f568d6834c37 Author: Nick Wu Date: Wed Aug 1 16:19:34 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB64c257822862742cff1aace99123f568d6834c37 Fixed software rendering intersection cache update === M source/blender/blenloader/intern/readfile.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/makesdna/DNA_scene_types.h === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 35d12fcbeae..40f157f9ae9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6523,6 +6523,8 @@ static void direct_link_scene(FileData *fd, Scene *sce) link_list(fd, >lanpr.line_layers); for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { link_list(fd, >components); + ll->batch = NULL; + ll->shgrp = NULL; } sce->layer_properties = newdataadr(fd, sce->layer_properties); diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index d9154e86b9c..7fdacdaccab 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -375,7 +375,7 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L pd->dpix_zfar = camera ? ((Camera *)camera->data)->clipend : v3d->far; GPU_point_size(1); - GPU_line_width(2); + //GPU_line_width(2); GPU_framebuffer_bind(fbl->dpix_transform); DRW_draw_pass(psl->dpix_transform_pass); diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 50e64bc0ed5..fa9bf03b3aa 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -484,6 +484,9 @@ static void workbench_render_matrices_init(RenderEngine *engine, Depsgraph *deps DRW_viewport_matrix_override_set(viewinv, DRW_MAT_VIEWINV); } +int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR* lanpr, Scene* scene) ; +LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr); + static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect){ LANPR_StorageList *stl = vedata->stl; LANPR_TextureList *txl = vedata->txl; @@ -492,6 +495,14 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR* lanpr = >lanpr; + if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE || + (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->enable_intersections)) { + if (!lanpr->render_buffer) lanpr_create_render_buffer(lanpr); + if(lanpr->render_buffer->cached_for_frame != scene->r.cfra){ + lanpr_compute_feature_lines_internal(draw_ctx->depsgraph, lanpr, scene); + } + } + lanpr_set_render_flag(); workbench_render_matrices_init(engine, draw_ctx->depsgraph); diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 1fe09093ac5..91bbb34370e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2666,6 +2666,8 @@ LANPR_RenderBuffer *lanpr_create_render_buffer(SceneLANPR *lanpr) { lanpr->render_buffer = rb; + rb->cached_for_frame = -1; + BLI_spin_init(>csData); BLI_spin_init(>csInfo); BLI_spin_init(>csManagement); @@ -3111,28 +3113,9 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb,int is_render) /* operators = */ -//seems we don't quite need this operator... -static int lanpr_clear_render_buffer_exec(struct bContext *C, struct wmOperator *op) { - Scene *scene = CTX_data_scene(C); - SceneLANPR *lanpr = >lanpr; +int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, SceneLANPR* lanpr, Scene* scene) { LANPR_RenderBuffer *rb; - Depsgraph *depsgraph = CTX_data_depsgraph(C); - lanpr_destroy_render_data(lanpr->render_buffer); - - return OPERATOR_FINISHED; -} -static int lanpr_compute_feature_lines_exec(struct bContext *C, struct wmOperator *op){ - Scene *scene = CTX_data_scene(C); - S
[Bf-blender-cvs] [3b36c698cd1] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 3b36c698cd13ff01cd718ad633070eaef15fdc2c Author: Nick Wu Date: Wed Aug 1 10:15:47 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3b36c698cd13ff01cd718ad633070eaef15fdc2c Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib # release/scripts/startup/bl_ui/properties_scene.py # source/blender/draw/CMakeLists.txt # source/blender/editors/space_outliner/outliner_draw.c === === diff --cc release/scripts/startup/bl_ui/properties_scene.py index 8bf22bd3b16,e324e7a9882..a8598e2ddcb --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@@ -568,363 -568,37 +568,391 @@@ class SCENE_PT_simplify_render(SceneBut col.prop(rd, "simplify_child_particles_render", text="Max Child Particles") + class SCENE_PT_simplify_greasepencil(SceneButtonsPanel, Panel): + bl_label = "Grease Pencil" + bl_parent_id = "SCENE_PT_simplify" + COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME', 'BLENDER_CLAY', 'BLENDER_EEVEE'} + bl_options = {'DEFAULT_CLOSED'} + + def draw_header(self, context): + rd = context.scene.render + self.layout.prop(rd, "simplify_gpencil", text="") + + def draw(self, context): + layout = self.layout + layout.use_property_split = True + + rd = context.scene.render + + layout.active = rd.simplify_gpencil + + col = layout.column() + col.prop(rd, "simplify_gpencil_onplay", text="Playback Only") + col.prop(rd, "simplify_gpencil_view_modifier", text="Modifiers") + + col = layout.column(align=True) + col.prop(rd, "simplify_gpencil_view_fill") + sub = col.column() + sub.active = rd.simplify_gpencil_view_fill + sub.prop(rd, "simplify_gpencil_remove_lines", text="Lines") + +class SCENE_PT_viewport_display(SceneButtonsPanel, Panel): +bl_label = "Viewport Display" +bl_options = {'DEFAULT_CLOSED'} + +@classmethod +def poll(cls, context): +return True + +def draw(self, context): +layout = self.layout +layout.use_property_split = True +scene = context.scene +col = layout.column() +col.prop(scene.display, "light_direction") +col.prop(scene.display, "shadow_shift") + +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(percentage=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) + +class SCENE_PT_lanpr(SceneButtonsPanel, Panel): +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_LANPR', 'BLENDER_OPENGL'} +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 + +layout.prop(lanpr, "master_mode", expand=True) + +if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": +if lanpr.master_mode == "DPIX": +layout.prop(lanpr, "reloaded") + +if lanpr.master_mode == "SOFTWARE": +layout.prop(lanpr, "background_color") +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(percentage=0.7) +col = split.column() +col.label(text="Layer Composition:") +col = split.column() +col.operator("scene.lanpr
[Bf-blender-cvs] [9b06c78676a] soc-2018-npr: Adapted multisample functions.
Commit: 9b06c78676ad170d971a0f69ddd4e48c10b0db79 Author: Nick Wu Date: Wed Aug 1 12:08:05 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB9b06c78676ad170d971a0f69ddd4e48c10b0db79 Adapted multisample functions. === M source/blender/draw/engines/lanpr/lanpr_dpix.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_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index 8cde4080125..d9154e86b9c 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -386,5 +386,5 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L GPU_framebuffer_bind(DefaultFB); GPU_framebuffer_clear(DefaultFB, clear_bits, lanpr->background_color, clear_depth, clear_stencil); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index a5beb05368c..1fe09093ac5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -2982,7 +2982,7 @@ void lanpr_viewport_draw_offline_result(LANPR_TextureList *txl, LANPR_Framebuffe GPU_framebuffer_bind(dfbl->default_fb); GPU_framebuffer_clear(dfbl->default_fb, clear_bits, lanpr->background_color, clear_depth, clear_stencil); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); } diff --git a/source/blender/draw/engines/lanpr/lanpr_snake.c b/source/blender/draw/engines/lanpr/lanpr_snake.c index 4843d831af3..fcb3b0552b8 100644 --- a/source/blender/draw/engines/lanpr/lanpr_snake.c +++ b/source/blender/draw/engines/lanpr/lanpr_snake.c @@ -349,7 +349,7 @@ void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, if ((!lanpr->enable_vector_trace) && (!lanpr->display_thinning_result)) { GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->edge_intermediate); + DRW_multisamples_resolve(txl->depth, txl->edge_intermediate, 1); return; } @@ -357,30 +357,30 @@ void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, pd->stage = 0; GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->edge_intermediate); + DRW_multisamples_resolve(txl->depth, txl->edge_intermediate, 1); GPU_framebuffer_bind(fbl->edge_thinning); DRW_draw_pass(psl->edge_thinning); GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); pd->stage = 1; GPU_framebuffer_bind(fbl->edge_thinning); DRW_draw_pass(psl->edge_thinning); GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); pd->stage = 0; GPU_framebuffer_bind(fbl->edge_thinning); DRW_draw_pass(psl->edge_thinning); GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); pd->stage = 1; GPU_framebuffer_bind(fbl->edge_thinning); DRW_draw_pass(psl->edge_thinning); GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->color); + DRW_multisamples_resolve(txl->depth, txl->color, 1); if (!lanpr->enable_vector_trace) return; } @@ -485,6 +485,6 @@ void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, pd->line_strips.first = pd->line_strips.last = 0; GPU_framebuffer_bind(DefaultFB); - DRW_multisamples_resolve(txl->depth, txl->edge_intermediate); + DRW_multisamples_resolve(txl->depth, txl->edge_intermediate, 1); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [002712d04c3] soc-2018-npr: Merge branch 'soc-2018-npr' of git.blender.org:blender into soc-2018-npr
Commit: 002712d04c356924b17e0cc71d28a552ea2f8a97 Author: Nick Wu Date: Mon Jul 30 23:20:28 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB002712d04c356924b17e0cc71d28a552ea2f8a97 Merge branch 'soc-2018-npr' of git.blender.org:blender into soc-2018-npr # Conflicts: # release/scripts/startup/bl_ui/properties_scene.py === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [927c7aae0dd] soc-2018-npr: Added init code for default LANPR values. Fixed render and scene panels to accept LANPR engine.
Commit: 927c7aae0dd074792009c0b0c9f3df2e630dcddc Author: Nick Wu Date: Mon Jul 30 23:19:17 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB927c7aae0dd074792009c0b0c9f3df2e630dcddc Added init code for default LANPR values. Fixed render and scene panels to accept LANPR engine. === M release/scripts/startup/bl_ui/properties_render.py M release/scripts/startup/bl_ui/properties_scene.py M source/blender/blenkernel/intern/scene.c M source/blender/blenloader/intern/versioning_280.c M source/blender/draw/engines/lanpr/lanpr_all.h 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 1c26d172e4c..0805684ebcf 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -84,7 +84,7 @@ class RENDER_PT_context(Panel): class RENDER_PT_dimensions(RenderButtonsPanel, Panel): bl_label = "Dimensions" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} _frame_rate_args_prev = None _preset_class = None @@ -172,7 +172,7 @@ class RENDER_PT_frame_remapping(RenderButtonsPanel, Panel): bl_label = "Time Remapping" bl_parent_id = "RENDER_PT_dimensions" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -189,7 +189,7 @@ class RENDER_PT_frame_remapping(RenderButtonsPanel, Panel): class RENDER_PT_post_processing(RenderButtonsPanel, Panel): bl_label = "Post Processing" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -207,7 +207,7 @@ class RENDER_PT_post_processing(RenderButtonsPanel, Panel): class RENDER_PT_stamp(RenderButtonsPanel, Panel): bl_label = "Metadata" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -248,7 +248,7 @@ class RENDER_PT_stamp_burn(RenderButtonsPanel, Panel): bl_label = "Burn Into Image" bl_parent_id = "RENDER_PT_stamp" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw_header(self, context): rd = context.scene.render @@ -272,7 +272,7 @@ class RENDER_PT_stamp_burn(RenderButtonsPanel, Panel): class RENDER_PT_output(RenderButtonsPanel, Panel): bl_label = "Output" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw(self, context): layout = self.layout @@ -304,7 +304,7 @@ class RENDER_PT_output(RenderButtonsPanel, Panel): class RENDER_PT_encoding(RenderButtonsPanel, Panel): bl_label = "Encoding" bl_options = {'DEFAULT_CLOSED'} -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} def draw_header_preset(self, context): RENDER_PT_ffmpeg_presets.draw_panel_header(self.layout) @@ -401,7 +401,7 @@ class RENDER_UL_renderviews(UIList): class RENDER_PT_stereoscopy(RenderButtonsPanel, Panel): bl_label = "Stereoscopy" -COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'} +COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL', 'BLENDER_LANPR'} bl_options = {'DEFAULT_CLOSED'} def draw_header(self, context): diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index b609e2322b6..8bf22bd3b16 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -66,7 +66,7 @@ class SceneButtonsPanel: class SCENE_PT_scene(SceneButtonsPanel, Panel): bl_label = "Scene" -COMPAT_ENGINES =
[Bf-blender-cvs] [67d1949c5bb] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 67d1949c5bb87f284485358cb3da5f422aab2dfa Author: Nick Wu Date: Mon Jul 30 18:27:46 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB67d1949c5bb87f284485358cb3da5f422aab2dfa Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/addons # release/scripts/addons_contrib === === ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [63921c65e94] soc-2018-npr: changed most of the list API into BLI_'s. Removed many unused functions
Commit: 63921c65e9480b8004c2807a96fa8cc3835dc1d8 Author: Nick Wu Date: Mon Jul 30 18:26:15 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB63921c65e9480b8004c2807a96fa8cc3835dc1d8 changed most of the list API into BLI_'s. Removed many unused functions === 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 M source/blender/draw/engines/lanpr/lanpr_util.c M source/blender/draw/engines/lanpr/lanpr_util.h === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 50365298de7..4e2b50c432b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -264,16 +264,16 @@ typedef struct LANPR_RenderTaskInfo { int ThreadID; struct nListItemPointer *Contour; - nListHandle ContourPointers; + ListBase ContourPointers; struct nListItemPointer *Intersection; - nListHandle IntersectionPointers; + ListBase IntersectionPointers; struct nListItemPointer *Crease; - nListHandle CreasePointers; + ListBase CreasePointers; struct nListItemPointer *Material; - nListHandle MaterialPointers; + ListBase MaterialPointers; } LANPR_RenderTaskInfo; @@ -304,12 +304,12 @@ typedef struct LANPR_RenderBuffer { //u32bit BaVBO; //u32bit BaFillVBO; - nListHandle VertexBufferPointers; - nListHandle LineBufferPointers; - nListHandle TriangleBufferPointers; - nListHandle AllRenderLines; + ListBase VertexBufferPointers; + ListBase LineBufferPointers; + ListBase TriangleBufferPointers; + ListBase AllRenderLines; - nListHandle IntersectingVertexBuffer; + ListBase IntersectingVertexBuffer; struct GPUBatch *DPIXIntersectionTransformBatch; struct GPUBatch *DPIXIntersectionBatch; @@ -330,29 +330,29 @@ typedef struct LANPR_RenderBuffer { u32bit ContourCount; u32bit ContourProcessed; nListItemPointer *ContourManaged; - nListHandle Contours; + ListBase Contours; u32bit IntersectionCount; u32bit IntersectionProcessed; nListItemPointer *IntersectionManaged; - nListHandle IntersectionLines; + ListBase IntersectionLines; u32bit CreaseCount; u32bit CreaseProcessed; nListItemPointer *CreaseManaged; - nListHandle CreaseLines; + ListBase CreaseLines; u32bit MaterialLineCount; u32bit MaterialProcessed; nListItemPointer *MaterialManaged; - nListHandle MaterialLines; + ListBase MaterialLines; u32bit EdgeMarkCount; u32bit EdgeMarkProcessed; nListItemPointer *EdgeMarkManaged; - nListHandle EdgeMarks; + ListBase EdgeMarks; - nListHandle Chains; + ListBase Chains; GPUBatch* ChainDrawBatch; DRWShadingGroup* ChainShgrp; @@ -407,7 +407,7 @@ typedef struct LANPR_RenderTriangle { real GC[3]; //struct BMFace *F; short MaterialID; - nListHandle IntersectingVerts; + ListBase IntersectingVerts; char CullStatus; struct LANPR_RenderTriangle *Testing; //Should Be tRT** Testing[NumOfThreads] }LANPR_RenderTriangle; @@ -460,7 +460,7 @@ typedef struct LANPR_RenderLine { nListItem Item; struct LANPR_RenderVert *L, *R; struct LANPR_RenderTriangle *TL, *TR; - nListHandle Segments; + ListBase Segments; //tnsEdge* Edge;//should be edge material //tnsRenderTriangle* Testing;//Should Be tRT** Testing[NumOfThreads] char MinOcclude; @@ -470,7 +470,7 @@ typedef struct LANPR_RenderLine { typedef struct LANPR_RenderLineChain { nListItem Item; - nListHandle Chain; + ListBase Chain; //int SegmentCount; // we count before draw cmd. float Length; // calculated before draw cmd. }LANPR_RenderLineChain; @@ -488,15 +488,15 @@ typedef struct LANPR_BoundingArea { struct LANPR_BoundingArea *Child;//1,2,3,4 quadrant - nListHandle LP; - nListHandle RP; - nListHandle UP; - nListHandle BP; + ListBase LP; + ListBase RP; + ListBase UP; + ListBase BP; int TriangleCount; - nListHandle LinkedTriangles; - nListHandle LinkedLines; - nListHandle LinkedChains;//reserved for multithread chainning + ListBase LinkedTriangles; + ListBase LinkedLines; + ListBase LinkedChains;//reserved for multithread chainning }LANPR_BoundingArea; diff --git a/source/blender/draw
[Bf-blender-cvs] [9218730b2b3] soc-2018-npr: DPIX and Snake's F12 is working now.
Commit: 9218730b2b313147ed0dc424bcb23575139dfbc1 Author: Nick Wu Date: Fri Jul 27 18:17:18 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB9218730b2b313147ed0dc424bcb23575139dfbc1 DPIX and Snake's F12 is working now. === M source/blender/draw/engines/lanpr/lanpr_all.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_snake.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 62c47163546..50365298de7 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -166,9 +166,6 @@ typedef struct LANPR_PrivateData { DRWShadingGroup *debug_shgrp; - // moved into line layer. - //DRWShadingGroup *software_shgrp; - //snake float normal_clamp; diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index 92346a17c8c..b4cb6308b2d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -93,26 +93,7 @@ void lanpr_init_atlas_inputs(void *ved){ } } void lanpr_destroy_atlas(void *ved){ - lanpr_share.ved_viewport = ved; - LANPR_Data *vedata = (LANPR_Data *)ved; - LANPR_TextureList *txl = vedata->txl; - LANPR_FramebufferList *fbl = vedata->fbl; - LANPR_StorageList *stl = ((LANPR_Data *)vedata)->stl; - LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; - - //DRW_pass_free(psl->dpix_transform_pass); - //DRW_pass_free(psl->dpix_preview_pass); - - GPU_framebuffer_free(fbl->dpix_transform); - GPU_framebuffer_free(fbl->dpix_preview); - - DRW_texture_free(txl->dpix_in_pl); - DRW_texture_free(txl->dpix_in_pr); - DRW_texture_free(txl->dpix_in_nl); - DRW_texture_free(txl->dpix_in_nr); - DRW_texture_free(txl->dpix_in_edge_mask); - DRW_texture_free(txl->dpix_out_pl); - DRW_texture_free(txl->dpix_out_pr); + //no need to free things, no custom data. } int lanpr_feed_atlas_data_obj(void *vedata, @@ -374,7 +355,7 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L const DRWContextState *draw_ctx = DRW_context_state_get(); Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); View3D *v3d = draw_ctx->v3d; - Object *camera; + Object *camera=0; if (v3d) { RegionView3D *rv3d = draw_ctx->rv3d; camera = (rv3d && rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; @@ -382,7 +363,7 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L if(!camera){ camera = scene->camera; } - if (!camera) return; + if (is_render && !camera) return; pd->dpix_viewport[2] = texw; pd->dpix_viewport[3] = texh; diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index d408a138411..50e64bc0ed5 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -173,35 +173,15 @@ static void lanpr_engine_init(void *ved){ static void lanpr_engine_free(void){ void *ved = lanpr_share.ved_viewport; LANPR_Data *vedata = (LANPR_Data *)ved; - LANPR_TextureList *txl = vedata->txl; - LANPR_FramebufferList *fbl = vedata->fbl; LANPR_StorageList *stl = ((LANPR_Data *)vedata)->stl; - LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; - - //DRW_pass_free(psl->color_pass); - //DRW_pass_free(psl->edge_intermediate); - GPU_framebuffer_free(fbl->passes); - GPU_framebuffer_free(fbl->edge_intermediate); - GPU_framebuffer_free(fbl->edge_thinning); - GPU_framebuffer_free(fbl->software_ms); - - DRW_texture_free(txl->depth); - DRW_texture_free(txl->color); - DRW_texture_free(txl->normal); - DRW_texture_free(txl->edge_intermediate); - DRW_texture_free(txl->ms_resolve_depth); - DRW_texture_free(txl->ms_resolve_color); + //only free custom data in storage list. BLI_mempool_destroy(stl->g_data->mp_line_strip); BLI_mempool_destroy(stl->g_data->mp_line_strip_point); BLI_mempool_destroy(stl->g_data->mp_sample); BLI_mempool_destroy(stl->g_data->mp_batch_list); - MEM_freeN(stl->g_data->line_result_8bit); - MEM_freeN(stl->g_data->line_result); - MEM_freeN(stl->g_data); -
[Bf-blender-cvs] [4ef26d98d33] soc-2018-npr: Fixed intersection calculation memory leak, fixed snake UI error, added F12 supporting functions.
Commit: 4ef26d98d33d026f010da27d97dd0929023589ba Author: Nick Wu Date: Fri Jul 27 11:37:14 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4ef26d98d33d026f010da27d97dd0929023589ba Fixed intersection calculation memory leak, fixed snake UI error, added F12 supporting functions. === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/engines/lanpr/lanpr_all.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_snake.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index 09216661665..b609e2322b6 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -818,7 +818,7 @@ class SCENE_PT_lanpr_snake_settings(SceneButtonsPanel, Panel): def poll(cls, context): scene = context.scene lanpr = scene.lanpr -return lanpr.master_mode == "SNAKE" and lanpr.enable_vector_trace == "ENABLE" +return lanpr.master_mode == "SNAKE" and lanpr.enable_vector_trace == "ENABLED" def draw(self, context): layout = self.layout diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 330df6aa6de..faffecf4b9f 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -50,7 +50,7 @@ ((L) * (1.0f - (T)) + (R)*(T)) -typedef struct LANPROneTimeInit { +typedef struct LANPRSharedResource { /* Snake */ GPUShader *multichannel_shader; @@ -66,17 +66,17 @@ typedef struct LANPROneTimeInit { GPUShader *software_shader; GPUShader *software_chaining_shader; - /* For Debug... */ - GPUShader *debug_shader; + void *ved_viewport; + void *ved_render; - void *ved; + int init_complete; - /* for default value assignment */ + 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 InitComplete; - -} LANPROneTimeInit; +} LANPRSharedResource; #define TNS_DPIX_TEXTURE_SIZE 2048 @@ -114,9 +114,6 @@ typedef struct LANPR_PassList { /* SOFTWARE */ struct DRWPass *software_pass; - /* DEBUG */ - struct DRWPass *debug_pass; - } LANPR_PassList; typedef struct LANPR_FramebufferList { @@ -327,6 +324,8 @@ typedef struct LANPR_RenderBuffer { //render status + int cached_for_frame; + real ViewVector[3]; int TriangleSize; @@ -802,9 +801,13 @@ int lanpr_feed_atlas_data_intersection_cache(void *vedata, int lanpr_feed_atlas_trigger_preview_obj(void *vedata, Object *ob, int begin_index); void lanpr_create_atlas_intersection_preview(void *vedata, int begin_index); -void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB); +void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB, int is_render); -void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB); +void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB, int is_render); void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb); +void lanpr_set_render_flag(); +void lanpr_clear_render_flag(); +int lanpr_during_render(); + diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index db9210b3947..b400a3f9a89 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -25,14 +25,14 @@ #include -extern struct LANPROneTimeInit OneTime; +extern LANPRSharedResource lanpr_share; extern char datatoc_lanpr_dpix_project_passthrough_vert_glsl[]; extern char datatoc_lanpr_dpix_project_clip_frag_glsl[]; extern char datatoc_lanpr_dpix_preview_geom_glsl[]; extern char datatoc_lanpr_dpix_preview_frag_glsl[]; void lanpr_init_atlas_inputs(void *ved){ - OneTime.ved = ved; + lanpr_share.ved_viewport = ved; LANPR_Data *vedata = (LANPR_Data *)ved;
[Bf-blender-cvs] [e941813e3c8] soc-2018-npr: Debugging small problem in threads, in lanpr_triangle_line_imagespace_intersection_v2()
Commit: e941813e3c8bace99db02eec9fc39c58e852a527 Author: Nick Wu Date: Fri Jul 27 15:53:13 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBe941813e3c8bace99db02eec9fc39c58e852a527 Debugging small problem in threads, in lanpr_triangle_line_imagespace_intersection_v2() === 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 === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index faffecf4b9f..62c47163546 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -417,7 +417,7 @@ typedef struct LANPR_RenderTriangle { typedef struct LANPR_RenderTriangleThread { struct LANPR_RenderTriangle Base; - struct LANPR_RenderLine *Testing[128];//max thread support; + struct LANPR_RenderLine *Testing[127];//max thread support; }LANPR_RenderTriangleThread; typedef struct LANPR_RenderElementLinkNode { @@ -601,7 +601,7 @@ BLI_INLINE int lanpr_TrangleLineBoundBoxTest(LANPR_RenderTriangle *rt, LANPR_Ren } BLI_INLINE double tMatGetLinearRatio(real L, real R, real FromL); -BLI_INLINE int lanpr_LineIntersectTest2d(tnsVector2d a1, tnsVector2d a2, tnsVector2d b1, tnsVector2d b2, double *aRatio) { +BLI_INLINE int lanpr_LineIntersectTest2d(const double* a1, const double* a2, const double* b1, const double* b2, double *aRatio) { double k1, k2; double x; double y; diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 46bdd76cd21..45a1c2063c9 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -377,6 +377,7 @@ void lanpr_chain_generate_draw_command(LANPR_RenderBuffer *rb){ MEM_freeN(lengths); + if (rb->ChainDrawBatch) GPU_batch_discard(rb->ChainDrawBatch); rb->ChainDrawBatch = GPU_batch_create_ex(GPU_PRIM_LINES_ADJ, vbo, GPU_indexbuf_build(), GPU_USAGE_DYNAMIC | GPU_BATCH_OWNS_VBO); } \ No newline at end of file diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index b400a3f9a89..92346a17c8c 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -100,8 +100,8 @@ void lanpr_destroy_atlas(void *ved){ LANPR_StorageList *stl = ((LANPR_Data *)vedata)->stl; LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; - DRW_pass_free(psl->dpix_transform_pass); - DRW_pass_free(psl->dpix_preview_pass); + //DRW_pass_free(psl->dpix_transform_pass); + //DRW_pass_free(psl->dpix_preview_pass); GPU_framebuffer_free(fbl->dpix_transform); GPU_framebuffer_free(fbl->dpix_preview); diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 7d24e76348f..d408a138411 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -178,8 +178,8 @@ static void lanpr_engine_free(void){ LANPR_StorageList *stl = ((LANPR_Data *)vedata)->stl; LANPR_PassList *psl = ((LANPR_Data *)vedata)->psl; - DRW_pass_free(psl->color_pass); - DRW_pass_free(psl->edge_intermediate); + //DRW_pass_free(psl->color_pass); + //DRW_pass_free(psl->edge_intermediate); GPU_framebuffer_free(fbl->passes); GPU_framebuffer_free(fbl->edge_intermediate); @@ -560,7 +560,7 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru BLI_rcti_size_x(rect), BLI_rcti_size_y(rect), 4, 0, rp->rect); - lanpr_engine_free(); + //lanpr_engine_free(); lanpr_clear_render_flag(); } diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index eb8f8042dde..2d6bdc0f32d 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -51,7 +51,7 @@ struct Object; -int lanpr_triangle_line_imagespace_intersection_v2(LANPR_RenderTriangle *rt, LANPR_RenderLine *rl, Object *cam, tnsMatrix44d vp, real *CameraDir, double *From, double *To); +int lanpr_triangle_line_imagespace_intersection_v2(SpinLock* spl, LANPR_RenderTriangle *rt, LANPR_RenderLine *rl, Object *cam, tnsMatrix44d vp, real *CameraDir, double *From, double *To); /* == base structure
[Bf-blender-cvs] [68374d38381] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 68374d38381ba597504c1cba4b303d0b336e6c81 Author: Nick Wu Date: Thu Jul 26 10:09:40 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB68374d38381ba597504c1cba4b303d0b336e6c81 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [d250cd950b7] soc-2018-npr: Typo fix finalColor
Commit: d250cd950b7d0fcaae71759e9140e7a1b998d38b Author: Nick Wu Date: Wed Jul 25 22:49:14 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBd250cd950b7d0fcaae71759e9140e7a1b998d38b Typo fix finalColor === M source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl === diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl index 016f3821ccc..10aa51d1463 100644 --- a/source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl +++ b/source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl @@ -1,5 +1,5 @@ in vec3 normal; -in vec4 finalcolor; +in vec4 finalColor; float Interpolate(float between1,float between2,float value1,float value2,float key){ float i = (key-between1)/(between2-between1); @@ -12,6 +12,6 @@ void main(){ //else if(value>=0.65 && value<0.85) value=Interpolate(0.65,0.85,0.15,0.75,value); //else if(value>=0.85 && value<0.95) value=0.75; //else if(value>=0.95) value=0.9; -gl_FragData[0] = vec4(finalcolor.rgb*value,1); +gl_FragData[0] = vec4(finalColor.rgb*value,1); gl_FragData[1] = vec4(normal,1);//vec4((normal+vec3(1))*0.5,1); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [dd5fcd4d0f9] soc-2018-npr: Fix camera access error, added report to no camera situation.
Commit: dd5fcd4d0f9e4da98bf6c46d6a87b2ead0709b4c Author: Nick Wu Date: Wed Jul 25 22:25:18 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBdd5fcd4d0f9e4da98bf6c46d6a87b2ead0709b4c Fix camera access error, added report to no camera situation. === 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 === diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c index d717b7799fc..db9210b3947 100644 --- a/source/blender/draw/engines/lanpr/lanpr_dpix.c +++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c @@ -42,7 +42,7 @@ void lanpr_init_atlas_inputs(void *ved){ const DRWContextState *draw_ctx = DRW_context_state_get(); View3D *v3d = draw_ctx->v3d; RegionView3D *rv3d = draw_ctx->rv3d; - Object *camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; + Object *camera = (rv3d && rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; SceneLANPR *lanpr = _ctx->scene->lanpr; if (lanpr->reloaded || !txl->dpix_in_pl) { @@ -377,11 +377,12 @@ void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, L Object *camera; if (v3d) { RegionView3D *rv3d = draw_ctx->rv3d; - camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; + camera = (rv3d && rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; } - else { + if(!camera){ camera = scene->camera; } + if (!camera) return; pd->dpix_viewport[2] = texw; pd->dpix_viewport[3] = texh; diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 755801b6585..11b7bbf0d0e 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -59,14 +59,6 @@ static void lanpr_engine_init(void *ved){ Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR *lanpr = >lanpr; View3D *v3d = draw_ctx->v3d; - Object *camera; - if (v3d) { - RegionView3D *rv3d = draw_ctx->rv3d; - camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; - } - else { - camera = scene->camera; - } if (!OneTime.InitComplete) { //lanpr->depth_clamp = 0.01; @@ -269,14 +261,6 @@ static void lanpr_cache_init(void *vedata){ Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR *lanpr = >lanpr; View3D *v3d = draw_ctx->v3d; - Object *camera; - if (v3d) { - RegionView3D *rv3d = draw_ctx->rv3d; - camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; - } - else { - camera = scene->camera; - } psl->color_pass = DRW_pass_create("color Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_LESS_EQUAL | DRW_STATE_WRITE_DEPTH); stl->g_data->multipass_shgrp = DRW_shgroup_create(OneTime.multichannel_shader, psl->color_pass); @@ -466,14 +450,6 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb) { Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph); SceneLANPR *lanpr = >lanpr; View3D *v3d = draw_ctx->v3d; - Object *camera; - if (v3d) { - RegionView3D *rv3d = draw_ctx->rv3d; - camera = (rv3d->persp == RV3D_CAMOB) ? v3d->camera : NULL; - } - else { - camera = scene->camera; - } //DEBUG, draw a square only { diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index ee594033d95..fef1d451fc7 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -21,6 +21,7 @@ #include "DEG_depsgraph_query.h" #include "BKE_camera.h" #include "BKE_collection.h" +#include "BKE_report.h" #include "GPU_draw.h" #include "GPU_batch.h" @@ -1687,7 +1688,6 @@ void lanpr_make_render_geometry_buffers(Depsgraph *depsgraph, Scene *s, Object * CollectionObject *co; tnsMatrix44d obmat16; tnsMatrix44d proj, view, result, inv; - if (!c) return; Camera *cam = c->data; float sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y); @@ -2994,14 +2994,14 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb) {
[Bf-blender-cvs] [3353221166b] soc-2018-npr: Fix code for strict compile.
Commit: 3353221166b09083e875b9d3d4b95a523b115e08 Author: Nick Wu Date: Wed Jul 25 22:15:18 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3353221166b09083e875b9d3d4b95a523b115e08 Fix code for strict compile. === 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 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_snake_line_connection_geom.glsl M source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 0ab2c80eccb..330df6aa6de 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -573,7 +573,7 @@ extern RenderEngineType DRW_engine_viewport_lanpr_type; #define TNS_IN_TILE(RenderTile, Fx, Fy) \ (TNS_IN_TILE_X(RenderTile, Fx) && TNS_IN_TILE_Y(RenderTile, Fy)) -__inline void tMatConvert44df(tnsMatrix44d from, tnsMatrix44f to) { +BLI_INLINE void tMatConvert44df(tnsMatrix44d from, tnsMatrix44f to) { to[0] = from[0]; to[1] = from[1]; to[2] = from[2]; @@ -592,7 +592,7 @@ __inline void tMatConvert44df(tnsMatrix44d from, tnsMatrix44f to) { to[15] = from[15]; } -__inline int lanpr_TrangleLineBoundBoxTest(LANPR_RenderTriangle *rt, LANPR_RenderLine *rl) { +BLI_INLINE int lanpr_TrangleLineBoundBoxTest(LANPR_RenderTriangle *rt, LANPR_RenderLine *rl) { if (MAX3(rt->V[0]->FrameBufferCoord[2], rt->V[1]->FrameBufferCoord[2], rt->V[2]->FrameBufferCoord[2]) > MIN2(rl->L->FrameBufferCoord[2], rl->R->FrameBufferCoord[2])) return 0; if (MAX3(rt->V[0]->FrameBufferCoord[0], rt->V[1]->FrameBufferCoord[0], rt->V[2]->FrameBufferCoord[0]) < MIN2(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0])) return 0; if (MIN3(rt->V[0]->FrameBufferCoord[0], rt->V[1]->FrameBufferCoord[0], rt->V[2]->FrameBufferCoord[0]) > MAX2(rl->L->FrameBufferCoord[0], rl->R->FrameBufferCoord[0])) return 0; @@ -601,8 +601,8 @@ __inline int lanpr_TrangleLineBoundBoxTest(LANPR_RenderTriangle *rt, LANPR_Rende return 1; } -__inline double tMatGetLinearRatio(real L, real R, real FromL); -__inline int lanpr_LineIntersectTest2d(tnsVector2d a1, tnsVector2d a2, tnsVector2d b1, tnsVector2d b2, double *aRatio) { +BLI_INLINE double tMatGetLinearRatio(real L, real R, real FromL); +BLI_INLINE int lanpr_LineIntersectTest2d(tnsVector2d a1, tnsVector2d a2, tnsVector2d b1, tnsVector2d b2, double *aRatio) { double k1, k2; double x; double y; @@ -656,96 +656,96 @@ __inline int lanpr_LineIntersectTest2d(tnsVector2d a1, tnsVector2d a2, tnsVector return 1; } -__inline double lanpr_GetLineZ(tnsVector3d L, tnsVector3d R, real Ratio) { +BLI_INLINE double lanpr_GetLineZ(tnsVector3d L, tnsVector3d R, real Ratio) { //double z = 1 / tnsLinearItp(1 / L[2], 1 / R[2], Ratio); double z = tnsLinearItp(L[2], R[2], Ratio); return z; } -__inline double lanpr_GetLineZPoint(tnsVector3d L, tnsVector3d R, tnsVector3d FromL) { +BLI_INLINE double lanpr_GetLineZPoint(tnsVector3d L, tnsVector3d R, tnsVector3d FromL) { double r = (FromL[0] - L[0]) / (R[0] - L[0]); return tnsLinearItp(L[2], R[2], r); //return 1 / tnsLinearItp(1 / L[2], 1 / R[2], r); } -__inline double lanpr_GetLinearRatio(tnsVector3d L, tnsVector3d R, tnsVector3d FromL) { +BLI_INLINE double lanpr_GetLinearRatio(tnsVector3d L, tnsVector3d R, tnsVector3d FromL) { double r = (FromL[0] - L[0]) / (R[0] - L[0]); return r; } -__inline double tMatGetLinearRatio(real L, real R, real FromL) { +BLI_INLINE double tMatGetLinearRatio(real L, real R, real FromL) { double r = (FromL - L) / (R - L); return r; } -__inline void tMatVectorMinus2d(tnsVector2d result, tnsVector2d l, tnsVector2d r) { +BLI_INLINE void tMatVectorMinus2d(tnsVector2d result, tnsVector2d l, tnsVector2d r) { result[0] = l[0] - r[0]; result[1] = l[1] - r[1]; } -__inline void tMatVectorMinus3d(tnsVector3d result, tnsVector3d l, tnsVector3d r) { +BLI_INLINE void tMatVectorMinus3d(tnsVector3d result, tnsVector3d l, tnsVector3d r) { result[0] = l[0] - r[0]; result[1] = l[1] - r[1]; result[2] = l[2] - r[2]; } -__inline void tMatVectorSubtract3d(tnsVector3d l, tnsVector3d r) { +BLI_INLINE void tMatVectorSubtract3d(tnsVector3d l, tnsVector3d r) { l[0] = l[0] - r[0]; l[1] = l[
[Bf-blender-cvs] [ea8f7878f6c] soc-2018-npr: Added debug shaders to find problems in f12
Commit: ea8f7878f6cad888c0e1491d2f243874178e21dc Author: Nick Wu Date: Wed Jul 25 16:39:58 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBea8f7878f6cad888c0e1491d2f243874178e21dc Added debug shaders to find problems in f12 === M source/blender/draw/engines/lanpr/lanpr_all.h 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_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 610317c2316..0ab2c80eccb 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -66,6 +66,9 @@ typedef struct LANPROneTimeInit { GPUShader *software_shader; GPUShader *software_chaining_shader; + /* For Debug... */ + GPUShader *debug_shader; + void *ved; @@ -111,6 +114,9 @@ typedef struct LANPR_PassList { /* SOFTWARE */ struct DRWPass *software_pass; + /* DEBUG */ + struct DRWPass *debug_pass; + } LANPR_PassList; typedef struct LANPR_FramebufferList { @@ -161,6 +167,8 @@ typedef struct LANPR_PrivateData { DRWShadingGroup *dpix_transform_shgrp; DRWShadingGroup *dpix_preview_shgrp; + DRWShadingGroup *debug_shgrp; + // moved into line layer. //DRWShadingGroup *software_shgrp; @@ -797,3 +805,6 @@ void lanpr_create_atlas_intersection_preview(void *vedata, int begin_index); void lanpr_dpix_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB); void lanpr_snake_draw_scene(LANPR_TextureList *txl, LANPR_FramebufferList *fbl, LANPR_PassList *psl, LANPR_PrivateData *pd, SceneLANPR *lanpr, GPUFrameBuffer *DefaultFB); + +void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb); + diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index 54558abf717..755801b6585 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -41,8 +41,8 @@ extern char datatoc_lanpr_dpix_project_passthrough_vert_glsl[]; extern char datatoc_lanpr_dpix_project_clip_frag_glsl[]; extern char datatoc_lanpr_dpix_preview_frag_glsl[]; extern char datatoc_lanpr_software_passthrough_vert_glsl[]; - - +extern char datatoc_gpu_shader_2D_smooth_color_vert_glsl[]; +extern char datatoc_gpu_shader_2D_smooth_color_frag_glsl[]; LANPROneTimeInit OneTime; @@ -198,6 +198,16 @@ static void lanpr_engine_init(void *ved){ GPU_ATTACHMENT_LEAVE }); + /* Debug */ + if (!OneTime.debug_shader) { + OneTime.debug_shader = + GPU_shader_create( + datatoc_gpu_shader_2D_smooth_color_vert_glsl, + datatoc_gpu_shader_2D_smooth_color_frag_glsl, + NULL, + NULL, NULL); + } + } static void lanpr_engine_free(void){ void *ved = OneTime.ved; @@ -465,6 +475,45 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb) { camera = scene->camera; } + //DEBUG, draw a square only + { + GPU_framebuffer_bind(fbl->software_ms); + GPU_framebuffer_clear(fbl->software_ms, clear_bits, lanpr->background_color, clear_depth, clear_stencil); + + psl->debug_pass = psl->software_pass = DRW_pass_create("Debug Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL); + pd->debug_shgrp = DRW_shgroup_create(OneTime.debug_shader, psl->debug_pass); + + static struct GPUBatch *square_batch = NULL; + if (!square_batch) { + static GPUVertFormat format = { 0 }; + static struct { uint pos, color; } attr_id; + if (format.attr_len == 0) { + attr_id.pos = GPU_vertformat_attr_add(, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); + attr_id.color = GPU_vertformat_attr_add(, "color", GPU_COMP_F32, 4, GPU_FETCH_FLOAT); + } + GPUVertBuf *vbo = GPU_vertbuf_create_with_format(); + GPU_vertbuf_data_alloc(vbo, 4); + + float v[4] = { 0 }, c[4] = { 1,1,1,1 }; + GPU_vertbuf_attr_set(vbo, attr_id.pos, 0, v); GPU_vertbuf_attr_set(vbo, attr_id.color, 0, c); + v[0] = 0.9; + GPU_vertbuf_attr_set(vbo, attr_id.pos, 1, v); GPU_vertbuf_attr_set(vbo, at
[Bf-blender-cvs] [88448dba155] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 88448dba155453fd265c228b3970d1eb86f1e101 Author: Nick Wu Date: Wed Jul 25 13:43:14 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB88448dba155453fd265c228b3970d1eb86f1e101 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [7fa715cfb76] soc-2018-npr: Modified UI for chaining.
Commit: 7fa715cfb76c23f82a9d695fa1a6d07e9a162215 Author: Nick Wu Date: Tue Jul 24 16:57:29 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB7fa715cfb76c23f82a9d695fa1a6d07e9a162215 Modified UI for chaining. === M release/scripts/startup/bl_ui/properties_scene.py 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/editors/render/render_intern.h M source/blender/editors/render/render_ops.c M source/blender/makesrna/intern/rna_lanpr.c === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index e142397a5fc..09216661665 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -619,13 +619,19 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.prop(lanpr, "reloaded") if lanpr.master_mode == "SOFTWARE": +layout.prop(lanpr, "background_color") layout.label(text="Enable On Demand:") row = layout.row() row.prop(lanpr,"calculate_intersections", text = "Intersection Lines") row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)") layout.label(text="RUN:") layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') -layout.label(text="Layer Composition:") + +split = layout.split(percentage=0.7) +col = split.column() +col.label(text="Layer Composition:") +col = split.column() +col.operator("scene.lanpr_auto_create_line_layer", text = "Default", icon = "ZOOMIN") layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=4) if active_layer: split = layout.split() @@ -670,6 +676,8 @@ class SCENE_PT_lanpr_line_types(SceneButtonsPanel, Panel): lanpr = scene.lanpr active_layer = lanpr.layers.active_layer +layout.operator("scene.lanpr_enable_all_line_types") + split = layout.split(percentage=0.3) col = split.column() col.prop(active_layer, "enable_contour", text="Contour", toggle=True) @@ -723,7 +731,7 @@ class SCENE_PT_lanpr_line_components(SceneButtonsPanel, Panel): scene = context.scene lanpr = scene.lanpr active_layer = lanpr.layers.active_layer -return active_layer and lanpr.master_mode == "SOFTWARE" +return active_layer and lanpr.master_mode == "SOFTWARE" and not lanpr.enable_chaining def draw(self, context): layout = self.layout @@ -810,7 +818,7 @@ class SCENE_PT_lanpr_snake_settings(SceneButtonsPanel, Panel): def poll(cls, context): scene = context.scene lanpr = scene.lanpr -return lanpr.master_mode == "SNAKE" and lanpr.enable_vector_trace == "ENABLED" +return lanpr.master_mode == "SNAKE" and lanpr.enable_vector_trace == "ENABLE" def draw(self, context): layout = self.layout @@ -857,6 +865,45 @@ class SCENE_PT_lanpr_snake_settings(SceneButtonsPanel, Panel): layout.label(text="---INOP---") layout.prop(lanpr,"extend_length") +class SCENE_PT_lanpr_software_chain_styles(SceneButtonsPanel, Panel): +bl_label = "Chain Styles" +bl_parent_id = "SCENE_PT_lanpr" +COMPAT_ENGINES = {'BLENDER_CLAY'} + +@classmethod +def poll(cls, context): +scene = context.scene +lanpr = scene.lanpr +return lanpr.master_mode == "SOFTWARE" and lanpr.enable_chaining + +def draw(self, context): +layout = self.layout +scene = context.scene +lanpr = scene.lanpr +layout.label(text="Taper:") +layout.prop(lanpr, "use_same_taper", expand = True) +if lanpr.use_same_taper == "DISABLED": +split = layout.split() +col = split.column(align = True) +col.label(text="Left:") +col.prop(lanpr,"taper_left_distance") +col.prop(lanpr,"taper_left_strength") +col = split.column
[Bf-blender-cvs] [483d5d7c936] soc-2018-npr: Fixed c function and glsl file names.
Commit: 483d5d7c9363cebd43524a4559748bfea0a73fb8 Author: Nick Wu Date: Tue Jul 24 15:30:06 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB483d5d7c9363cebd43524a4559748bfea0a73fb8 Fixed c function and glsl file names. === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/CMakeLists.txt 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 R100source/blender/draw/engines/lanpr/shaders/lanpr_atlas_preview.fragment source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_frag.glsl R100source/blender/draw/engines/lanpr/shaders/lanpr_atlas_preview.geometry source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_atlas_project_clip.fragment source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_atlas_project_passthrough.vertex source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_passthrough_vert.glsl R100source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge.fragment source/blender/draw/engines/lanpr/shaders/lanpr_snake_edge_frag.glsl R100source/blender/draw/engines/lanpr/shaders/lanpr_image_peel.fragment source/blender/draw/engines/lanpr/shaders/lanpr_snake_image_peel_frag.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_line_connection.fragment source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_frag.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_line_connection.geometry source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_geom.glsl R100source/blender/draw/engines/lanpr/shaders/lanpr_line_connection.vertex source/blender/draw/engines/lanpr/shaders/lanpr_snake_line_connection_vert.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel.fragment source/blender/draw/engines/lanpr/shaders/lanpr_snake_multichannel_frag.glsl R100source/blender/draw/engines/lanpr/shaders/lanpr_software_chain.geometry source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_software_line_width.geometry source/blender/draw/engines/lanpr/shaders/lanpr_software_line_chain_geom.glsl R100 source/blender/draw/engines/lanpr/shaders/lanpr_software_scale_compensate.vertex source/blender/draw/engines/lanpr/shaders/lanpr_software_passthrough_vert.glsl === diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index a95ed107725..e142397a5fc 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -626,7 +626,7 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): layout.label(text="RUN:") layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') layout.label(text="Layer Composition:") -layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=rows) +layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=4) if active_layer: split = layout.split() col = split.column() diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 1ed2b724f7a..75031fabc9f 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -240,19 +240,19 @@ data_to_c_simple(engines/workbench/shaders/workbench_volume_vert.glsl SRC) 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_atlas_preview.geometry SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_atlas_preview.fragment SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_atlas_project_clip.fragment SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_atlas_project_passthrough.vertex SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_image_peel.fragment SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_line_connection.vertex SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_line_connection.geometry SRC) -data_to_c_simple(engines/lanpr/shaders/lanpr_line_connection.fragment SRC) -data_to_c_simple(engines/lanpr/shader
[Bf-blender-cvs] [3f7d07ac971] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: 3f7d07ac971088efc5ce51c586f1940e6d12ded5 Author: Nick Wu Date: Tue Jul 24 10:12:03 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB3f7d07ac971088efc5ce51c586f1940e6d12ded5 Merge remote-tracking branch 'remotes/origin/blender2.8' 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] [1ddd3d60bff] soc-2018-npr: Chain support line types and levels. Still bugs in chaining, hard to find, but results good enough in most of the conditions.
Commit: 1ddd3d60bff06729f3bc08544ab8a9392db5ca12 Author: Nick Wu Date: Mon Jul 23 17:57:34 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB1ddd3d60bff06729f3bc08544ab8a9392db5ca12 Chain support line types and levels. Still bugs in chaining, hard to find, but results good enough in most of the conditions. === 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_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_software_line_width.geometry M source/blender/draw/engines/lanpr/shaders/lanpr_software_scale_compensate.vertex === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 702c22e1132..1b070a54002 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -424,7 +424,7 @@ typedef struct LANPR_RenderLineSegment { nListItem Item; //real Begin, End; // 0->At[L] 1->At[R] real at; - u8bit OccludeLevel;//after + u8bit OcclusionLevel;//after }LANPR_RenderLineSegment; typedef struct LANPR_RenderVert { @@ -474,7 +474,7 @@ typedef struct LANPR_RenderLineChainItem { nListItem Item; float pos[3]; // need z value for fading charLineType; // style of [1] style of [2] - charOccludeLevel; // [1]--->[2]>[3]-- + charOcclusionLevel; // [1]--->[2]>[3]-- }LANPR_RenderLineChainItem; typedef struct LANPR_BoundingArea { diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index d60c75bd11b..fbbea5b5578 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -85,9 +85,10 @@ LANPR_RenderLineChainItem* lanpr_append_render_line_chain_point(LANPR_RenderBuff rlci->pos[0] = x; rlci->pos[1] = y; rlci->LineType = type_EDGE_FLAG_ALL_TYPE; + rlci->OcclusionLevel = level; lstAppendItem(>Chain,rlci); - //printf("a %f %f\n", x, y); +//printf("a %f,%f %d\n", x, y, level); return rlci; } @@ -99,9 +100,10 @@ LANPR_RenderLineChainItem* lanpr_push_render_line_chain_point(LANPR_RenderBuffer rlci->pos[0] = x; rlci->pos[1] = y; rlci->LineType = type_EDGE_FLAG_ALL_TYPE; + rlci->OcclusionLevel = level; lstPushItem(>Chain,rlci); - //printf("p %f %f\n", x, y); + //printf("p %f,%f %d\n", x, y, level); return rlci; } @@ -117,7 +119,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_ for(rlci = from->Item.pNext; rlci!= to; rlci=next_rlci){ next_rlci = rlci->Item.pNext; -if(next_rlci && (next_rlci->OccludeLevel!= rlci->OccludeLevel || next_rlci->LineType!= rlci->LineType)) continue; +if(next_rlci && (next_rlci->OcclusionLevel!= rlci->OcclusionLevel || next_rlci->LineType!= rlci->LineType)) continue; float dist = dist_to_line_segment_v2(rlci->pos, from->pos, to->pos); if (dist>dist_threshold && dist>max_dist) { max_dist = dist; max_rlci = rlci; } @@ -128,7 +130,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_ if (from->Item.pNext == to) return; for (rlci = from->Item.pNext; rlci != to; rlci = next_rlci) { next_rlci = rlci->Item.pNext; - if (next_rlci && (next_rlci->OccludeLevel != rlci->OccludeLevel || next_rlci->LineType != rlci->LineType)) continue; + if (next_rlci && (next_rlci->OcclusionLevel != rlci->OcclusionLevel || next_rlci->LineType != rlci->LineType)) continue; lstRemoveItem(>Chain, (void*)rlci); } }else { @@ -140,6 +142,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_threshold){ LANPR_RenderLineChain* rlc; + LANPR_RenderLineChainItem* rlci; LANPR_RenderLine* rl; LANPR_BoundingArea* ba; LANPR_RenderLineSegment* rls; @@ -159,31 +162,32 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh // step 1: grow left ba = lanpr_GetPointBoundingArea(rb,rl->L->FrameBufferCoord[0], rl
[Bf-blender-cvs] [e406c678424] soc-2018-npr: Provide a switch to enable chaining or not.
Commit: e406c67842479a78b8904671a8e9729fc8a505c7 Author: Nick Wu Date: Mon Jul 23 22:33:59 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBe406c67842479a78b8904671a8e9729fc8a505c7 Provide a switch to enable chaining or not. === M release/scripts/startup/bl_ui/properties_scene.py M source/blender/draw/CMakeLists.txt M source/blender/draw/engines/lanpr/lanpr_all.h M source/blender/draw/engines/lanpr/lanpr_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c A source/blender/draw/engines/lanpr/shaders/lanpr_software_chain.geometry M source/blender/draw/engines/lanpr/shaders/lanpr_software_line_width.geometry 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_scene.py b/release/scripts/startup/bl_ui/properties_scene.py index d8cc00d7afd..a95ed107725 100644 --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@ -618,10 +618,11 @@ class SCENE_PT_lanpr(SceneButtonsPanel, Panel): if lanpr.master_mode == "DPIX": layout.prop(lanpr, "reloaded") -rows = 4 if lanpr.master_mode == "SOFTWARE": layout.label(text="Enable On Demand:") -layout.prop(lanpr,"calculate_intersections", toggle = True, text = "Enable Intersection Lines") +row = layout.row() +row.prop(lanpr,"calculate_intersections", text = "Intersection Lines") +row.prop(lanpr,"enable_chaining", text = "Chaining (SLOW!)") layout.label(text="RUN:") layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') layout.label(text="Layer Composition:") diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index a8c099dcdae..1ed2b724f7a 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -252,6 +252,8 @@ data_to_c_simple(engines/lanpr/shaders/lanpr_snake_edge.fragment SRC) data_to_c_simple(engines/lanpr/shaders/lanpr_snake_multichannel.fragment SRC) data_to_c_simple(engines/lanpr/shaders/lanpr_software_line_width.geometry SRC) data_to_c_simple(engines/lanpr/shaders/lanpr_software_scale_compensate.vertex SRC) +data_to_c_simple(engines/lanpr/shaders/lanpr_software_chain.geometry SRC) + data_to_c_simple(modes/shaders/common_globals_lib.glsl SRC) data_to_c_simple(modes/shaders/common_hair_lib.glsl SRC) diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 1b070a54002..b9e5c9d3e30 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -64,6 +64,7 @@ typedef struct LANPROneTimeInit { /* Software */ GPUShader *software_shader; + GPUShader *software_chaining_shader; void *ved; diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c index c7248182520..3c48ec0fae8 100644 --- a/source/blender/draw/engines/lanpr/lanpr_engine.c +++ b/source/blender/draw/engines/lanpr/lanpr_engine.c @@ -36,6 +36,7 @@ extern char datatoc_lanpr_line_connection_vertex[]; extern char datatoc_lanpr_line_connection_fragment[]; extern char datatoc_lanpr_line_connection_geometry[]; extern char datatoc_lanpr_software_line_width_geometry[]; +extern char datatoc_lanpr_software_chain_geometry[]; extern char datatoc_lanpr_atlas_project_passthrough_vertex[]; extern char datatoc_lanpr_atlas_preview_fragment[]; extern char datatoc_lanpr_software_scale_compensate_vertex[]; @@ -177,6 +178,15 @@ static void lanpr_engine_init(void *ved){ NULL, NULL); } + if (!OneTime.software_chaining_shader) { + OneTime.software_chaining_shader = + GPU_shader_create( + datatoc_lanpr_software_scale_compensate_vertex, + datatoc_lanpr_atlas_preview_fragment, + datatoc_lanpr_software_chain_geometry, + NULL, NULL); + } + GPU_framebuffer_ensure_config(>software_ms, { GPU_ATTACHMENT_TEXTURE(txl->ms_resolve_depth), GPU_ATTACHMENT_TEXTURE(txl->ms_resolve_color), @@ -349,23 +359,6 @@ static void lanpr_cache_init(void *vedata){ } elif(lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE) { ; - /*LANPR_LineLayer *ll; -
[Bf-blender-cvs] [9f344c6b887] soc-2018-npr: Merge and changed GWN APIs into GPU ones.
Commit: 9f344c6b887306b42156279deffb5112f88757d1 Author: Nick Wu Date: Mon Jul 23 11:34:30 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB9f344c6b887306b42156279deffb5112f88757d1 Merge and changed GWN APIs into GPU ones. === 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/intern/draw_manager.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index 158a9057ef3..702c22e1132 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -215,8 +215,8 @@ typedef struct LANPR_PrivateData { unsigned i_buf; unsigned l_buf; - Gwn_VertFormat snake_gwn_format; - Gwn_Batch *snake_batch; + GPUVertFormat snake_gwn_format; + GPUBatch *snake_batch; ListBase dpix_batch_list; @@ -228,8 +228,8 @@ typedef struct LANPR_StorageList { typedef struct LANPR_BatchItem { Link Item; - Gwn_Batch *dpix_transform_batch; - Gwn_Batch *dpix_preview_batch; + GPUBatch *dpix_transform_batch; + GPUBatch *dpix_preview_batch; Object *ob; } LANPR_BatchItem; @@ -308,8 +308,8 @@ typedef struct LANPR_RenderBuffer { nListHandle IntersectingVertexBuffer; - struct Gwn_Batch *DPIXIntersectionTransformBatch; - struct Gwn_Batch *DPIXIntersectionBatch; + struct GPUBatch *DPIXIntersectionTransformBatch; + struct GPUBatch *DPIXIntersectionBatch; /* use own-implemented one */ nStaticMemoryPool RenderDataPool; @@ -348,7 +348,7 @@ typedef struct LANPR_RenderBuffer { nListHandle EdgeMarks; nListHandle Chains; - Gwn_Batch* ChainDrawBatch; + GPUBatch* ChainDrawBatch; DRWShadingGroup* ChainShgrp; SpinLock csInfo; diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index 758493fb1b2..d60c75bd11b 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -279,16 +279,16 @@ void lanpr_ChainGenerateDrawCommand(LANPR_RenderBuffer *rb){ float* lengths; float length_target[2]; -static Gwn_VertFormat format = { 0 }; +static GPUVertFormat format = { 0 }; static struct { uint pos, offset, type, level; } attr_id; if (format.attr_len == 0) { - attr_id.pos = GWN_vertformat_attr_add(, "pos", GWN_COMP_F32, 2, GWN_FETCH_FLOAT); -attr_id.offset = GWN_vertformat_attr_add(, "uvs", GWN_COMP_F32, 2, GWN_FETCH_FLOAT); - attr_id.type = GWN_vertformat_attr_add(, "type", GWN_COMP_I32, 1, GWN_FETCH_FLOAT); - attr_id.level = GWN_vertformat_attr_add(, "level", GWN_COMP_I32, 1, GWN_FETCH_INT); + attr_id.pos = GPU_vertformat_attr_add(, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); +attr_id.offset = GPU_vertformat_attr_add(, "uvs", GPU_COMP_F32, 2, GPU_FETCH_FLOAT); + attr_id.type = GPU_vertformat_attr_add(, "type", GPU_COMP_I32, 1, GPU_FETCH_FLOAT); + attr_id.level = GPU_vertformat_attr_add(, "level", GPU_COMP_I32, 1, GPU_FETCH_INT); } - Gwn_VertBuf *vbo = GWN_vertbuf_create_with_format(); + GPUVertBuf *vbo = GPU_vertbuf_create_with_format(); for(rlc = rb->Chains.pFirst; rlc;rlc=rlc->Item.pNext){ int count = lanpr_CountChain(rlc); @@ -296,12 +296,12 @@ void lanpr_ChainGenerateDrawCommand(LANPR_RenderBuffer *rb){ vert_count += count; } -GWN_vertbuf_data_alloc(vbo, vert_count+1); // serve as end point's adj. +GPU_vertbuf_data_alloc(vbo, vert_count+1); // serve as end point's adj. lengths = MEM_callocN(sizeof(float)*vert_count, "chain lengths"); -Gwn_IndexBufBuilder elb; - GWN_indexbuf_init_ex(, GWN_PRIM_LINES_ADJ, vert_count*4, vert_count, true);// elem count will not exceed vert_count +GPUIndexBufBuilder elb; + GPU_indexbuf_init_ex(, GPU_PRIM_LINES_ADJ, vert_count*4, vert_count, true);// elem count will not exceed vert_count for(rlc = rb->Chains.pFirst; rlc; rlc=rlc->Item.pNext){ @@ -312,25 +312,25 @@ void lanpr_ChainGenerateDrawCommand(LANPR_RenderBuffer *rb){ length_target[0] = lengths[i]; length_target[1] = total_length - lengths[i]; -GWN_vertbuf_attr_set(vb
[Bf-blender-cvs] [aa6563d3a9b] soc-2018-npr: Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr
Commit: aa6563d3a9bd46fd170b6ae493d8db885d2422b7 Author: Nick Wu Date: Mon Jul 23 10:55:48 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBaa6563d3a9bd46fd170b6ae493d8db885d2422b7 Merge remote-tracking branch 'remotes/origin/blender2.8' into soc-2018-npr # Conflicts: # release/scripts/startup/bl_ui/space_view3d.py # source/blender/draw/intern/draw_manager.c === === diff --cc release/scripts/startup/bl_ui/properties_scene.py index f34c0897457,38bfc6ad294..d8cc00d7afd --- a/release/scripts/startup/bl_ui/properties_scene.py +++ b/release/scripts/startup/bl_ui/properties_scene.py @@@ -481,315 -568,8 +568,315 @@@ class SCENE_PT_simplify_render(SceneBut col.prop(rd, "simplify_child_particles_render", text="Max Child Particles") +class SCENE_PT_viewport_display(SceneButtonsPanel, Panel): +bl_label = "Viewport Display" +bl_options = {'DEFAULT_CLOSED'} + +@classmethod +def poll(cls, context): +return True + +def draw(self, context): +layout = self.layout +layout.use_property_split = True +scene = context.scene +col = layout.column() +col.prop(scene.display, "light_direction") +col.prop(scene.display, "shadow_shift") + +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(percentage=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) + +class SCENE_PT_lanpr(SceneButtonsPanel, Panel): +COMPAT_ENGINES = {'BLENDER_CLAY'} +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 + +layout.prop(lanpr, "master_mode", expand=True) + +if lanpr.master_mode == "DPIX" or lanpr.master_mode == "SOFTWARE": +if lanpr.master_mode == "DPIX": +layout.prop(lanpr, "reloaded") + +rows = 4 +if lanpr.master_mode == "SOFTWARE": +layout.label(text="Enable On Demand:") +layout.prop(lanpr,"calculate_intersections", toggle = True, text = "Enable Intersection Lines") +layout.label(text="RUN:") +layout.operator("scene.lanpr_calculate", icon='RENDER_STILL') +layout.label(text="Layer Composition:") +layout.template_list("LANPR_linesets", "", lanpr, "layers", lanpr.layers, "active_layer_index", rows=rows) +if active_layer: +split = layout.split() +col = split.column() +col.operator("scene.lanpr_add_line_layer", icon="ZOOMIN") +col.operator("scene.lanpr_delete_line_layer", icon="ZOOMOUT") +col = split.column() +col.operator("scene.lanpr_move_line_layer", icon="TRIA_UP").direction = "UP" +col.operator("scene.lanpr_move_line_layer", icon="TRIA_DOWN").direction = "DOWN" +layout.operator("scene.lanpr_rebuild_all_commands") +else: +layout.operator("scene.lanpr_add_line_layer") +elif not lanpr.layers.active_layer: +layout.operator("scene.lanpr_add_line_layer") + +else: +layout.label(text="Vectorization:") +layout.prop(lanpr, "enable_vector_trace", expand = True) + +#col = layout.column() +#col.label(text="Enable:") +#row = col.row(align=True) +#row.prop(lanpr, "enable_edge_mark", text="Mark", toggle=True) +#row.prop(lanpr, "enable_material_seperate", text="Material", toggle=True) + + +class SCENE_PT_lanpr_l
[Bf-blender-cvs] [67fa286f115] soc-2018-npr: Fix render triangle size increment error.
Commit: 67fa286f115e0a38736f0582e4c7e995f307a564 Author: Nick Wu Date: Fri Jul 20 23:27:28 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB67fa286f115e0a38736f0582e4c7e995f307a564 Fix render triangle size increment error. === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 297414febc1..b3e3b752919 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -423,7 +423,7 @@ void lanpr_AddTriangles(LANPR_RenderBuffer *rb) { lim = reln->ElementCount; for (i = 0; i < lim; i++) { if (rt->CullStatus) { - rt++; continue; + (void *)(((BYTE *)rt) + rb->TriangleSize); continue; } if (lanpr_GetTriangleBoundingAreas(rb, rt, , , , )) { for (co = x1; co <= x2; co++) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [efe7257a203] soc-2018-npr: Fix detail reducing bugs
Commit: efe7257a203fddc43d6e0781f8f4248900602438 Author: Nick Wu Date: Fri Jul 20 22:14:02 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBefe7257a203fddc43d6e0781f8f4248900602438 Fix detail reducing bugs === 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 834a458eb98..b09a16ffe73 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -128,6 +128,7 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_ if (from->Item.pNext == to) return; for (rlci = from->Item.pNext; rlci != to; rlci = next_rlci) { next_rlci = rlci->Item.pNext; + if (next_rlci && (next_rlci->OccludeLevel != rlci->OccludeLevel || next_rlci->LineType != rlci->LineType)) continue; lstRemoveItem(>Chain, (void*)rlci); } }else { @@ -237,7 +238,7 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh //} //printf("\n"); -//lanpr_reduce_render_line_chain_recursive(rlc,rlc->Chain.pFirst, rlc->Chain.pLast, dist_threshold); +lanpr_reduce_render_line_chain_recursive(rlc,rlc->Chain.pFirst, rlc->Chain.pLast, dist_threshold); } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [227c2598733] soc-2018-npr: Fix fileread error again.
Commit: 227c2598733ee4c0f32e7a2310881ecf7e388d0c Author: Nick Wu Date: Fri Jul 20 22:41:39 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB227c2598733ee4c0f32e7a2310881ecf7e388d0c Fix fileread error again. === M source/blender/blenloader/intern/readfile.c === diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 4d6c1f9392b..d83417d1cfb 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6398,6 +6398,8 @@ static void direct_link_scene(FileData *fd, Scene *sce) } /* LANPR things */ + sce->lanpr.active_layer = newdataadr(fd, sce->lanpr.active_layer); + sce->lanpr.render_buffer = NULL; link_list(fd, >lanpr.line_layers); for (LANPR_LineLayer *ll = sce->lanpr.line_layers.first; ll; ll = ll->next) { link_list(fd, >components); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b3cea139a8a] soc-2018-npr: Fix taper on segment_count==1 situation
Commit: b3cea139a8aee0ebdd9cce44f08ac71f1557b227 Author: Nick Wu Date: Fri Jul 20 22:26:32 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBb3cea139a8aee0ebdd9cce44f08ac71f1557b227 Fix taper on segment_count==1 situation === 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 b09a16ffe73..758493fb1b2 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -303,11 +303,7 @@ void lanpr_ChainGenerateDrawCommand(LANPR_RenderBuffer *rb){ Gwn_IndexBufBuilder elb; GWN_indexbuf_init_ex(, GWN_PRIM_LINES_ADJ, vert_count*4, vert_count, true);// elem count will not exceed vert_count - int debc = 0; - for(rlc = rb->Chains.pFirst; rlc; rlc=rlc->Item.pNext){ - //if (debc == 1) break; - debc++; total_length = lanpr_ComputeChainLength(rlc, lengths, i); @@ -319,7 +315,14 @@ void lanpr_ChainGenerateDrawCommand(LANPR_RenderBuffer *rb){ GWN_vertbuf_attr_set(vbo, attr_id.pos, i, rlci->pos); GWN_vertbuf_attr_set(vbo, attr_id.offset, i, length_target); - if (rlci == rlc->Chain.pLast) { i++; continue; } + if (rlci == rlc->Chain.pLast) { + if (rlci->Item.pPrev == rlc->Chain.pFirst) { + length_target[1] = total_length; + GWN_vertbuf_attr_set(vbo, attr_id.offset, i, length_target); + } + i++; + continue; + } if (rlci == rlc->Chain.pFirst) { if (rlci->Item.pNext == rlc->Chain.pLast) GWN_indexbuf_add_line_adj_verts(, vert_count, i, i + 1, vert_count); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [b421eaa36d8] soc-2018-npr: Chain first level preview ok. Simplification have bugs.
Commit: b421eaa36d88d38988165176fe07a85b91edb7cd Author: Nick Wu Date: Fri Jul 20 21:06:36 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBb421eaa36d88d38988165176fe07a85b91edb7cd Chain first level preview ok. Simplification have bugs. === 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_engine.c M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/draw/engines/lanpr/shaders/lanpr_software_line_width.geometry M source/blender/draw/engines/lanpr/shaders/lanpr_software_scale_compensate.vertex M source/blender/makesdna/DNA_lanpr_types.h === diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h index d5a24d758e6..158a9057ef3 100644 --- a/source/blender/draw/engines/lanpr/lanpr_all.h +++ b/source/blender/draw/engines/lanpr/lanpr_all.h @@ -467,11 +467,12 @@ typedef struct LANPR_RenderLineChain { nListItem Item; nListHandle Chain; //int SegmentCount; // we count before draw cmd. + float Length; // calculated before draw cmd. }LANPR_RenderLineChain; typedef struct LANPR_RenderLineChainItem { nListItem Item; - float pos[2]; + float pos[3]; // need z value for fading charLineType; // style of [1] style of [2] charOccludeLevel; // [1]--->[2]>[3]-- }LANPR_RenderLineChainItem; diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index c592c373cc1..834a458eb98 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -87,6 +87,8 @@ LANPR_RenderLineChainItem* lanpr_append_render_line_chain_point(LANPR_RenderBuff rlci->LineType = type_EDGE_FLAG_ALL_TYPE; lstAppendItem(>Chain,rlci); + //printf("a %f %f\n", x, y); + return rlci; } @@ -99,6 +101,8 @@ LANPR_RenderLineChainItem* lanpr_push_render_line_chain_point(LANPR_RenderBuffer rlci->LineType = type_EDGE_FLAG_ALL_TYPE; lstPushItem(>Chain,rlci); + //printf("p %f %f\n", x, y); + return rlci; } @@ -155,7 +159,7 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh ba = lanpr_GetPointBoundingArea(rb,rl->L->FrameBufferCoord[0], rl->L->FrameBufferCoord[1]); new_rv = rl->L; lanpr_push_render_line_chain_point(rb,rlc,new_rv->FrameBufferCoord[0],new_rv->FrameBufferCoord[1],rl->Flags,0); -while(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv,_rv)){ +while(ba &&(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv,_rv))){ new_rl->Flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; int last_occlude; @@ -198,7 +202,7 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh new_rv = rl->R; // below already done in step 2 // lanpr_push_render_line_chain_point(rb,rlc,new_rv->FrameBufferCoord[0],new_rv->FrameBufferCoord[1],rl->Flags,0); -while(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv,_rv)){ +while(ba && (new_rl = lanpr_GetConnectedRenderLine(ba,new_rv,_rv))){ new_rl->Flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; int last_occlude; @@ -226,11 +230,18 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh ba = lanpr_GetPointBoundingArea(rb, new_rv->FrameBufferCoord[0], new_rv->FrameBufferCoord[1]); } + //LANPR_RenderLineChainItem* rlci; + //printf("line:\n"); + //for (rlci = rlc->Chain.pFirst; rlci; rlci = rlci->Item.pNext) { + // printf(" %f %f\n", rlci->pos[0],rlci->pos[1]); + //} + //printf("\n"); + //lanpr_reduce_render_line_chain_recursive(rlc,rlc->Chain.pFirst, rlc->Chain.pLast, dist_threshold); } } -int lanpr_CountChainVertices(LANPR_RenderLineChain* rlc){ +int lanpr_CountChain(LANPR_RenderLineChain* rlc){ LANPR_RenderLineChainItem* rlci; int Count = 0; for (rlci = rlc->Chain.pFirst; rlci; rlci = rlci->Item.pNext) { @@ -239,19 +250,39 @@ int lanpr_CountChainVertices(LANPR_RenderLineChain* rlc){ return Count; } +float lanpr_ComputeChainLength(LANPR_RenderLineChain* rlc, float* lengths, int begin_index) { + LANPR_RenderLineChainItem* rlci; + int i=0; + float offset_accum = 0; + float dist; + float last_p
[Bf-blender-cvs] [aceecd17499] soc-2018-npr: Intersection chain now ok. (occlude level debug wait until tomorrow)
Commit: aceecd17499c854f34689e65ccd322e19e54055e Author: Nick Wu Date: Thu Jul 19 23:44:30 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rBaceecd17499c854f34689e65ccd322e19e54055e Intersection chain now ok. (occlude level debug wait until tomorrow) === M source/blender/draw/engines/lanpr/lanpr_chain.c 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_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c index dd19ee80204..c592c373cc1 100644 --- a/source/blender/draw/engines/lanpr/lanpr_chain.c +++ b/source/blender/draw/engines/lanpr/lanpr_chain.c @@ -26,25 +26,39 @@ #include -int lanpr_GetLineBoundingAreas(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, int *RowBegin, int *RowEnd, int *ColBegin, int *ColEnd) ; -LANPR_BoundingArea* lanpr_GetPointBoundingArea(LANPR_RenderBuffer *rb, real x, real y) ; +int lanpr_GetLineBoundingAreas(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, int *RowBegin, int *RowEnd, int *ColBegin, int *ColEnd); +LANPR_BoundingArea* lanpr_GetPointBoundingArea(LANPR_RenderBuffer *rb, real x, real y); -LANPR_RenderLine* lanpr_GetConnectedRenderLine(LANPR_BoundingArea* ba, LANPR_RenderVert* rv){ -nListItemPointer* lip; -LANPR_RenderLine* nrl; -real cosine; +#define LANPR_OTHER_RV(rl,rv) ((rv) == (rl)->L?(rl)->R:(rl)->L) + +LANPR_RenderLine* lanpr_GetConnectedRenderLine(LANPR_BoundingArea* ba, LANPR_RenderVert* rv, LANPR_RenderVert** new_rv) { + nListItemPointer* lip; + LANPR_RenderLine* nrl; + real cosine; -for(lip = ba->LinkedLines.pFirst; lip; lip=lip->pNext){ -nrl = lip->p; + for (lip = ba->LinkedLines.pFirst; lip; lip = lip->pNext) { + nrl = lip->p; -if((!(nrl->Flags_EDGE_FLAG_ALL_TYPE)) || (nrl->Flags & LANPR_EDGE_FLAG_CHAIN_PICKED)) continue; + if ((!(nrl->Flags_EDGE_FLAG_ALL_TYPE)) || (nrl->Flags & LANPR_EDGE_FLAG_CHAIN_PICKED)) continue; -// always chain connected lines for now. -// simplification will take care of the sharp points. -// if(cosine whatever) continue; + // always chain connected lines for now. + // simplification will take care of the sharp points. + // if(cosine whatever) continue; -if(rv != nrl->L && rv != nrl->R) continue; + if (rv != nrl->L && rv != nrl->R) { + if (nrl->Flags_EDGE_FLAG_INTERSECTION) { + if (rv->FrameBufferCoord[0] == nrl->L->FrameBufferCoord[0] && rv->FrameBufferCoord[1] == nrl->L->FrameBufferCoord[1]) { + *new_rv = LANPR_OTHER_RV(nrl, nrl->L); + return nrl; + }elif(rv->FrameBufferCoord[0] == nrl->R->FrameBufferCoord[0] && rv->FrameBufferCoord[1] == nrl->R->FrameBufferCoord[1]){ + *new_rv = LANPR_OTHER_RV(nrl, nrl->R); + return nrl; + } + } + continue; + } + *new_rv = LANPR_OTHER_RV(nrl, rv); return nrl; } @@ -119,9 +133,6 @@ void lanpr_reduce_render_line_chain_recursive(LANPR_RenderLineChain* rlc, LANPR_ } -#define LANPR_OTHER_RV(rl,rv) ((rv) == (rl)->L?(rl)->R:(rl)->L) - - void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_threshold){ LANPR_RenderLineChain* rlc; LANPR_RenderLine* rl; @@ -144,9 +155,8 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh ba = lanpr_GetPointBoundingArea(rb,rl->L->FrameBufferCoord[0], rl->L->FrameBufferCoord[1]); new_rv = rl->L; lanpr_push_render_line_chain_point(rb,rlc,new_rv->FrameBufferCoord[0],new_rv->FrameBufferCoord[1],rl->Flags,0); -while(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv)){ +while(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv,_rv)){ new_rl->Flags |= LANPR_EDGE_FLAG_CHAIN_PICKED; -new_rv = LANPR_OTHER_RV(new_rl,new_rv); int last_occlude; @@ -188,9 +198,8 @@ void lanpr_ChainFeatureLines_NO_THREAD(LANPR_RenderBuffer *rb, float dist_thresh new_rv = rl->R; // below already done in step 2 // lanpr_push_render_line_chain_point(rb,rlc,new_rv->FrameBufferCoord[0],new_rv->FrameBufferCoord[1],rl->Flags,0); -while(new_rl = lanpr_GetConnectedRenderLine(ba,new_rv)){ +while(new_rl = lanpr_
[Bf-blender-cvs] [8bb97b6318f] soc-2018-npr: Fixed not updating normal error. now all lines properly calculated.
Commit: 8bb97b6318f86da86a6e0f99d9356cdb24bf1db8 Author: Nick Wu Date: Thu Jul 19 15:50:50 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB8bb97b6318f86da86a6e0f99d9356cdb24bf1db8 Fixed not updating normal error. now all lines properly calculated. === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 6c92a610304..1d7c1b9e1ac 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -618,6 +618,9 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real break; } } + if (!BeginSegment && TNS_DOUBLE_CLOSE_ENOUGH(1, End)) { + untouched = 1; + } for (rls = BeginSegment; rls; rls = rls->Item.pNext) { if (TNS_DOUBLE_CLOSE_ENOUGH(rls->at, End)) { EndSegment = rls; @@ -639,7 +642,10 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real } if (!ns) ns = memStaticAquireThread(>RenderDataPool, sizeof(LANPR_RenderLineSegment)); - if (!ns2) ns2 = memStaticAquireThread(>RenderDataPool, sizeof(LANPR_RenderLineSegment)); + if (!ns2) { + if (untouched) { ns2 = ns; EndSegment = ns2; } + else ns2 = memStaticAquireThread(>RenderDataPool, sizeof(LANPR_RenderLineSegment)); + } if (BeginSegment) { if (BeginSegment != ns) { @@ -1590,7 +1596,9 @@ void lanpr_MakeRenderGeometryBuffersObject(Object *o, real *MVMat, real *MVPMat, bm = BM_mesh_create(, &((struct BMeshCreateParams) {.use_toolflags = true, })); BM_mesh_bm_from_me(bm, o->data, &((struct BMeshFromMeshParams) {.calc_face_normal = true, })); + BM_mesh_elem_hflag_disable_all(bm, BM_FACE | BM_EDGE, BM_ELEM_TAG, false); BM_mesh_triangulate(bm, MOD_TRIANGULATE_QUAD_BEAUTY, MOD_TRIANGULATE_NGON_BEAUTY, false, NULL, NULL, NULL); + BM_mesh_normals_update(bm); BM_mesh_elem_table_ensure(bm, BM_VERT | BM_EDGE | BM_FACE); BM_mesh_elem_index_ensure(bm, BM_VERT | BM_EDGE | BM_FACE); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] [4719b8f5613] soc-2018-npr: Fix occlusion error
Commit: 4719b8f561357d91b33a29f38a8d2a78048cd99b Author: Nick Wu Date: Thu Jul 19 13:51:01 2018 +0800 Branches: soc-2018-npr https://developer.blender.org/rB4719b8f561357d91b33a29f38a8d2a78048cd99b Fix occlusion error === M source/blender/draw/engines/lanpr/lanpr_ops.c === diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index 653b41205b2..6c92a610304 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -587,6 +587,7 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real LANPR_RenderLineSegment *rls = rl->Segments.pFirst, *irls; LANPR_RenderLineSegment *BeginSegment = 0, *EndSegment = 0; LANPR_RenderLineSegment *ns = 0, *ns2 = 0; + int untouched=0; if (TNS_DOUBLE_CLOSE_ENOUGH(Begin, End)) return; @@ -628,6 +629,7 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real if (!rls->Item.pNext && TNS_DOUBLE_CLOSE_ENOUGH(1, End)) { EndSegment = rls; ns2 = EndSegment; + untouched = 1; break; }elif (rls->at > End) { EndSegment = rls; @@ -661,7 +663,8 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real } ns->at = Begin; - if(!TNS_DOUBLE_CLOSE_ENOUGH(1, End)) ns2->at = End; + if(!untouched) ns2->at = End; + else ns2 = ns2->Item.pNext; for (rls = ns; rls && rls != ns2; rls = rls->Item.pNext) { rls->OccludeLevel++; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs