[BUG-REPORT] Unreal 5.1.1. ROOT UV issue(on a large number of hairs and CV points)

Hi, everyone!

I’ve already written to the Ornatrix developers and they in turn passed it on to Epic Games, but I decided to create this thread so that everyone who renders hair with a lot of hair and CV-points - know that there is such a bug.

99% I’m sure it’s a bug in Unreal Rendering. As in the same Redshift - all rendered without any issues.

Even checked those Alembic that I export to Unreal. All the same - everything is fine.

In general, the bug is that if we use more than 1 million hairs and more than 10 points - ROOT UV is destroyed, the color becomes random and dull.

Video demonstration of the issue -

TIMING:

0:00 - So, to begin with, I will show you what the bug is in the Unreal Engine.
0:05 - In the project you will find several Groom files that I prepared for the test.
0:30 - For a start, we put 1 million and 10 CV-points into the scene.
0:35 - As you can see, the color is displayed correctly, as intended.
0:42 - But, if we upload 4 million and 10 CV points, we can see how the color has become duller, with some random on strands.
1:10 - Again we upload 4 million and 10 CV points and see that the color of the ROOT UV is broken.
1:19 - Load 1 million with Frizz modifier and ten CV points.We see that the color is saturated and correct.
1:27 - Now upload 4 million and 10 points with Frizz. With the Frizz modifier - you can now notice Random Color everywhere.
1:47 - So now let’s compare what happens. when we increase the number of CVs. We drag 1 million and 10 points and then 1 million with 30 CV. In the end, what we see is that the color gets duller and random strands reappear all over the carpet area.
2:15 - Now let’s upload 4 million 10 points and compare it to 4 million 30 points.
2:27 - As a result, on more CV points - we see that the color is almost gone.
2:40 - I think you have already understood that my task is to render 4 million and 30 points without losing color, it should not be lost.
2:48 - Now let’s talk about another thing I noticed. If we open the Asset - 4 million and 30 CV points and then do decimate - we see that the bug disappears. It turns out that there is no issue in the Asset itself - the issue is the rendering inside Unreal of a large amount of hair and CV-points.
3:11 - And now, of course, I’ll tell you how I exported from Maya and Ornatrix. It’s simple enough - I used the standard settings through the File-Export-Ornatrix Alembic menu.
3:34 - Before each export, increased the hair value from 1 million to 4 million. I exported with and without Detail = 30 points. Also turned Frizz on and off.

If you’ve encountered the same thing, please like and comment =)

Thank you and have a great day
Best regards,
Andrew.

2 Likes

Reply from Charles at Epic:

There are some limits in terms of max control points per curve, max control points per group and max curves per group. I recently started to surface these limitations during the importer, and the builder to make users aware of them( and handle them mostly by trimming what is not supported). The current limitation are as follow:

#define HAIR_MAX_NUM_POINT_PER_CURVE ((1u<<8)-1u)
#define HAIR_MAX_NUM_POINT_PER_GROUP ((1u<<24)-1u)
#define HAIR_MAX_NUM_CURVE_PER_GROUP ((1u<<22)-1u)

which translates into:

  • 255 control point per curve

  • 16 millions control point per group

  • 4 millions curves

Past these limitations, you might fall into some overflow behavior in previous code, which I believe what the user is observing.

__

It turns out that if we want to upload some object with a large amount - we need to break it into parts and observe the limits. Then there shouldn’t be any issues.

I ran into the same limitations in V-Ray a long time ago when I was exporting VRScene, so I split my dog’s fur into several pieces and then everything was okay.

I’m referring to this project - https://www.artstation.com/artwork/yb35w5

So if you want things to work - you just have to break the object into several parts and observe the limits.