forked from bartvdbraak/blender
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
This commit is contained in:
parent
9000db3631
commit
17b113c784
@ -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()
|
||||
|
||||
|
@ -777,6 +777,7 @@ typedef struct OceanModifierData {
|
||||
int bakeend;
|
||||
|
||||
char cachepath[240]; // FILE_MAX
|
||||
char foamlayername[32];
|
||||
char cached;
|
||||
char geometry_mode;
|
||||
|
||||
|
@ -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", "");
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user