Page MenuHome

Use A Higher Hair Segment Limit
Closed, ResolvedPublicDESIGN

Description

I'm always wondering why the hair segment cannot be set to 50+. Is that for performance conern?

Normally, segments up to 50 can be quite enough for most cases. However, when dealing with things like braids, the current limit can sometimes be quite a pain.

If there has to be a limit here for some reason, then a higher limit (like 100 to 120) will be more convenient imho.

Revisions and Commits

Related Objects

Event Timeline

As you said, it is enough for most cases.
This setting is here to set up basic settings of particle system.
When you encounter a particular case, you are free to increase to 120 segments in particle edit mode with the Rekey operator.

Of course, such amount of segments have a consequence on performance.
It is better to avoïd a too high limit for such setting.
It is better to keep it with a limit for newbies and to inform advanced user that they can go further in particle edit mode.

Aaron Carlisle (Blendify) lowered the priority of this task from 90 to Normal.

Here is a patch, I can commit if we agree that we should increase this limit.

1diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
2index 95dab13..3024ace 100644
3--- a/source/blender/makesrna/intern/rna_particle.c
4+++ b/source/blender/makesrna/intern/rna_particle.c
5@@ -2363,7 +2363,7 @@ static void rna_def_particle_settings(BlenderRNA *brna)
6 RNA_def_property_ui_text(prop, "Render", "How many steps paths are rendered with (power of 2)");
7
8 prop = RNA_def_property(srna, "hair_step", PROP_INT, PROP_NONE);
9- RNA_def_property_range(prop, 2, 50);
10+ RNA_def_property_range(prop, 2, 128);
11 RNA_def_property_ui_text(prop, "Segments", "Number of hair segments");
12 RNA_def_property_update(prop, 0, "rna_Particle_reset");

I really don't think this is the way to go about this. There is no point in slightly increasing the limit, as you can just as well find the new limit to be too low at some point in the future. I would be for keeping the 50 limit, but replacing it with a soft limit, that way, new users don't accidentally freeze their sims, but you are free to increase the the segments to whatever you want.

Here is a fix which uses a soft limit of 50 and a hard limit of 128:

1diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
2index 127c66a..ed1792c 100644
3--- a/source/blender/makesrna/intern/rna_particle.c
4+++ b/source/blender/makesrna/intern/rna_particle.c
5@@ -2363,7 +2363,8 @@ static void rna_def_particle_settings(BlenderRNA *brna)
6 RNA_def_property_ui_text(prop, "Render", "How many steps paths are rendered with (power of 2)");
7
8 prop = RNA_def_property(srna, "hair_step", PROP_INT, PROP_NONE);
9- RNA_def_property_range(prop, 2, 50);
10+ RNA_def_property_range(prop, 2, INT_MAX);
11+ RNA_def_property_ui_range(prop, 2, 50, 1, -1);
12 RNA_def_property_ui_text(prop, "Segments", "Number of hair segments");
13 RNA_def_property_update(prop, 0, "rna_Particle_reset");

Aaron Carlisle (Blendify) triaged this task as 50 priority.May 10 2017, 4:53 AM

Very nice solution, Aaron! ❤