View Full Version : FiberFX Density, Scale and Clump inconveniences or am I missing an option?

09-29-2008, 07:25 AM
If you have a 1x1m plane and a 2x2m plane, both with fiber Density set to 10%, they will be given the same amount of fibers, 1000! The 2x2m plane however covers an area that is 4 times as large! With the same amount of fibers on both, the actual density is much lower on the larger plane. Furthermore, with scale set to 100% on both planes, the fibers on the 2x2m plane will actually be about 4 times as long compared to the fibers on the 1x1m plane.

Not considering the misuse of the term "density", this is not a good implementation! It makes creating and using presets very inconvenient:

Consider that a artist on one project has to cover a landscape with grass. He uses FiberFX and manages to get it just right! The grass has the perfect height, the perfect density. It's looks nice and lush! The project is a success! Then comes along another project where a landscape needs to be covered with grass. The artist naturally loads the setting from the previous project. It looked so good last it should look just as good this time. But it doesn't! The grass is short and stubby! Not at all as lush as last time. What happened!? Did the saved settings get corrupted? No, the reason is simply that the surface area of the new landscape is smaller than the previous one.

See attached image. The same setting gives very different results only because the surface areas covered are not comparable in size.

Consider again the artist. This time he needs to cover a teddy in fur. But to save time (when doing test renders) he decides to start with just doing an ear. He figures if he gets the fur right on that part he can then copy the values onto all other parts. So he goes ahead and tweaks the values to perfection, as usual! That ear is looking so fuzzy and soft he is almost giggling, and he's not very ticklish at all! But when he copies the settings over to the other parts they don't look the same. The ears look as they should, but the rest looks like it belonged to a frakking wookie!? Again... the reason is that the surface areas are not comparable.

Similarly, fibers clump is based on the underlying polygons. I can acknowledge that this can be a very usefull and provide a good amount of control. I think we've seen some good examples of that already! But if you want a uniform fur across a character it can work against you, as any halfdecent mesh will have polygons that differ greatly in size.

See attached image. There are 3 separate planes. The leftmost is a single polygon, the middle 4 polygons, the rightmost 8 polygons.

Have I overlooked a setting maybe? Could these issues be solved by using guides (kinda tedious if all you want is uniform short fur)?

Either way, the way "Density" and "Scale" and "Clump" (and perhaps other attribute aswell) works by default is not the best if you want reusable presets nor if you start work on limited regions. These values should not be relative to the surface area they need to cover or size of polygons of the underlying mesh. They should be relative to a fixed area (1x1m?). This way the Density attribute would rightly correspond to fiber density rather than quantity. The Scale (renamed to Length) would correspond to the length of fibers in a common unit of length (meters or other). Clump could use another value (Clump Size!?) that could set the size of clumps or amount of fibers in each clump so it can be controlled independent of how the mesh is constructed. Imho this would make these attributes much less arbitrary and easier to control AND it would make the creation and use of presets viable.

But, as I acknowledged earlier I can appreciate how the way things work now can be very useful. So make it optional! (Ie. don't flame me for thinking out loud and having an opinion.) ;D

*Sorry for the chequered images.

09-29-2008, 08:03 AM
I completely agree. It would be ridiculous if we have to depend on the number/size of polygons and polyflow. Let's hope it's just a temporary limitation that will be fixed. Thanks for this thread.

09-29-2008, 08:06 AM
Yes, this has been driving me nuts for quite a while now, and the FFX implementation isn't even that old yet.

09-29-2008, 01:21 PM
I'm currently still trying to get decent looking grass (viewed from a distance) and this is exactly the thing I'm fighting at the moment.
I'm now trying a setup with cloned planes, so I can have a larger area of grass, without having to redo all the settings.

09-29-2008, 02:27 PM
It's a bit limited that FFX depends on the polys of the mesh, but at the same time it gives very much control. I don't want to miss this feature in terms of the other one, but I wouldn't mind having both options.

09-29-2008, 02:31 PM
OT. Shouldn't all those members with cat avatars have FFX equivelents by now? :)

09-29-2008, 04:08 PM
I'm currently still trying to get decent looking grass (viewed from a distance) and this is exactly the thing I'm fighting at the moment.
I'm now trying a setup with cloned planes, so I can have a larger area of grass, without having to redo all the settings.

I gave up on that, the fact you can't actually give fibers any real width (besides dumping out a complete mesh in modeler) makes this plugin rather useless (in its current incarnation) when ever you need anything closeup, or in a dynamic scene (as in a camera move that brings the subject with he fur applies closer to the camera)

In that regard Sasqutach is by far a the superior product.

09-29-2008, 06:08 PM
I also agree with evenflcw.

10-01-2008, 05:52 AM
Very happy so many responded and voiced the same concerns! (I'm not alone!)

It's good to be able to work with what you got. But while you work you think about the what-ifs and why-nots that could save you all the extra work fiddling about.

10-10-2008, 08:51 AM
I'm posting here just to show my agreement. I also would not mind to have both options available.
Why is it clumping to the side of the polygon and not the center, or any other position?

10-11-2008, 03:04 AM
I'm in on this too. It's a little frustrating that it is poly density Dependant.

10-11-2008, 07:01 AM
me to...

10-11-2008, 04:41 PM
Me too, I think for grass, Sasquatch does the job very fast. But I think Newtek now about this!

10-11-2008, 04:46 PM

Could this issue be solved by an Object Size parameter for X/Y/Z?

So, lets say a preset is made based on an sphere that is 1x1x1m and you apply it to an object that is roughly 32x16x100m... instead of tweaking each parameter to fit the new size, you simply set the Object Size parameter to the same size you have on the object, and FiberFX will then recaluclate all values to fit this new size?

Maybe I'm totaly in the forest with a sailingboat with this suggestion though. *lol* :)

10-11-2008, 07:03 PM
There might be a workaround that (if it actually worked) could work either for or against you.

The original post said that, "The same setting gives very different results only because the surface areas covered are not comparable in size."

At first, this seemed to be the case but actually when the area covered is identical but the object's surface area is different, I get different results as well.

For example, say you have a hairless chicken in Layer1 and a scarf that's going to be furry all by itself in layer 4.

You turn on FiberFX and by the magic of this implementation, it looks just right on the scarf almost from the start. With just a couple of adjustments, the fur follows the contours of the scarf, showing all the bends and creases in the model.

You're happy with it but the character is ready so you put everything in a single layer with the skelegons. (That is, now the chicken and the scarf are in the same layer) Even if you activate the fur on the scarf only, and set identical settings to what you had before, the fibers are now so much longer that the scarf looks completely smooth, without any contours at all. This, because the settings are affected by all the non-covered area of the rest of the chicken.

SO, where is the workaround?

If you put the scarf and the chicken together and activate FiberFX, the fibers will be too long. If you cut out the chicken and leave only the scarf, the fibers will still remain just as long.

Even if you deactivate the layer, activate it again, and set the settings back in, there will be no change; it will still be too long. You need to remove FiberFX from the filters and add it again so that the fiber size will be just right again.

That means that, in theory, if you put your original landscape in a layer and applied your FiberFX grass preset and then deleted that landscape and pasted the new one, FiberFX should not re-calculate the surface area and everything should look just like it did in the original. So, the preset would work as intended. (Or something completely unexpected could happen :P )

The downside is, or course, that if you activate one layer with some extra geometry, you will have to remove FiberFX and re-set-up every single object/layer with hair in order to recalculate that single layer.

I'm not making any sense, am I?

10-22-2008, 10:46 AM
Meant to post sooner.

Cageman, I think that is a good suggestion. But as always it depends on the implementation. Although still usable and useful, it would not be proper if NT added such a function with FiberFX Density and Scale working as they do currently. As this would still mean we'd have to adjust something to fit a grass lawn preset to a surfaces of different area sizes. It's less to adjust, but there should be nothing to adjust. Still I like the idea of a global adjustment.

Consider if Density and Length (former Scale) worked like this:

Density of 1% gives one fiber every 1 m^2
Density of 1000% gives one fiber every 1 mm^2

Length 1.0 m gives hairs 1 m long.
Length 0.001 m gives hairs 1 mm long.

With Item/Reference/Unit Scale set to 100% (default):

Density of 1000% gives one fiber every 1 mm^2
Length 0.1 m gives hairs 0.1 meter long.

With Item/Reference/Unit Scale set to 10% these values would internally be interpreted as:

Density of 1000% gives one fiber every 0.1 mm^2 (instead of 1mm^2).
Length 0.1 m gives hairs 1 centimeter long (instead of 0.1m).

The fibers would become shorter and the density higher. It would scale something like a grass lawn setting down to something closer to the fur on a rat. I think that could be pretty usefull too!

It does lead to a another desire (though). Once your happy with the grass preset turned into rat fur you'd probably want the Item/Reference/Unit Scale be reset to 100% for the fur preset, because having the fur scaled relative to grass really makes no sense and will make the detailed values (Density and Length) look off. So perhaps there should also be a "bake" or "record" button next to the Item/Reference/Unit Scale that would adjust the Density and Length (and any other value that apply) automatically and reset the Scale to 100%.

JGC, I read through your posts some days ago, I'm reluctant to do it again. :hey: I think I got my head around the third paragraph from the end though. Wouldn't Cagemans suggestion take care of this? (Imho turn the presumptive hack into a proper feature and interactive value; fitting a preset into onto another item).