Fur for Daze

Hair has dominated my thoughts over the last month or more. It has been a seemingly endless stream of information on different ways to represent hair, and all of the technological requirements to do so.

But finally the work on Suzy’s fur is done*. After doing more research, I discovered that the high triangle counts that I was worried about were due to the way that UE4 renders objects in passes. While I knew this to be the case already, what I didn’t think about are the consequences of that fact. The UV seams of a mesh contribute to the overall triangle/vertex count of an object. This is why I was seeing drastically different triangle numbers for Suzy. I was expecting to see the 60K triangle counts that are seen in any DCC package, as well as the information overlay in the UE4 editor while viewing the skeletal mesh. But, when rendering in an actual scene all of the multi-pass rendering overhead is accurately reported in the RHI stats.

With that explanation out of the way, we can move on to the results. Below are cropped images of both versions of Suzy. The first two are showing the results of the free gFur plug-in, with a brief description under each. The last two show the results of the new hair and fur system in Unreal.

Fig. 1) A front view of Suzy with the free gFur plug-in. The relatively low number of shells (16) for the close-up views leave some ‘stepping’ in the frill around her ears. But overall, the results are extremely good for the low-end option.
Fig. 2) A side view of Suzy shows off the free gFur plug-in and it’s ability to fairly accurately represent the flow of hair from the groom that was imported from Houdini. The ‘stepping’ around the ears, while tolerable, is the only area that shows a compromise in quality. We are very happy to have this result for our players to choose as the low-end option.
Fig. 3) Suzy sporting her fur in the new hair system in Unreal. The hairs that are part of what I have come to think of as her ear frill appear to be a bit wiry despite repeated efforts to make them slightly thinner. I have come to the conclusion that it is a combination of the hair color and the relatively low specular highlights that make it appear that way.
Fig. 4) Here we can see a side view of Suzy to better show off the highlighting and shadowing of the new hair system. What may be difficult so see is the addition of some random gray hairs throughout Suzy’s coat. This isn’t possible in the gFur system, but adds a nice, subtle effect.

While I am very happy with the results of the free gFur plug-in, there is a downside to using it in conjunction with the new Unreal hair system. UE4’s hair system allows the developer to provide a static mesh object to represent the hair cards to use with systems that can’t handle the hair system itself. Also, the new hair system appears to revert to the hair cards at certain LOD levels to save on system resources. But, the gFur system uses skeletal mesh objects as the fur emitter. This eliminates the possibility of passing the gFur asset to the hair system as an alternative. This is a shame too, because I believe that, at the proper distances, the transition between the new hair system and gFur (or its equivalent) would be nearly seamless. But without altering the engine code to accept and use the skeletal mesh, there isn’t much that can be done.

So in closing, these are the results that we will go with for this asset. Some of the limitations force a specific workflow onto us, but there isn’t much that can be done about that. The assets are, in my humble opinion, pretty good and should give us the visual fidelity that we are after. Now we are on to actually finishing the rigging and animating Suzy. Lets get her moving!

* If we have learned nothing else, it is that “You never know”.

Leave a Reply

Your email address will not be published. Required fields are marked *