Fur efect for animation


I’m looking for some ideas about fur efect on dota 2 . Their fur efect is made with tiny triangles but it sticks the base mesh really nice animating doesnt even collide with itself or the base mesh . Also similar work the game Stray has it . Mesh planes for hair etc. Also each plane carry the base meshes color .

How can I make this in blender . Im trying to achieve photo realistic fur and easy to animate.
I’ve tried hair particle system but it took too much processor power but it looks hyper realistic .I’m looking for more efficient way to make this and animate .

This is the result when i try to mimic the dota 2 model. No constancy . And the dota 2 model for the idea.

1 Like

Your best bet is to use hair particles, but with Object rendering mode and using a triangle mesh as instance object. At least strands can be combed to give them direction, and then result can be converted into a mesh. I also tried using Geometry Nodes for that, but the complexity of a system required is currently over my head. Geonodes do not support anything like tangent coordinates (which is required to comb the fur) without some clunky hacks. And it is only one issue of many

1 Like

You are describing hair cards. there are systems like that, but the major drawback if there is no good way of transferring uv color to the particles. Hairtool uses vertex color which makes it worth mentioning but barely, but you might have some luck with it

Since deckard mentioned geo nodes there is a simple solution to make hair cards. Take a look at this

It still has the same problems of not inheriting UV color. If anyone can figure out how to transfer UV color based on position to the geo node I’d be grateful, but even in this demo It’s just using a simple gradient

1 Like

For anything that can be converted to a mesh, you then use Data Transfer modifier to project UVs from main body. It breaks at the seams and requires some workarounds (like, projecting to the shrunken (scaled with individual origins) version of the fur mesh, then restoring its original shape with Join as Shapekey), but it works
For Geonodes, attributes like UV can be transfered between domains (such as, Face Corner to Instance) using Capture Attribute. You need either a Vector input where UV goes, or Named Attribute node to give the modifier reference to the UVs. Likewise, to save changes, you either put the new vector to Output or use Store Named Attribute. Working with UVs from geonodes is a shitshow right now, as any manipulation of attribute through geonode modifier results with it becoming a “generic attribute”, no longer recognised by editors such as UV edit or Weight Paint, or even Shaders (if your shader access UVs through default UV node instead of Attribute node). Until you apply the geonode modifier and manually convert attribute to proper type using Attributes submenu.

1 Like

By the way, if this tail was generated with geonodes, does this system support Armature animation while Armature is below it in the stack?

all the geo nodes do is place the contents of a collection along the vertices. as long as the armature is first the child particles will follow much like the hair modifier.

Anyway I’m learning quite a bit in this thread, So you’re saying If I set up a hair card in the particle system, then convert to mesh, apply both the weight paint, and uv data. then add the armature modifier on the mesh fur and uv map in the shader I’d get a rigged model with static fur and would have to tinker around with the seams.

Exactly. Many vertices may be slow to update when there is Armature, so disabling the object in realtime view is nessesary for good viewport performance. But it will still render faster than particle fur