Hey guys, Ive been learning the DirectX COM for a little while now and have been working through coding in 3D space. At the same time Im also teaching myself 3D modeling and have gotten a fairly decent grasp on all of it and I can create some decent models. I was just curious as to the rendering capabilities of DirectX 11 reguarding Hair/Fur that reacts with wind and movement. If it is possible, what are the limitations, if any.
Rendering Fur/Hair in DirectX 11,
GDNet+ - Reputation: 6281
Posted 29 December 2012 - 01:25 AM
it is completely feasible:
http://www.geforce.com/games-applications/pc-applications/fermi-hair-demo, but just remember that it has it's associated performance costs for such detail.
Moderators - Reputation: 17899
Posted 29 December 2012 - 01:51 AM
I have spent a considerable time on hair rendering, so let me tell you what I've learned along the way: hair is hard. I mean, really realllllly hard. Everything about is a nightmare: it's expensive, it's difficult to get it to look right, and it requires specialized tools to be able to author it. And then on top of all of that you need to simulate, which brings about a whole slew of issues not directly related to rendering. Anyway the point is that it's a rather advanced topic, and doing something cutting-edge could potentially require several months of work even for an experienced programmer.
The demo that slicer mentioned takes a very modern, DX11-centric approach to hair rendering that's probably a good starting point if you want to get an idea of what's possible. However you don't want that link he gave you, you want to download the full version from the Nvidia SDK that includes source code as well as a whitepaper. In terms of DX11 features it makes use of tessellation "spawn" new hairs from guide hairs entirely on the GPU, it uses the geometry shader to expand lines into camera-facing quads, and it performs the simulation on the GPU using compute shaders.
If you want to take an easier path, you might want to consider the older approach of rendering texture-mapped shells with alpha blending. You can use Shave to generate the shells, and then you can still animate or simulate them a bit at runtime if you want.