diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-11-20 18:16:41 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-11-20 18:16:41 +0400 |
commit | 17b113c784aa30cf7ea06f0970a4427620fef4dc (patch) | |
tree | 737dbb33a1ca3cec098a6e2bae0c27e3a36e2b28 | |
parent | 9000db36312cdc514f2ffd967148eef13ed2e67f (diff) |
Option to rename the vertex color data layer used by Ocean modifier for foam. The modifier outputs foam values to both textures and a (temporary) vertex data layer. This layer was unnamed before, which makes it impossible to access in shader nodes. Now the user can input a custom name in the modifier panel, then use that same name in a shader input node to access foam values.
http://www.pasteall.org/pic/21120
-rw-r--r-- | release/scripts/startup/bl_ui/properties_data_modifier.py | 11 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_modifier.c | 5 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_ocean.c | 3 |
4 files changed, 15 insertions, 5 deletions
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index e685de416ed..52b5ed5f36e 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -455,11 +455,14 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): layout.prop(md, "use_normals") + layout.prop(md, "use_foam") row = layout.row() - row.prop(md, "use_foam") - sub = row.row() - sub.active = md.use_foam - sub.prop(md, "foam_coverage", text="Coverage") + row.active = md.use_foam + col = row.column() + col.prop(md, "foam_coverage", text="Coverage") + col = row.column() + col.label("Foam Data Layer Name") + col.prop(md, "foam_layer_name", text="") layout.separator() diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index c009b9cc5fb..ed3d42a9da7 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -777,6 +777,7 @@ typedef struct OceanModifierData { int bakeend; char cachepath[240]; // FILE_MAX + char foamlayername[32]; char cached; char geometry_mode; diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index b95224e6703..6885000ce18 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -2993,6 +2993,11 @@ static void rna_def_modifier_ocean(BlenderRNA *brna) RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 0); RNA_def_property_update(prop, 0, NULL); + prop= RNA_def_property(srna, "foam_layer_name", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "foamlayername"); + RNA_def_property_ui_text(prop, "Foam Layer Name", "Name of the vertex color layer used for foam"); + RNA_def_property_update(prop, 0, "rna_Modifier_update"); + prop= RNA_def_property(srna, "choppiness", PROP_FLOAT, PROP_UNSIGNED); RNA_def_property_float_sdna(prop, NULL, "chop_amount"); RNA_def_property_ui_text(prop, "Choppiness", ""); diff --git a/source/blender/modifiers/intern/MOD_ocean.c b/source/blender/modifiers/intern/MOD_ocean.c index 55d121737c1..726c37811fb 100644 --- a/source/blender/modifiers/intern/MOD_ocean.c +++ b/source/blender/modifiers/intern/MOD_ocean.c @@ -147,6 +147,7 @@ static void initData(ModifierData *md) omd->bakeend = 250; omd->oceancache = NULL; omd->foam_fade = 0.98; + omd->foamlayername[0] = '\0'; /* layer name empty by default */ omd->ocean = BKE_add_ocean(); init_ocean_modifier(omd); @@ -441,7 +442,7 @@ static DerivedMesh *doOcean(ModifierData *md, Object *UNUSED(ob), if(cdlayer >= MAX_MCOL) return dm; - CustomData_add_layer(&dm->faceData, CD_MCOL, CD_CALLOC, NULL, num_faces); + CustomData_add_layer_named(&dm->faceData, CD_MCOL, CD_CALLOC, NULL, num_faces, omd->foamlayername); mc = dm->getFaceDataArray(dm, CD_MCOL); mv = dm->getVertArray(dm); |