[Bf-blender-cvs] [5ac143dbe8e] soc-2019-npr: Modifier: EdgeSplit modifier now follows LANPR "disable_edge_splits" as well.
YimingWu
noreply at git.blender.org
Mon Jul 1 09:36:19 CEST 2019
Commit: 5ac143dbe8ea75df0f6367846e49ea73b9bdcedf
Author: YimingWu
Date: Mon Jul 1 15:35:14 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB5ac143dbe8ea75df0f6367846e49ea73b9bdcedf
Modifier: EdgeSplit modifier now follows LANPR "disable_edge_splits" as well.
===================================================================
M release/scripts/startup/bl_ui/properties_render.py
M source/blender/draw/engines/lanpr/lanpr_access.c
M source/blender/draw/engines/lanpr/lanpr_access.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
M source/blender/modifiers/intern/MOD_edgesplit.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 254472b06c3..0f167b0263c 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -737,9 +737,10 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
if mode == "SOFTWARE":
row=layout.row(align=True)
- row.prop(lanpr,'auto_update',toggle=True,text='Auto')
+ row.prop(lanpr,'auto_update',toggle=True,text='Auto Update')
if not lanpr.auto_update:
row.operator("scene.lanpr_calculate", icon='RENDER_STILL', text='Update')
+ layout.prop(lanpr, "disable_edge_splits")
if mode == "DPIX" or mode == "SOFTWARE":
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c
index 59e60fec076..2bad8dcf99f 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -138,6 +138,10 @@ bool lanpr_dpix_shader_error()
return lanpr_share.dpix_shader_error;
}
+bool lanpr_disable_edge_splits(Scene* s){
+ return s->lanpr.disable_edge_splits;
+}
+
void lanpr_copy_data(Scene *from, Scene *to)
{
SceneLANPR *lanpr = &from->lanpr;
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h
index 556f07107e6..b892a13ffee 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -30,8 +30,12 @@ int lanpr_compute_feature_lines_internal(Depsgraph *depsgraph);
void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
-void lanpr_copy_data(Scene *from, Scene *to);
+bool lanpr_dpix_shader_error();
-void lanpr_free_everything(Scene *s);
+bool lanpr_disable_edge_splits(struct Scene* s);
+
+void lanpr_copy_data(struct Scene *from, struct Scene *to);
+
+void lanpr_free_everything(struct Scene *s);
#endif
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index b4494b3df64..b0cda544894 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1680,6 +1680,10 @@ typedef struct SceneLANPR {
int reloaded;
+ /* edge split modifier will cause problems in LANPR. */
+ int disable_edge_splits;
+ char _pad[4];
+
/* offline render */
ListBase line_layers;
struct LANPR_LineLayer *active_layer;
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 87cb6c13dd2..ecca0a51fd6 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7369,12 +7369,18 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
"Enable Chain Connection",
"Connect short chains in the image space into one longer chain");
+ /* should be read-only */
prop = RNA_def_property(srna, "shader_error", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_default(prop, 0);
RNA_def_property_boolean_funcs(prop, "rna_lanpr_shader_error_get", "");
RNA_def_property_ui_text(
prop, "DPIX Shader Error", "Can't compile DPIX transform shader on your GPU.");
+ prop = RNA_def_property(srna, "disable_edge_splits", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_default(prop, 0);
+ RNA_def_property_ui_text(
+ prop, "Disable Edge Splits", "Disable edge split modifiers to prevent errors in LANPR.");
+
prop = RNA_def_property(srna, "chaining_geometry_threshold", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_default(prop, 0.1f);
RNA_def_property_ui_text(prop,
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index 6565e0c7a96..d7509727972 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -41,6 +41,8 @@
#include "MOD_modifiertypes.h"
+#include "lanpr_access.h"
+
static Mesh *doEdgeSplit(Mesh *mesh, EdgeSplitModifierData *emd)
{
Mesh *result;
@@ -132,10 +134,15 @@ static bool isDisabled(const struct Scene *scene, struct ModifierData *md, bool
ModifierData* imd;
EdgeSplitModifierData *emd = (EdgeSplitModifierData *)md;
- for(imd = md->prev; imd; imd=imd->prev){
- if(imd->type == eModifierType_FeatureLine){
- lanpr_found = 1;
- break;
+ if(lanpr_disable_edge_splits(scene)){
+ lanpr_found = 1;
+ }
+ if(!lanpr_found){
+ for(imd = md->prev; imd; imd=imd->prev){
+ if(imd->type == eModifierType_FeatureLine){
+ lanpr_found = 1;
+ break;
+ }
}
}
if(!lanpr_found){
More information about the Bf-blender-cvs
mailing list